From e5c144a2ce48ebdfbf3626975a1baf783c325f4d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:48:15 +0000 Subject: [PATCH] deploy: 2a5fa319a5360e8c175b7811a403556e07ff8c45 --- .nojekyll | 0 RELEASES.html | 787 +++++++ assets/logo.png | Bin 0 -> 36089 bytes config_loader.html | 877 +++++++ dataset/cached_qc_dataset.html | 753 ++++++ dataset/config_dataset.html | 761 +++++++ dataset/dataset_helper.html | 869 +++++++ dataset/mixed_cached_qc_dataset.html | 769 +++++++ dataset/qc_dataset.html | 815 +++++++ .../figure-html/cell-17-output-1.png | Bin 0 -> 66973 bytes .../figure-html/cell-12-output-1.png | Bin 0 -> 9991 bytes .../figure-html/cell-13-output-2.png | Bin 0 -> 18208 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 51949 bytes .../figure-html/cell-16-output-1.png | Bin 0 -> 8552 bytes .../figure-html/cell-22-output-1.png | Bin 0 -> 8552 bytes .../figure-html/cell-23-output-2.png | Bin 0 -> 14330 bytes .../figure-html/cell-24-output-1.png | Bin 0 -> 17158 bytes .../figure-html/cell-7-output-2.png | Bin 0 -> 9991 bytes .../figure-html/cell-12-output-1.png | Bin 0 -> 32006 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 32175 bytes .../figure-html/cell-16-output-1.png | Bin 0 -> 30697 bytes .../figure-html/cell-17-output-1.png | Bin 0 -> 7257 bytes .../figure-html/cell-20-output-1.png | Bin 0 -> 29786 bytes .../figure-html/cell-20-output-2.png | Bin 0 -> 19471 bytes .../figure-html/cell-20-output-3.png | Bin 0 -> 19525 bytes .../figure-html/cell-20-output-4.png | Bin 0 -> 23562 bytes .../figure-html/cell-20-output-5.png | Bin 0 -> 29215 bytes .../figure-html/cell-15-output-2.png | Bin 0 -> 17092 bytes .../figure-html/cell-19-output-1.png | Bin 0 -> 19301 bytes .../figure-html/cell-22-output-52.png | Bin 0 -> 82937 bytes examples/dataset_and_finetune.html | 1384 +++++++++++ examples/editing_and_masking.html | 1079 +++++++++ examples/hello_circuit.html | 934 ++++++++ examples/unitary_compilation.html | 1008 ++++++++ index.html | 883 ++++++++ index_files/figure-html/cell-3-output-2.png | Bin 0 -> 9710 bytes inference/infer_compilation.html | 1008 ++++++++ inference/infer_gate_hist.html | 766 +++++++ inference/infer_misc.html | 772 +++++++ inference/infer_srv.html | 952 ++++++++ metrics.html | 826 +++++++ models/config_model.html | 758 +++++++ models/frozen_open_clip.html | 905 ++++++++ models/layers.html | 910 ++++++++ ...1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png | Bin 0 -> 47605 bytes models/transformers.html | 793 +++++++ models/unet_qc.html | 845 +++++++ models/unitary_encoder.html | 769 +++++++ pipeline/diffusion_pipeline.html | 755 ++++++ pipeline/diffusion_pipeline_special.html | 775 +++++++ pipeline/pipeline.html | 773 +++++++ platform/qcircuit_dataset_construction.html | 987 ++++++++ .../figure-html/cell-11-output-3.png | Bin 0 -> 7564 bytes .../figure-html/cell-7-output-3.png | Bin 0 -> 14244 bytes platform/qcircuit_evaluation.html | 784 +++++++ platform/qcircuit_metrics.html | 802 +++++++ platform/qcircuit_util.html | 812 +++++++ platform/simulation/qcircuit_sim.html | 981 ++++++++ .../figure-html/cell-7-output-2.png | Bin 0 -> 10415 bytes .../figure-html/cell-7-output-4.png | Bin 0 -> 10415 bytes .../figure-html/cell-9-output-2.png | Bin 0 -> 10559 bytes printing.html | 913 ++++++++ robots.txt | 1 + scheduler/scheduler.html | 752 ++++++ scheduler/scheduler_ddim.html | 766 +++++++ scheduler/scheduler_ddpm.html | 766 +++++++ search.json | 688 ++++++ site_libs/bootstrap/bootstrap-icons.css | 2018 +++++++++++++++++ site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 164168 bytes site_libs/bootstrap/bootstrap.min.css | 10 + site_libs/bootstrap/bootstrap.min.js | 7 + site_libs/clipboard/clipboard.min.js | 7 + site_libs/quarto-html/anchor.min.js | 9 + site_libs/quarto-html/popper.min.js | 6 + .../quarto-syntax-highlighting.css | 203 ++ site_libs/quarto-html/quarto.js | 902 ++++++++ site_libs/quarto-html/tippy.css | 1 + site_libs/quarto-html/tippy.umd.min.js | 2 + site_libs/quarto-nav/headroom.min.js | 7 + site_libs/quarto-nav/quarto-nav.js | 277 +++ site_libs/quarto-search/autocomplete.umd.js | 3 + site_libs/quarto-search/fuse.min.js | 9 + site_libs/quarto-search/quarto-search.js | 1140 ++++++++++ sitemap.xml | 147 ++ styles.css | 37 + util.html | 956 ++++++++ util_files/figure-html/cell-15-output-1.png | Bin 0 -> 26947 bytes 87 files changed, 36519 insertions(+) create mode 100644 .nojekyll create mode 100644 RELEASES.html create mode 100644 assets/logo.png create mode 100644 config_loader.html create mode 100644 dataset/cached_qc_dataset.html create mode 100644 dataset/config_dataset.html create mode 100644 dataset/dataset_helper.html create mode 100644 dataset/mixed_cached_qc_dataset.html create mode 100644 dataset/qc_dataset.html create mode 100644 examples/0_hello_circuit_files/figure-html/cell-17-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-12-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-13-output-2.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png create mode 100644 examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-12-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-17-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-2.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-4.png create mode 100644 examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png create mode 100644 examples/3_dataset_and_fineTune_files/figure-html/cell-15-output-2.png create mode 100644 examples/3_dataset_and_fineTune_files/figure-html/cell-19-output-1.png create mode 100644 examples/3_dataset_and_fineTune_files/figure-html/cell-22-output-52.png create mode 100644 examples/dataset_and_finetune.html create mode 100644 examples/editing_and_masking.html create mode 100644 examples/hello_circuit.html create mode 100644 examples/unitary_compilation.html create mode 100644 index.html create mode 100644 index_files/figure-html/cell-3-output-2.png create mode 100644 inference/infer_compilation.html create mode 100644 inference/infer_gate_hist.html create mode 100644 inference/infer_misc.html create mode 100644 inference/infer_srv.html create mode 100644 metrics.html create mode 100644 models/config_model.html create mode 100644 models/frozen_open_clip.html create mode 100644 models/layers.html create mode 100644 models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png create mode 100644 models/transformers.html create mode 100644 models/unet_qc.html create mode 100644 models/unitary_encoder.html create mode 100644 pipeline/diffusion_pipeline.html create mode 100644 pipeline/diffusion_pipeline_special.html create mode 100644 pipeline/pipeline.html create mode 100644 platform/qcircuit_dataset_construction.html create mode 100644 platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png create mode 100644 platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png create mode 100644 platform/qcircuit_evaluation.html create mode 100644 platform/qcircuit_metrics.html create mode 100644 platform/qcircuit_util.html create mode 100644 platform/simulation/qcircuit_sim.html create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png create mode 100644 platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png create mode 100644 printing.html create mode 100644 robots.txt create mode 100644 scheduler/scheduler.html create mode 100644 scheduler/scheduler_ddim.html create mode 100644 scheduler/scheduler_ddpm.html create mode 100644 search.json create mode 100644 site_libs/bootstrap/bootstrap-icons.css create mode 100644 site_libs/bootstrap/bootstrap-icons.woff create mode 100644 site_libs/bootstrap/bootstrap.min.css create mode 100644 site_libs/bootstrap/bootstrap.min.js create mode 100644 site_libs/clipboard/clipboard.min.js create mode 100644 site_libs/quarto-html/anchor.min.js create mode 100644 site_libs/quarto-html/popper.min.js create mode 100644 site_libs/quarto-html/quarto-syntax-highlighting.css create mode 100644 site_libs/quarto-html/quarto.js create mode 100644 site_libs/quarto-html/tippy.css create mode 100644 site_libs/quarto-html/tippy.umd.min.js create mode 100644 site_libs/quarto-nav/headroom.min.js create mode 100644 site_libs/quarto-nav/quarto-nav.js create mode 100644 site_libs/quarto-search/autocomplete.umd.js create mode 100644 site_libs/quarto-search/fuse.min.js create mode 100644 site_libs/quarto-search/quarto-search.js create mode 100644 sitemap.xml create mode 100644 styles.css create mode 100644 util.html create mode 100644 util_files/figure-html/cell-15-output-1.png diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/RELEASES.html b/RELEASES.html new file mode 100644 index 0000000..dd56726 --- /dev/null +++ b/RELEASES.html @@ -0,0 +1,787 @@ + + + + + + + + + +genQC – releases + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ + + +
+

Arxiv submission release - 07.12.2023

+
+

Description:

+

First release of the codebase accompanying the paper Quantum circuit synthesis with diffusion models.

+

Included are the configs and weights of the pre-trained models used in the paper, genQC our diffusion pipeline and example notebooks.

+
+
+

Tested on:

+

Release is tested on the specific versions:

+
    +
  • Windows 10 with cuda 12.1
  • +
  • nbdev==2.3.12 (for notebook development)
  • +
  • python 3.11
  • +
+

Libs:

+
torch==2.1.1+cu121
+numpy==1.26.2
+matplotlib==3.8.2
+scipy==1.11.4
+pandas==2.1.3
+omegaconf==2.3.0
+qiskit==0.45.1
+tqdm==4.66.1
+joblib==1.3.2
+open-clip-torch==2.23.0
+ipywidgets==8.0.4
+pylatexenc==2.10
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ae31dd244834c3c8ba3855785ebd7d43e3e895a9 GIT binary patch literal 36089 zcmV)|KzzT6P)|*Kzxt=l2I2ZX=eI-p^m$Q}27m{oeDQCyAMHJs|>3Ua%@uP^m&$mO?<( z6pRo8TtLt;!HJli0TQn3L>=5@u*^iI#3%#94B}!2rGhz?1o508bMn-uhMZ%@brk?z z4*`C-XhX0WQg>0LNM?=%;Bn0-;ov_H1NmS+M1+GXS+Rf8Q-jj3^&GC50H^)D&Q+FZ z09d{Qpbpn$PzMg`0wWnrYXq5AO?hT;{EN(-34q7L-t3%^_|W zY_LL*1^H@@VX4IzQoP+Uh<3^>FMe<2?Z+B=FIVEK3Gm$?)^{c1rvP-lXeWb-INnJs9Cmk=PTtzKG|4CU z>i&m1a8Q}FG+EepOxrTQR25NXp^hxc5g=UZNBRIWEqZU{kONm^9*r)*$&3CD7De@V zFh^Z97$IAylee`GHE)UPVk;nsSM{mnz(H+bNWA~3i}SH~F}m1-Az%)^_#ldvMd8!; zpBR+fm}57Z0H^)1O(VhlG!Y&LSXp_WAn?H^{_^kl-&UMNP&%xc4sKXXW+kuLsR&EY zq2aP5L{`~JWCin20&5pd8QIU=7~?gH0N+`%DS~9%M+7vfyj>8mt9h`r;;w%7bb`(C zv~zINz)%KkheWH)QVGw$tQcFmoc4jf!7R_}BUOiC8U%Pa?7*vL2`!1DT(k@ptX^?G#{ z;H2+X`Y9C3*&sBl*rpJ9$L+o31ua5Nmby;BfrFckq!dBDdZ+GrSw^o58yU%VyY1Bv zpS?S$F4wA)04II7(odmOE&vcvu}!U&mp*;BZG~3jFtRxK?_e@Zyy#E22hCOtuh_;w zwq&zCTNe@5T7YlO-{huN*%n-Q@-f&&%L`w5$ofBv!@}v{KL|tOg)3b87MBPwUvT0x zk_9E6o$}bw;@VuJRstOJ`Esp`r}G>D?aK#YcQ^U7r|&cFtN-*JIQVz)u?&ABxS z@SR2LAFAwX&}!wS&pv3`Sodi><6%7C5Y(4jfz>twy9fx|!w+0%ZXJm{l?h@RMS#;5u4%_Wmx|9V zn%e(xi28y6 zWd#qesM{%!m^QShE$P}$)q#V5CqsMMk}g<80fkB<464|7L4XY0Uh!|86K{4zyf|>s zIA}FC(kX3QD?YREkJbbLn6_k7Qv#olSz~a=Fw^d9K1&A<{>8Klv+qE8@g@S=O#5zK z6QEpxcDt=x#eqZ|-?by^T-)Nm%zGc`+YT9WcFyqO$xrRvTH<=W=i}hUBf6`(kOWSs z_$;faD^OnDsk}=O0KiF$!;Wl++VRc2yug)z7QIneC=Fu<735>+go)X2xVz>3bl1Hu zKfUyVSLXGeqk|g*f=F5wA2C{}H2|>8T>$(k5P@Xo&J_oGyV_1(w^`mKtXiG#I&?_# zgvE>Uw-gje_cQ;~Q$UvBoS$!dVez88?E?p%{cOrR`nK0|t`2S-yj|(|g%5--L?D{H zU}ZBwsVH|Al5NC*k`dlbAYG?9-q4&pR-k@+Qo$oRIr3;`cB|O#t5oN{>DMgLAWE(a zvd@L*S*%sM?x?lG-qtNu3uev=+V1M+XhQQ}B`r-UEZ?I33FRwK$<7Zb1eGcjeBnEh z;t=1(6cyR%#h0@CB%d))k!6HdY}W{)@g<+&1Gl+)M-m|l0Qxn(#d1b6pO}-E8g{a% z*ckvUCb`Fvqvjq%hMY|a2v973W1Ro;UeTJe>vTH~t`jYSArX+mKnnmMQEsMSnL{c% z=c!ceD5_hHQKM2ipEzoJ*Dm8i2$4u6Kjs;*|6$L7FoCFVl@kc+FomYWXMU~Z9B=E< zMa9`owi)!E03b;mnx1ZZcl?;N*FD{pzYKp!_ru7ieD&A(mKCc{KH0(W3LI2ZMuC6y-m3vJBVUeA^3i=N9eg-#>Zg#J97;ul^l5xDimP)F{pD^`?@HX88=@Q-oj7M;t9$pK;PDk|F5^_otC(E4eu zAD(F8o4M6qRQg?dYKvl%Ye@5sT8ghJp8 z0)&8I1(;m%&l0rgI?e04vwCfr^H-ncj4UdaUIuWXhKIjObM}Lv7FkV{nrPsX9aL+L zk|=PH(j5as-HUcoS<=^8$(>6|%me^diyVFIm?gS@zcYye0m7nbpLqY#F5Jc1u)A__ zqoH+{iwa80JGIMjRe(r`^6pAHl1$feZr6q5M@v+1PRx5K*I*k1#s$l!K*$~M*Zjb( zuAcn>G;g#485Tvj`=Q&OjOx%w!D(~8-LYxU{xkRG<(GK?fF#Q;(=+6co*kio-N!qB z;j_=XFTLk(w~|I1-@$c7LrUX?4+I^(^W)mh#Bc?Gh-Su7L;J}8i6|Iz5%BCQ=lY#V zvQCkuf8K-DY9;#iY;|fBd#rKJFuw*sd4^`h@q?4sa9#s zfbsHY{|jI!`T0?aktdGYr`Tm~Uul<}f$!g$Fl23Xj~35@F$Q{LtnKGh22LyM2S8iz zF*S>$lMuy%IbZp1 z@bT3-9Q!vBTaGA{hYxFhuJ~L{fc#j`4rTv30e<^=j@K`Lmb`8@^P{L_NFl;LiFv~5 z{gZZF?p%YR%-_cJ0zj{Eu~m{*B%b8s1#Otw`?3QPof8HIA5#ozItWCEh-iF(k7ieW z=H9Z$G}ksQg5S-`E_$K3*yL1Y7y&6>-pWOz-|+r@&;aNE-23~@$nGOf%6*6F(gKX? zWP3d77R$fJ^0snKvD25I8Ag_t$giN1WfQ<@5Km6nKk4_{_V+$pP~fJqX`To08tk&G zwCP-ov?a3{>~gD$V~CJPoqS^z54VhhC}aTqR-m8m@5Z>7E?wp;L))oeEGR6Sl#yBJ zTWxoVtDE@Ku=`vVz4($(Zext+;Oembs9F^pr~Iknb2S0d<59Pi-1GuGcBD}G)}+FR zbM>|{z(1Bv0J$K{RFv61KYn~lz3%hmNvPa>%#VOEPGAm~_T}u7Rwt_w>Y`UX9?^|7 zg2>>hLB6{00N5MlhAI&YD3AVnV8QlXNl)%On2c)OmA#Jy8$)j08Tv}pq? zp!pHN;%tL)h|t4tzR<(3qJ;kzm7u-X+Z$KIZ9rLi)35;GWB*&*_`0V4zAWh2PeHj} zcY5sAhelXzOaMfynQo7XDZagH^vRg!Ej0^ge-*mT%}uIXA94p*5fxBr(WSWjfj18f ziJy5Ut5f_5(^R=q%qGe$o1%=VCl5}{YRoY+4aSaOi~$e;;)MV?gK@uAHto#P)67g? z&2N!Fqr6XN>P^uAW&((e-}vjA9dpOGWZC|p2*59ADefWC7x_fz9xz3<$}bfa0ARBt zIw9U1J!HtKBp)BucOSm*_GkMJ?*F>?`|F|=PFCko}Hy9y0tKP~RtFy1~+tSpJxRVaa>fZrl9%D=v16vC9=su~?l#l1~bQLrxcX zRB@XS!Qk#L{`C06zCS(wlygCS=HsB@>^r7a?>;0hsrY=;3UJ1!hJaP8ipN;2@-S4h zY(Dy6x4)iwqUSvTx`D73jE@6-wJ{AD&tQPFjg8{~ngGyQndAvgd~}x-cYZ!xEjH6r zOc)Qq6^uo!#Ec+MZTh8-uTDlri5Dpq;{m*$bz)EA|2}=%VlFPYsI2*wkdz+rsqXiB z9LVzZueQsg)nP^7TixeQo8see>|bMUdI7HfyTJL2*?A*Nin&V6CV&JGzf;+=nUQ1e z55hPC4*{?X%rgT0bZY?A+IM#HBvc+grWcs;4ge#8CI$FveyPnhQc|E%YmHAZ(O3Y@ z!2Gko@+^OU=M$GYK0O^;QEh&mS$?Y|CpCA?dyl0RW+e4N17c8RQIo9qx>FUC6BcBz zn(4_}tzt*>=F0gC7X`#PDxhB*Zdw6WvTTk8P`U6?E`SdLoNRNpZk=*Tt7A@1X*-#O zaSVC{#AisxXJsY2B`sRuO7}_`2Gaw?_y~YE&WDbD6&eb2J*F>Y<{0k+(RcvS#I#mo z%xvPX*;cVX!(e`bWPaaVTAzU)fZac}?Bi zs=O0r>P&(pVjWJd=*e$U6&i)gA4Bin}9I))KLt;HYv<>~)oeG70x%kY zI};WPcKTdak{Yu7F#-31v0NfyVr@gm>Pq?3^;eWzqIWNtwBh*L?|U$Fqn9;QySN=1 z{N^GGY8Ty(f%zg!@4fo!y1XW>RFh67s9P6Fm*z@@> zb43C6j+94qZD+jh0vtOgD}4XnvWZqZ_pZF1K%0p9jgto^9>3hVbs-i|`s>Y)5cAt0 zv><>PNR}BRn)qq=HO3g#$;dY~Av?bh&q8!TTLaj=ZE(WoZ9$vJC^03 zhK?mFRA+jOoT6`k=QBMR_!ENgc96IFboJv#PyF+#tgMo$C*m`jN^+GIsH{@a`c9p+ zUw=8cdE=~r<_Qae~IRikJ`5r>+D zD8HNkZRmP;x656@K~3C{0{nYruFIUSi=QkilwQI4PyqmdyPGc0$w~RvmcL(KSlgJ* zS|Vf`%uj;(JubCrq@Pb6k`oI10MI}!B#5^)EfD)P=>maH5@=?ouV!g|o$9fGGQePZ z9*lRvFtb4K1o>!|;PO^fF~eXQ24Fm7j!f9Hbl=_|rm4&&g|%@*ls4;r`=0)zJL>o&GU0>2!pe%}uj7uS-IiZaCRW}j5S{Vx66U`*)$^||-5ienx^hDa zFfO)CJ$Z`Z!RnSxBIFL}+j{$iHwJfBh=MUBI~by-Oeib@n-{yr)?^IH?K%e5p}r=X-jh)}d@!debllJ|>VK2%kt6&6iD@ zpw`BX>|AqSmN1@)Z_hb(;K=rG#_RJ_6M6$&JvUMIXd1rfj;X(fIC}`5-9O5deN=t|-7BU9C?>x3OMT^Ye=@ zrgc6NXPG9+T)AX>jh4;yY;!-6Fpi0D2M|;4R9}S}9O9XoreIR=`^@x&eOJ~|Y4uqz zvdO`9oi_t^3ed$W9%|()G<69g@UH^PGb_T-03h99X(6)wF$4EA@CTFdc4IuXD>#>H z3{Xn+8VD}{u$W8o6E!ZL(G2`7NHjShKyy_(8fWDiyMSprGkPD4OI!K(>bQ;v4xMXm zwN-VyDiw$cYpI$u@7oqJj`nt!=DG>+%?Vi%dt!`lS*&su%O-@TTtMpv1;A|VYHlBm}dVm-Ug$+ar!hkDdNR@TgYOh zPa6iUXOh1bWExy9jDrBiH#GF^a-`)N14X7;U_4BqA_l9#_)Y|U?&qgTZp^W=v(2Hh zz#js51i&hi#J2(hRPg{X`@4NTlFnp(6|*n7OG&Azir54JNB#X(3qPFYzqU=7+EHn} z5?2&ppRU#?yEL)@XMLXAbnVKb(WPbby{K;4lzDu@!AbSX6i>@F28uGhMxYlMY-Xm} zY_rbIY2sQEU@*M^#=CM>nN9j3K8p>e&NW}L9=NFXs^0C^8X{FV&VLQ`)sDbb$OAMO z;B05(1O|<<%5-jLp13Q^D6|ez%URvLZS9;C)Eb1}iFjs!x9(s=#!4+J@=#b*69K%+ zgrg$SczUVz41Xj=P7r@RiZ-Ki@gj)8W|1H5A~w zb$RYzeOWRpzrgw|m@20|odWT@r}j-+-WcQL=EB7yo1P=a>mYan$mJ5Nr~SuMC*`w6 zk#u!Zt{4H@y~=0Wg^;I4$&8N$qLvIE2_PGU&qZ1Ly`LW%qyK{0qv6 z!x^KZHG?acr;y#$oYKwB=I5v79z@tGfoC@H(XB%rETBnAP-|UHFB32cKoJ-d1O2qW z)#e%-Hsm<%KYDD&{zK=UI-QhLHH3~(s?pJJLk2p1|MsMSMokO5*{DH)c(O~I(gq9g zr596s#l>0X$}%c{Nivx*<#b5PMZ9cyqb^Iz^W|m%=nNnkk{l*&&xn;ar24=rH(pIo z0MLo?$`Nf8)XKdHGk>8~>OQHkjAmz-`pAOtGC(f_5QuoL$UNKE*D0qyLuKX|?*Zr& znJ6eOU$HTvg#2ZY%ax}`sU6*|nr6;&AAk}-m{nxZ{8EEOlrnQn4}tIz05=9cG!<*- z)DSCsIfUt7YcXavg%h}%lNyq-K;|k6GSk2;!&sRl& zg9aymQ&eCdQfZS7pwSAWbzyx=L0pQ;`EmsOE|D;?iH|xdOK%y(kj8=OHu5z5 zRW7u2tNDsoKtZX(JuUJT(f+p(@e;PvJAr}POP2D_%7TtX<46LHVIT;gB@k#_W@u5nA^V+ybrq-@fZ>4}@0AHGw=5L#OcvNv2 zWapauO3X8eaSH)o+tk(%tH;LHmw5~KJsfvD_2Yf9DWPU_RhOYcL3^4tQ_Nd1CwPa} z{l6o`D+(~Wt9@jTHs%Hw2EA?2*>8&rrQ0sCE0aO9)oS|o=+3w5{hyqjUFsu~_%0Ei zXJ8*Q#s~Rn_f|jdyz4<2N5F&9+2U0D^3(aqF?B}el;j#9f%1gjL5bp>AzdNT76y+G z@^v~=%hSaSgXunjF^++*09FB*ak;1zz24H?PVz@!JeX+`cI?honJqF0)^@I!LI9gX zoH#eq!`?|F$~poqU^~7f5}jF;J^^qSfL{ffCi(koQW`SW<=DA5{kgpd&d&RD^&ug@ zpz7C4AUfmaMRTW4^;-2`aO__j0S-+1wz!xp1b7%g$0`R9N?FDtndL7N4^FOiuyf^n zIe@YWcq_nH`)5t(Wo4P0Lgd#OcowhuJa7iJ-rt?*mYQ_`NJ2-Tbf>va+lZtgw#-)8hbA30Td*NQqIn)1caxZlVro zymIQy?Sy4lj(xJmZ_oXSiFBJ=@xBOuNQ^i^N!?_VcU3Jcv;R`pu|MxRT}Is4T| z%ZiKgOL|o7C!%8iQ2#`eM%O0pM5ea7V_%~YS9R~#wpaFnbCVUmBv;9&zvG)A?oID*sOD6t8E9yS2OE}o2NJ@fQ z=VpEkERQ7%x3q6K7bnGJxeFfZbK)~?o0FH?hgkR&vgV6`fU8ogpEC5OF?2rX5CG(C zv#?;BUKLR&@ztzj%5aHD5KGti=4I#h^+O?aevNy9~N z{Uy7#a%4`4SF?5p28^EV?-3dio^Dj^Jdj5gqb$@}h&qAOdiq#>{50sqpzrO1JT=5y zSEK(eBcsF%O65xgeg%M%ndjL>%)ZjOSq5`2W}YEQQs+OGY~Q)z?|rwh%vb6hd_`0$ z<>`=Hn$yYjk``$h1y!DU3Q@>&aiedaectWY2k!G~3?J(?=b8wxfB!S{%4#9N%7l0M zuoncpNuWDWwFr?7pud>qnF$9b?QiJZfbuVzO7RXcUM#W+C${Sq2_-ga!vs$*a0HrKU1NiCmBim$OOGW?yAOJ~3K~&>5On(m6vf?Y1 z7L=Vl{P#ya^MRs8uR9~N&0^ev0wJ@=Dg*-%u5ccdBxm*Tl7tW^xjzVN1xb9<-(PjI zu5(ULhn7^v5d<0wpecxdBD-Q%MHm_YWaL^}kt}}#;NETP55@dCe?t>Vl0zGUOkw?qSax=fZLpJx|VI%NPtQ6%1XIT0<2)td+P_Vz?=SD6=!C? zs3_5H0)Kkyz@*jn$q!6Pfkve>y$0azQacsy&J~UrEQ(NE;)^X1TS9bP(8=A_S*L)& z#B){P**-o_wJL*AUdC`dKx1>0k7us`_^I4deOgpq=Bw1|jzvBBZf?ZjCwrAjLP}hb z@?csiLK);-Wv-C(+Pg}{?L6c`#5m4O6N3CTTkA5`We~FTrhEAOt3nhAs|D~}nduG! zMkOU=9Gm^#GO4uG)U^@Dx_EGbG9G(=$hp84LD7G%jInLleoiS%Rcv9hLWy+|ZPec{ zSP*pRW^n8uIIh#|j1{i30Q;SpS7xl+6R-lk-qPF-`OJzx)<6F1ABnvRitGN2M&GW5o02sG7Pn2Yrvk35l`aIh~L5E3Vds?(kCf9Xu;hsXAmpfa8) z7PrP134+WBY~?DYMS99Z1aL7iO$zYS{E9}(;;&4m-f|lt{SJ^T0GvF0cJ*gdmJULt z1nNelsOP|2Vjq8DXb(0gr{$h}Cr7em_ppl1j_pbu*nGvhLXXn2s_%(6OUt%vBEWwA z&df74P=JRI?zlHCEyZRuLb+~7QDl0S{b5-~HQyNNiFmFo*}hIVIOUT0b{RS50Yp4q z0!19j6Skcy6@6ro`clW%gqw=26@t6O{P4Uv%2;qK@6_IPSa9{?`QC?J9>fDetu+S&CC9jl3o>H+TqP!Qu2 znJ9w5BeFB{^^51MJ$w2@YFAur)vgb==HY?+U!M3tYbTA#k{3Vuw6)}PZ&bIU3T~&4 z>2G&kyiy3%=TfIqRhTtU*;zfy~0c{6&D)u%YyYs5A9B9FEe}9V<`6X z_t^9DtZ^)Ky*F=D~_B}h- zXp#m4^%vm2-COS0>(eipoxkr;Sx8*GWsu3tccPkOU#%9my#De4+u;6f2W45r*xk8e zk=ahw%d`T%J$maKbBmjGAJP+q-$a=v z`uS;6(hbI;B4`{lZmr~0-&pe%FHd>(fEfVY3gRDRfu>x}1(cHmCrL0p4aOTbtKEOq z(wzr3tlZz!Zj(Z5GnSK!Hul9ghbbc31+^(SyC9}CV|iOf&6Nr&LxOlNPa2%Je0%d- z_8dr6T&`u?=U@0;R1xl4bJGZLf6Uega&pqHxP(YNXZP8)ue5Jri8KsV`vAhXiDydG zhwR@Ri%dUci zPyJZ7wz~MTb%2p;QAH>I??`mV)f>)gEY_;+_7qCQgtgEtob^@Eb{{w4y1XaeGy;s> zx8s4#%#>QK;R}jcyKZYqkD^kHG@ETzemy+{d<>Cy^*Pm~U6?zGHQHRR2oX3?EgPb| zY>{dO^67lO+%l9KJq!jo+hKZ|8E?pTi*MZTv-iZVm>nY9EG_CWTv=H3o%{Q}KD&!j ztx1QBw*viiD{DHbN{1#Oj~QR6MeTQ2>d;iVdH{e^%rrj8PqVoma|Uoe*g!a6K4fTW za?YVeU#!YbOVRfM;35bVfA_=4wwB8=}2! z;qFS-GUJ1yJnft-*Dxcz00uZ-0%yvxoZZ++iZ z>*0&?Zo3On$AEy0j1n&>lrIwT`S#q5c{Y*1s_az1MB|ys0lu1_(MWNxIXR{6Bof8~ z^r*4ak`j0D^wH?P?QWATnfZnj6H{$vsSRp8b2$ho)A;m@^$LG0(o~v}xqDZv`qx#) zrYUJvi+qy^gO{7)=O-R>`}yG~JR7C;Kuuh80sb`q@wmW1pAM)Y6{mvwJOL|c+rCTd z<}KR17wD^X4)5||FA{{;03L=)Ry2)^PLAl?eCz@KY7PT1 z+pe~LRF{0Yj2v@+B8&%kaO%NLM|aMfU@ghb?1GEGc(Pkyv#moX{~YWd*t{ZiY({+p z04hjHfkv$}j^Oi7^^o!oO`l1k7(tAW(eTDIH6dgf%x^ODN9RAXlo$W;R-=AnM-b}t zu2&0e8uxa)yjs844iN15@zV~Qiw^Z?keWnYg5G`yt=Jyea?k$c>VJESvy1S@-~qY? z6D9_vH1eFPa7_f*w{Oy1bGZPu@|OGVyZ5%B+wUB9Pe4G>03zB~ITfe+xs4^jif!#8 zKWSkX`Bi|QMJ216pb*i#bL;rdclIrH_H@=(e@|2iT-?P|RyK38ccn(imrKtnYcCRw zWzZu9X$fiDz8;&BlMovXuvX*jwr}vHA1NTBMQDh>)c>-p!!T0fd%s z+r>8fy^Ym)raGB=%RoS$0hYsy&i%NdIPEuooll<}kFeJwNmRNOom;rSG~syfcd5lrNsRwY0J{zP=D-~|bU$w7QyN%mZ1WA%Bi;*>2VQbqq z${)U&+q7P_ifZDT3s56%x}W3%GXO+K_w#-5k;iWj3k$zn5XDpm&tj`?aphvQbuq$J z=TZW!pk?QeeMBWc4aR5y7iy6b5dtHcWpuv1SE_f2zpF@8+SW}rxA(C36bU;)JU+l% z7hCT?Ml~urGy(j4S%KbMa4!B-laBp*5z{(i`fWS`Dp(D&?u!s(sRn%3nWelc#u)QVN-s>j6i04hNW;$4FyQoOvK#{_xn z*3@PE+LBUO=&rVEK4$O>B-u?YDg-9X73}myK!E04V~%ycPK`K)fKjLQ2amnC?t!u* zqrNu)tFzjD$CFVXS_icr*&jriMEn`qb&Kkof|Z_U3KH!69*CYaPrf>?_Q6VqtzPE=q{%GJ+TEzU)UwHz8h+IHxxwG5x20{ik!e4;A@!;O=_h)6DtJ6D4Z3I{W(KMlTSH&IW??!#A z?KTs5i6rvp6^{MJpgdphB_>Q(>xQ36$v-gwm&nZ%Njy6+;>pBkdVbnfqi~V|{zhbZj-Q{izBXg! z=EB9s#y6Si4Qpv)dftgi`F4w;N6lycgCJ^;xrV)z@8W+)PfPL1l!C-r23uKjB&vnF z5eY}#!d^~x2^==mTAFamaO~|e*;Y`e7~9Jri|T;G2}Sq&EnQ;{N<35b*8O}H^H;8J z_DMqrxgJZFL!T0M4C>f92@W19d7iTNeRVCZfkD zk*%8hexG<&-(Hrhz7r5*EerBzr}jW$M(m6Tq7YJhL7hnl4liC^qM5rf+!s@X?Izy-p;ZCu0i)7aSMHMu+63~$v^S-S!-!ZAJmW`QV&cUkM%$L>qgh^lKmeO zg{!-`apQ*O&o}hq*G7PSlIEJtwHIJzo*wmT$NTSp<6x0U#sCJo#Ko_Jb3qEI*l>Z@V4Ul1T|1$G|LS*=O0ogQIHg+|DwX zdx3c-Bzq^<6~Dwd?bzHNz!k%_Sgk!)boT?r#y$hOgKFQQsiN_WUADCNX8Y(pn-i9F zVXjwHjo*Y?v}1Z)e)KmEndvYd6jfX0geA`()a{01L& zZ!x+nk)Q>OMKar*^G{9NZ_3-#8#RTg)g3uS?{#Rwn(l4W4T_6u1-ZJ48#iuhd;vE0 zuSbJ9xHl#P0J1aBOt#pJg)LjOpFa4Ghh}!{(z}a7p}3;kKtRJHUc9_i(uiSh@y|cz z^<`M7dI<@XUa^lsodEi&RLDKsy6Z>d!@7KW#V=cCt|dHEZ~Bv&cW8HRvHQOo);8rZX9O)7bp{i#s`G=*v1}>Wv#1!kSgb zzcCD7;H%$sYVm-2iVpx(sRi+U$Ntf~&67ViJ8&d*lOF-QGxerjSvkgMGxesO04+1> zH^is!9%?AdS$jugiVpz5lAoE*0V|%QK~%J$*o{bvhIr(xO#Rlcr+>1A~pZ zxjDZaJ+e2(Tvm3Gfksd?PRN;)mhATobU9lY>lV$80 zeZ1(wC&ybf^iHP!e1|5%0)Z6#K0$cmc;>FXAFO>K)@Ump&=`M%iYXKrbGpB~=5CH| zcJG|GhWs*$iFyKn&6qqdFX5BEU=C}<@c;mV=(O9X{Vco6HT+3Sas2AMlM~}4YvE9( zQ|MN&R&RQ_G=034F>lYlg2Y)YTl2c3p3Z!WU6K6T_HK&JvEG#bKhfpcV_TdU3-F5RerBU^10Sr%xS;7X;x{)6iB;ef)wS8F<^h&lMLH{&wQ% zfz5e&`U?e`m>VWQ5~@C66$*iSbW-Q`=%oJR*eUDQeTPl$i%V^N0f=BY6EKRIpAGN! z;aY!hx6glB^lUVdI6*8f$oBer<`zX}+CbEy2I*yC4$$r29iZJGlWXbJbzT05QNsi% zUxxxRgR)-xJ!*N1;m8AxGFCN+gv=+S-j5sB;f+y}weU#p$tm$_*VevnA+-swy zAZhl>vh0Ju2$d_Yw1!B3Wy7Og&W z>e%Y^^yF+oXxPuxm3~Isw^kLjZ>`#qkuAk;-BTK#lV`h)&Kpq#0^OODTYTrJ*Ou6Z zHdCyA`Rw{=!ufaL#)QCj$=O+gLg8+-mF9?qbhW~{#}i$rWY6CAVr-!?r)v$jQ5Q<1 zo81@lM*juf6|l6)j(d5%t>k2X09~!cM^T!-+@SG_KJ3wQOr%GPm)(m}7H=v}|1At` zt4CEgDt7X_ZNF!$u~9ZtrY-B>l2z7a!Wh_AXid^yr^#$;vz`JqusN2JmPAI5P^DC3S(!N zgSjt`QCOOW4*c`*XPX!Ao2Fov?yA_YFG;=oy*0z2QfQ73?=((7`=LEiIVGuCUu}LN z&z!DkcfRC%p=l>}J-c`Fpe06;_nY8e_;n4fPe%#Ya{9MbY|P;iS04E{DiZ~7>s z7O6N@pt`T#R4PHbvrnt65fAs-d+Y797FVw9Rw9e8ALIx1`K&O&`nr2&?4z#vO%$kQ zro2*_STKBq!5Gy$YTbzidlt@rGtDMjhFnO=~ z^ZZ?755%1LvyII1W#4CXD%S(!Z(D4SY zy2I`*UMvpkzO1LEG%+dv)bwn-F|iwi)S|*A)-!yfsP^pEt|(>xo|3fXo`8I*J|gwO z#aw*!*3A76m&Rq?`}=R3TprHKim0@bVtZhK+uDh*_x-IyJO7&7cvpD>-lRsD`STaP z6&t(#*M;-HJ}F63jdwvr^}bWdZnpz4vCSS*o{ICPRW`kwnR9U}&ZVgDii64nxyzf4 z?h5bzX$P?M5&5jjSd=X%iEEnqP zC`Hww=lgtN7}R>?KvUkX!|A*3jAz+cJu0Zq$da*Re!?siB+icYY&GtTf0qSAC9|Qx zYC3yH>(M>hQgm=f#_pksEL*FW7HKeLW<}h$>-)GIIW0d1oNqBf1T+uvKK$75_Fv!D zuSKnc+^@zHusT;qfJ~^EyUt0Ma?iaFy+3Hso#}^S5BxlL&WzZCf`ZHDwh4k*?_4x0 z_iC0$_kWO*f|+WaaRd{MRm${6W{&Y^ffchZS1VHx>L-4xw!%u-_vR4*&$sXK(YtoW zi_CZxfTx`a%S*k(mzR1YT2p*xig#vNh{D|d{3WQs7}xr{>&y%PXdV5hL%H%o*Cu{SWVx z%sI6dd2M0Y8kwK)NuZ$e+o*BBWtc|g<_5qb+s&!O?Ae&#Zo4F;F5eNExBfstr)ql+ z&-mb>z%HGF{u0?#rwo(Y1b;M?tNsKmD$HBz=cW9OoHhNUd-Z)SvRjlr{=~6g=g<9o zXKHHlMKPkXd|m{yTz4HZS6xG%&u`Ps2k>2%-gq|?jgv__o|R)>OCn}eZ@VniV+jge z{%7*o-ibK?rnYN0ZKkACKFYutlm~#vm|epLr@Nw+(v72yZ*Aw98z0-b zKV?ln0FBjHRFPSDy4RTHJ*5`j9hZJKJZ4b$W_R`m0NH9-ops>xHq2;r@e$af_Ug9B zD|~84NhrPMsnj znlo?lGiT2x{r=;R-)=Z`VDE(l*NP>mLLsoFj>Q6m%g6P|0lvDw0Q{AyH$^k?IF_*` z!(ghMic{|e2lJJUH^+}pDFrZ}Xxew>0pM=}=m`L)ZCbDKr{JY{{%5-)==gR;n+>55 z8>PfwWh|}yx~_ij&XrwQwy5(HKij0x_^Vx;K7LzZk5y^8r>3s66vXxfE{?LP2eL{R zvd63KharN>vqRpg5BHh#cJ~3$6aZ|cXQHwXy#P_+7Vj4JQj;dpE8CiKcO57=Jxi4A zg`I0V2!Sof&jrMOx2|)S{9;AtO53wV*8i%I_iiEC+IV$elu>Xg+_gTt-oIz9I@CSl?&6GPTQX9<(^eQ*O3p3G)%f(!_HI2T3W8`UNSw3I zXjmT!mVN6pmZ)%#^=$XPR^t*LS$JknOiAX-j<}3JRI(RE07Jk0I_r3hexcQGf`qZAJr1;H1J&iGP?cbMzyw#@xypWSq`mRjE zD-3!`rBSOpb&hV4aO!Zf(P*r75+>E-$0C03Td@E}>^q#%w@#eZ3VkN zBHF$=0t)ZM1XcT$CPA0q0d;&AR0yiGFZcN>V?e}+UZsXDF=;VllUTA;5d(w0O@__A zG7X!{G;SS_x`&Uy#jE8jPKC+yca>(XYQ`)D)n+Ubv`0K!PcZ4c`*tfzUlEgg z+%^5~>Mh&sxh=!(TgO6hPtQ=dTWJv8GTNesa4Ug?tb00+J~5)(v_AIIQ)L-@?unIc z#aE0)Wx&Z)bhwXc|6?|#uGwC%@VC9)!(R0-&0e>w`0QL)Nh-T!)iNSQf@`zq(p;Mi z?`J7IcsL{G?xV83v{$|U5VAd_IDKhIar$q08t=YIUaj7ULd&-mg{ceIW+kq5|8YY{ zpMwdWm5W+2v1OA&iu+B$X^maJ1I&WP)!l7KV_&yA*I$4auw{#|EtCauog`})_y;u` z;o~1%m}|&blaYS*oXujX@d?mSu`+YAS~PwjvGNvQpMc@s{qDHCq_}W%{PEaB21C~6 z9k!C(;6+a2-YLZZzHHZS+FZMn;vO)K$N9eUkPDjxnRdMtB&bVDR1xbBiGfGLiMVRG z6;olKRu9Cy+IL=0rM;k~{?M~~ZN_uGP`8X1rOlY!J3DTaEU10=c!iHw2KHRt-c-0R zuHf`n#gaL*I{*!l5a$~FM3QUhlS6H#$zsO7M-IxCoCYtK%WuTXoV%@GM((zfB4NPIWW1o!xZdLDAM%i&f3Qn&QNikzGba;Grn1Yc zOlWvE#QEj1^{@czVHwIWcQ=oFy7wG7p{%qhE-CT&j*PUF!s#;rZ0eo z6gm=Qi@vAf=y(XC_ONU7mx_YA{oGTs6`ipZ9@wk%88}$B6$a|#UOs3kiSLE-=BAB> z%*b9D(Ez=6;4Phd4=*mt->YC;ff zX8_x0B9uS5IJ@57p;OP7+O+MGdM+j5e@Um~4R-taDX?&L%+(c+{fO=#w_?W206zyn z3%gorO&kzuOS%=!TRN59)p_6`d)f~>Gcs3q0=Q9^O|oR_SeQ7At%Y$bydvHiru7-v zngK4&S+m?)da5fL@jJwT@xZB|1Kh!jTk(sBW~XS(l5+LbRc;}rm2%>QTaECZvsx;}pH zotgD)l8qZlAh^4P0L8VqyA@h^pe@jr3Q(cY0&Rho8Wbz;?v~*05Hv(K$;OlQnYs7< z5FtQhcas#_H@`2iGLoG+bMHO!KNucAFeyL(dJly7rdJ-`!TE8JSGpQX@w#G0aofH6 zEMDr`xL3xrRpD9D8$4xhEn+kw@3(UD8>H07@7$UG__vUkRL|^%L?@{)F5TIphAvI= zJZBTY5K_@?^Y>qM-RqU-im`@@(mtXU_sq!5I{w#+Uq&1~w5LoRIWNy? z-#`NtQI4PCg&&(zO4Czy4*+!Y6e?GLmD;U)rOI`u2L@GpkP!duNL*Z0nn+64O`6bG zl3HFmH8G1trd=50g8-7ypx`P41A{_bF=nzTkTOwF%g>`TvvmM4r*h?`^H_KNpb9>k zRnKCxB|RT$T`SC9-Kv6@iy>uj+uQf+RnpZ)r~q9|TS44Ymx>d#PJVq_7!r?NNIu); zF%hk8002zMCu_tdpEOF;)z7!ba9w@zIC z$CB9M;<;r(nHykPl=2((X|YCq+HX>+(WCJ^!-xN~0KnSV1mmi?^S3MtKOfgbBoGDwkeIG? z`)PaAP^Fx=^b5Optxer$ei%`k<9Y~ClFGN&Etg8~g<1@c4RPoDT_D!ff*dRgYv#SS ziI+zcM(T0drP5><|Ih<9OerTXr#$>cq}JrdP=o_WZ<1X5<3LlzjYqEeWecgRi{j|i z3C%aQYgO@uPQ(~FuAY*cQHBs=1mId(d3K~I5bMPYC%*Y^-t6mwARs8lOH)?9_%b&@ z#)cZZ{GgmMh+&F%-dHSIX_mySO%jP@x5~vYOe&KP1^~HMXPPf!x+K6|p>^=IZ30s& zVr;!8faFqEW|oh|Z1QsR@VuFUFE>i>PT7HL%{`c|*z4~UDCxo#1=OO?5WUUsWGvoR(5kc2DaFY?By zP$=GuibYFOla#x&A&pVoQ3s9X{hDrU!W-ivGafB`WX`x12JpN<*32`vH=e4eKXKLX z1*29fq-RGAsJmfE|GG~KItT$$0xLj3f!4DU`A|y1J2LYA@AJO?3Irc~Y2!!8=1XoX7ioyB76BbCZ?lCR04vQnFV4u!Og zv`4+Vwb{_KcfU2mM@{Gv6j*UroX#8x2o`1}$u<9_eziP_ex)$l&;(vrFCs> z=DEHA;4Bi1Ph1bGed2l$RPj%Z9NO-7e2`aqQ+Qq{sF$c~o$#zRw+=aGym&DM6x` zy*}BsV{78B9b1<-YSd!W`_n$|P`PULr7rGtu2u(&&7ApY_3y4rzDieB)Zulz@f{Dq)GHqds=a{`9B6 zHlnoTUQ|j%|E##J{(9~9c-Eu;rG1y$b=H22N>#dJgz5S7;d8&9{YjBV{yHdg1H5zR_FoO^)$S*i%EvJnwjpFbgouz@ z*!M-T#KCkRgwR8WcHTR5Xy;drn}r25Z{E76#?9lHHqmsIVp!nkA>Rh2)CU0o009O{ zUp(*2m(OMm8{BhyKv2;B>C?Yx*`#sv4`m?zT&pwvL0MSrr;*1Nvb$12%9_metC)`S zJPLmh>sB{COWB)HTps`+T`%)mwyU9+;xGq|8=Q;m-C)ZySNXFKO8FFo`_V3Ue_m>M zE7N!}FOV*gFy>0ZZY#h2qWxiaSEbD(5e96N6UN8iU-8a_Dc$SWZ!(Z&xVr{J@&u*Q zZI;<=d1FSs{FIRaKCcJdx@qHu6NfgPYTLeh?OL@O3{whi;ucy?j>1=}hwwf*%x>&jpo?%BFF`nt3N?e1uK*-pc^vB!qDyz_EC{F* zAizcw52wyNs2YB@PUV(0T`mo6cULBt^0xFaERxhL+4ZHnT6jIts`4Zz5JG&z`V}60 zG^Injj|bXo?>51jxNKL{0zVX!yt!zwgie_pXl}J;_NSGTw=du zFTFeI!>V1o_wMiM>2)0dL_&)1=2IF}@=t$M$v^#PjaSpdjLh%H?R&19fKoZ72uIuw zY#ebr5b6Z$ZjJ1C)9UVQYyfsTC=6!q!SVwQ*{csd>*af!I;&-e-=7$|sZHyeEf6pv z;AqRk0`3cjVbIXwW9xVB(sPX3*~OK&7=G7jADt$IC-$EI>);=c14f)W{3PPk;YGD; z*ZsR?>rUM~y?npJR1pP)U(X=n3d3Yq#5+0y7FSan8yjo<>(3m}a;c6P(HmrB7>UH2YsKp{c(|K4`B7f_f20KNbKH=laep7witsN|CtJF??VU7%M+ z9Vq5L5kwrl`Bbg=!&d^E=J%B-=b&b=!39WZ3H zw~ucvk??C$b&vO2ES7?k=SdkA^p%j;7Kp!f>qg?OTQ~ml@vpGGV~6hTDg=gnKv{{I zh_Dxs{W+w$yu21G45KlN-?n+pX^!L0wC~)rX8i_@M@uF0##XAB%wb_SqSk0fj&BcJ zH~k&|zp2wxQd4w0i73i^eEgSdb*66-g`Zd~UtvpkT;xFhD?-^f3 z(zzv;FvyN*$+D~ps76l?%hJd?-fZxJm{$6p~AP8eXHpDFpf>Ho| zW=7)L)xVu{clX-UwMYN33W33&Qx0awCDC6cK$m)WC=&|X9;1>cpyvek*B}IIt2F+m z9RQk&0CfidNXn3Fe%jVlBa;Z$-Yp_8wQm&V&tTE{+5_*KD-JcNuQ#!IrA{o15^OjAkjs{n%a&y#}$t#IKTDrJb7^Eir-pusGeI`SuEkX5? z-i!&p9`YUu3Dz0}3DYQ&d}AeC42#J+Dw?liObeVvQ9>NolgWOvBLINpJLEy?p}ybaoZO^;yYV4VkG=3LB9ScBD4_RkBsnBx9c?8$ahnG({lHR0;|n z6S4tOQv}1j*g+NnrpQ4>HGu3mV*b|#gF)E7b?sS<@wrZ&dey8`uTg)6N_9u8GwnqP zE%fn_MdW^0B=)bBi4E(aoQnM+wHkf*iGYRw0if}a9oR>i1}p~vzzA7=yj1JI`n27F zDwRAO^sE#PLI@F%H4+FO3kU^JLiQwTAN)ZaDE!35l#D49PTa&vQ`$Eyc2SUZ^K;?e`fJx3t4>JsdY*GJy0SbWZ=t*(^?yaQzcWIl-+ztW zyL($={_i+ij`T8(n}vFh7&&2ZP*BBo41>2TB=8MFyz%9{b5eA1nnS$2%zI-Eu&Cr) zqh619?bz^a@9wQXhqZ3+)#j}Zoiy&jqbSf@L@d(~S{}Zh(jx$HBu;0ji-B3|?&a0< z(D92^Pn|rv@y7*UU)AgNHcyWod2A%aMe7klKq>9ZacppK#gGr)``^c7b-ILYM~>`1 z{3!BXq3M1l?W0%{2%#_B=h+SxX?qIn2%}N2J#=vI^gn-FTwqUnM;%=N02mMr4h~U| zpD?9Y&DwSQavXPFg2^b3q8-S(h%J+wlE@ zug+*=V$4PE009s?)?_b30ULZhWJ>^GnKseX&)dgu#<1ZNha~9|4xKxDa?jPv=U$0t zIx4|m8srAka~v#92{2>LR-V0Z{@9O;7tOt7GMNg09+lv%tJkdAWzmv9>&c`tEsKQ@ zr5yhVig6b*%=5l3|Jr)MioumMiSc)B_K;yra)fyWo9$Q>Mdsp#GiHXB?CaBSXf3r` zDYWnW_D?NZwYz!u=8X-95AV2Zu~>@!4NE9&hJcuXSlS@4SmaVRKCD%nVa-BYjlXmI z=H{h8E;xGq`o+w`wk@SfY{Az{z7YU6#wD8DdV2ZJ=-GSlvUVMMoV$MQ{MKWK_dXyb z`;RR3HoA5|2n7MSsuZ}fghFuS{hKQn%%6QEF)^{&@P)laxdK7uI51u)5Y}bXer;4orAcQ)sjEyk{0LoiUsi!fP zT$DdQu->O%) zPTN0Mt{)No?CI{mR{XMm-=3W>1deSO=je%YCEZv(_4nMpWm=ii>Hxy zZf!hpVCPkWUXNBZqLjsm4J8z}(#FMX`RS**U*5fS%jRVG;u5m+qfoika8kRCW>_{D zA%r=GE|ai%#%J5{#IjFcD zuThf^YSwFD%FIkZT2{v_2ttrEMY7%^#eJ++bIg*T=6!kc_z|7m`?2AJZ0Qq1({^-<;{pvi1_#v;X!0Ngq!m8xrtR&Bp+(4_gZ$a}Xo?%T8d zip64lVMNMx5ZJN?EDTC1&D~xUMG?fzhgOpLh?6LN11nVO^3HqHMlfI zR||Dk*aa#=oRE@QKuv&=ImX*d<2>=*DL)M!JnGKTBl|Z2;4;4kIkkr$rKZ9+0Hz6U z8jmRe02H&ceSBok%Hp_`Vi^TVM-j2Z^jTTY2o=wWf=C=OK7hhwc>n-Xslrw5 z>eZX$JKZhtHoqv8xm= zPqE7cN@)OqIRJ^~6c@F`+_&Gr&j4YChr4&Mi;K&-^z?MQ`axwU1lfM(8VzIu$QNjn zj7Nc@tAL;rW#~k$&a@d2UFhqfcqMt-5fDO*NTn@AU`JccW^(TAp<|gDDJ^T%X?jWH z>h7>$a6usqj5(RJ#=E0jp&o{)kN_m}9sq6l;&zT6??2EV@D;M9{dRH^ZokpWw5V7q zWbk`aX18$Pa)fo?4Ge8O6^&vy8*SjA!;>HtV;Cp_3ty~gW2t3W1}`7KD7IIZ1mIOs~`}f z*-v+S&oukSLVy4hF_bc>A*FZ*P;^zRGaf}i7y5WA4?{8cZDDG66v=8>2^vQU_+7mm zeo7nrv;oHWZG;d|B05%ZSpXPg#>K^}xm4jY1_4D#%(@RC7FfgR=v<0>p(3Yj+%T^# z48ilfl|%eVf=~p*%If*~RTwaQ^u(cttjyCTId+aDg^l0kGp)vy;{fbgiNd)J0MksX zGu@{^7g4KXjlaKLVp5J=W+ebgrj(zD8A1btDh?Vue(I~mthl(WGS@R;7;L4y{v74g-e;(Fj<=U@#eRcEt(yAb7az22)h@W8 zZ3=T@If{?F;;OHQd@v@cGEg{4fiCk&G(C>fnWm+t7M=r!5bMHI**jJu`7P?nLw3)O zH4mOVyxk6C{7Q#kDpE{{<2Nnc7Yng*P1gjWJjrN-$Xl0KiG*hG8QnPMtMp(ZH}a9b9e6wahg>WL#-cY%jR7#jLRnP)!SPZ2u3)#PW{kfah&o@R06{?Iag6PowR;yNBSA~X<0N_sm0E;;_{>XuCZU{lUqW6#=ifx&5$&^a=-S<8S z3kz#In&Tu!iz#as#;Q&%0<~j)$-*}hC{^$R*M$%~*kmw9uHUd~;x9`U!~p>K2Gw?` zRkuB`FTN@>XNS$zyXq{bcGb!A5bd(xQx}pe4v!#|!`|_+pt%dSTt_-_LJY`{#vjJ^ED( z4Qt!ygK4uq(`w^RA3Ct>v{WH8~V$BK{0m3r!(yU3Jd+bA26Ja5j6i`q1F7Q)L_6c!%W7YQ?35Q+QE z8<&6oc>4b$l9Ll(i;Q6z^@ebK(_FcPqT+aj5V~jA=6ic~ZJyhzRR{mJ9lE?ddhB~2 z38I(^0N9awH+#jLZr{F^F=P6B+r0h!_AUD1_m5m$G);k#=&5KtjexHLMYzRZ1OYhU zCTDV{+3BgeZy5wwrPlPqtmLd#XF3CvF7WkI?1i#R;x9ECHf-!RX8e?afk73!ibU9- zkrp?~sLyz%M;`&=coKQerR7B&Y!&cGLZIH$r;q;r^rI=eA3nVQS{1X)W&|w35XdkX z1kv`Y?eOp;vEkvHP(hpk03ZNKL_t(Xmes6Nf8)S`qXu|+`}B}I`A!inhJAuyh^N$6 z&l{oC0ndIyT%6fx&?maOIB!K5?ub-A03n4drIvGun0){s$nKrm0mopPnVIxhuTNQ| zP&oaqa`x)Va?&l@MAH)lbde!Tu{L`h_XdzJ3h(dlubBM)%x*Pm)ER;hx?#vjo{*WT ziz{r?lC&oS01yQjE&vm((WkUNA9Hpc{_dG)2XmZFa4>_YTE754oS}Bppw>!IfwPPiU zg$lLl>-a>pROGF{<#;w<8w_G7LX70|S@Yg%+$3}?!!l`RW9Fw>8433Uq3A+tk%$Fo zBovDQu=EB+s7Yo<#+@}Q|D3RL<*$Vr`Rkxe43OhcRPO&{wHdWH?Y#BFv52Uc>Qy{e zeKD=oCApj{%a+dKUw{5|P^D5G&z1I*DZB=VqIExSNxM~8l)lI&;x>R7h62rw<*~ru z2jIU&SmI};Y!8anU4aM>5H;xl#O9E%B#+XPEj(xe(`~EOl#!GewH;$_zuMI+R3>wJ z7fZOA+CPyGP^l2ft*BF<%f(Pva#X2lAc zb<-v{KUOi&?Uhuol6FS|0Kgcd{L+4H+I6YZph2@fDksmLl!_-sOXfLIv{)hEy-!Qj zks@2)^W}SlQfnLs*5448ZsLLI1jwlm1(Jva<6}yNMhNBg=yL>HJg4ULl-OffA~~s6 zx!0G<)dPTG-UEWq{G;v$gzhwI+#37%Rp>5?!rj!AXP@(CbD2zw5n^tMNUi~3f~^+Q z()8r$v)=yIelO{M|5XLKm4l_$^_v1$XJ(MKUwoPndh?EHve8Hy0|4mt7WK`$@$ZhG zx@(-Duk-#fgX?c=6IL;$w2n~gkk$pFsg|-Q5+$8L6cXyAO9FXh0 zIpdhXo3gUiuS!;zhcGU545ieP#v<4#im(SEc^F}o0}+4~i17*qR0)+`6I}oRAXclG zo~pf!Q2Z6Ot4D}T?$V!OH~^O29G_(P-p50E2+E+7FQGK5diDBAAysQN!VK)9M2rL~ zY8){>QtauWNWe-e0#k(u{L18%rw2ra55D=%_SpQZMk_1*Ee-B+By()q1QtKS*f^hrs(BNfH@Gbf|YpE
Tes=d#n(4ribUoTXSL`LV5ZC-a(OTe7ywKM5y8g*xJDvU3_=L`h(u_Kko*y) zrX+j!N$hB1Ln);hsk(=}N?7Ki@d-^!O*K2axbBJ9neP#Rg&E1Rjiu4amk^Q^P$A?& zo%+q1V2rgAERF+eP7p!aLj=&2bpQE52qh3CO#mdTD~i^gS!vo?Mq^fqTh9Gc{9~Cg z^XK_o2Y~C#mL~tWXP(=t08<{#$2E>6#}^VL!!h z_Tb(f-Gh5~R{Qz}Y;V`G`&)rQAww9JbCJu%$3a1rFql@z*O3i6C{UN)@o;ws_hq9tBuK8yXx27PEIa|Mvj>@!o$<6*V12CuX+09 z(Y95qemiva()lzy|2(^(lu|&zKX`EGk0*~GL^o~Ls;8Tq$5Jen-you8BNB~wif9Z& z0UVR2hkTEU`}gl;&ii`iHg7+_efxmJgMrz|Y7rIRnERFFs&H$y`^ z_$bxtDi{k(IApr;a#B2EF?D!+ef}%(2yxdamRAQtosC%;(=#&@9*PAho0k-gvqoho zW54lh%LVQEwmQA%+v?R(PfY7SpOx6*$rIr{QJ^&d0JQPx000xDlBUC1*1AnCjXb21 zq!()p2;<@!85KxYR=Oo4GyR#nyT>&|ty?RFRPO)P*NcWGCnfINwr#`iJv+A)-53Vp z>^5PJj@gu;i|4|lFP;luTD5xJb#Jxr+{Me&=S#%N;(=N>Akln*5MFq38=5l$I?|r( z)v-DuF3!C4$8V3w<*E|{290b`w|>JxN~LOQyw12$q;z49zD)k(0{~ErnX8SPwN-g| zdRIrluVTP-7y+@CMJ+j@tTV#0WQuUG#cKFLr;EOfv%T7-YJ9G)u9A;Fp3}Z=!xke4 zk6BZiyMBe&o{Sw-QO^JUchG)|g*h;NdQ`*fH!P#9X4(Y+ki{w}ELJ?+WT`nMOG=L^ zn5SEv74d}!YfI9@jZlOTh(s`4r=sCHF!B(0caPo^-~Hf^frCb!J8|s5)>VJ~`k)}? zYo-9%b9>0Ij2(IJMr!1}8|(c2{dctM)bp(h6)H_+S@k=Z@*5B_pAXpA-#H;b89zFWjXc5+~w~MRhhE``j^yw#E*L<_^0000OOpH*wUh~U=K_Lw> zqT2{D%waJtdfMvX3{NG}^9P3ATAL8HPbqKbYC9TlZe0 zU0hrx+Jv+}0N_K%&e}F!y8-4Rm5Oxf(tyhVaQU;@x{Bu`GRNrkv_AlFL?n#f2p#nh z)G%7!YZy@wy>Iz~@QSn(cJ)&S*KrpvfZcCd~rmwV-5H+1>Kjiv9ZS0D}LFhQaK;#)U8+3s#R+ZluDh(AuMb|VA)SaYcc=; z10|DFEcBcRp}Tf%xwC86mOCw5w-0FFzU$jHs`;+X{oKntpg~Yja0H7i;{o^t2ZH3q zB9ke7)ULimSWeQ05Wzr1VQo_U<9&|oix!gzK48$u8bgMT8s+C7P*D`DD^io59Eyuc zRTi~PY4FAvV1DL)>G=e}^YhK?4GUJUOCFGt%ul40x&i>0Or!>Y=Ujq)qo|O!!9#uj zqJ$Bw040<(1OQY(e+WeQ1ksxQ7o~WsLauDrp;MRlTeWFtx^?sFhTnhx>9jT`#^kWS zDDU8fS3~Ia8P;u^R!49gce-7tw`@i<8LuW@e_J*|l@U*e;#>4A*E}9sZ%2LJaV& zw>tVxc<+Oul|m}FLPXq>mK-z7Y}T6r0BHUy-ZE12e$4Yv|jbq6TEopfQ?a$E8|PY>?hcJtugZ8t;1+6Ogj-l~_{*#%@Or*{C8 zjhX4XVmtYkl*f-BrvX#}0D#m~qy0SOu(3vy14nam&sKlOlDKe$)kHd*tYTS z#{d9bI`?t#taAjcm={wUtJkXKGWGqLz3bO+)SF>&ggz^AL{@t03w{RVu$+_aywL`j zOXFtF=50HiH<~kG znyIKiiYY#ULDrypwHgBe;Ti})ML^<%!5VMpf$esapNTjcb@ueJALo3txC6s*Mx~Sc zT)D#Knc0-JK0P(@DnMCvs3~Eeb-)w~D7?ZLW3{tabA`%vj3A0|?aKKDe=Yy{iq&d; z!DuKru2jwDglpX0y<{JMI=f@@(AGocGDWmLGijC>pxu<=vYgH%%SQ#Ysd&B4B@Wmcq0 z2oV8{mnbz|My$*G6yc^Kl`N--4M!kuW03W+Z6i|2t}&%(4q?cB2G}VImFrZQ!r5vy z8#m}P<0GtAYmxEHvQ*`^6}8%bEImD?R39J+18^LJKK=B| z(2iYuj&WA2sl}|HpBQ)VYL4L*EOGLJ#zxr;hW{!9%+K7po{s=LKVR}w>d$)*qz}(X z6Gs4mk`M|eGla&PokNo|HIZ_eVN1<>&0_ z9kfUUCXxYR12FteOlhIVcBBOAWdht4S^)SYIT_|!z%*VaSG_M&gp9MAO|Few!Wj_(9PbEDncxC~Dd2t&dq& zf~*$Pp9yh~j|zghcva)FXx#A<|5^jgWy<@SgemW97MzUG|NO&(lpeZ7{(qEGKL7x; zMXYMJ$UeUm8JxgjWcDXmsZ#kiO!kQg7Wb@TMg^zjY)1QTUC z#bhIg_`FWO`EhgQBEh{AFco__0^dNN@R-Z5}9JCO7PgP&r028%u3B|43izi zwWQ6Oe;s}P{Mk~=1*-7~pFy4K5*V!c?Xe9_|!1*qgAPByR+GoDH_~#+HtN zH->qEoKC)f1Hj+$I!i~El}vYW^;zNK>=|yzO5Mg2YYME0CV?K= zw`20I?HlasNnvY|woInbsGL3fauUVc2*GiLAkAzxoVCaJ{we4d8jKJ;U@@5_laOe= znf={XUC_cPs~_q=XMnjNV9=7E1MUF8kX1AC?iG+qrBS~AA@y9{y!#`N90NcODR0~BIrZ~U zUI&0-@$u$QF~fWgK*xVH^Q*-VA4aZQ`}ZH`Qgymgug@cdts^4oSdj{ziP|SeJv{u( zL?phBPJNle63-cib#?U#mC2pP07YhorC%yI@h0TiP07uttd@iSSp&?^oY`Ja0pOd> z>(iI6T$?r^Jx!QENOoBa&(nH|X{vf3&pDRSt7~#*$F>zD?yge1XXCbBAdAHk^z`u^ zhPn&+$Buot-oe>u&%QTob5v z@v5g#xr_#cJvk2l!66}>VWT4hh$)@s?h5_Vl+LEr;pV;%)6oYc>p zR2rdKi`HK>Xxu#U@uPd|_wCwtv9M0Qxs=BG?e>jxX-1>@Xi#v7EVy#@b{~E;XH=p# zX7~PsyY^i;8&P0sPf<|Hx(dJz0APA#rYD_!`t<%5tJy>$=l-=?Ei%kW96n#1uV`B7 zqzP21+(u%SYk(15FJbuI9E%Heu!%Oud7qY-V<;q@~{!OQGGiURb?arHZ z8O)aHlb(h>d2E@;i`jvFo)rB{x|6C_tvw+&=IN#bd$*s|YGVp?&6kD;lMu>MD#Ftzk>;qU56=1c`d_Y6 ztzP9ZWB<3Jcb}mr&P1Hpx@Xs>VjU%vVdRA8x>3XqF`Kgvbzv70?1nu z0gtot7K1i6a!0aGD;Ac2kgs=#W9N&x&Ki%vF_=NOS%yxOFnqDKirL%QX7eVVh+lqx zzCnC~VX7$7yhb#bL8gk8m<t5P)QG7u@k~le|O%q0YEb2eRxlBrP%MI`)-ka*F zdvB`e&lk=a{+v56xo472_#Yv}4*xP2|vx{;AEQWvpOxCXpIz>S|Id!tO*41m) zi9Aob0ss;TQ6{GthmM=Fj<#wMkkGlcb2@{;#h(4!Q$gh8Be@448TTyN_=Q9&n*soz zAVk;4>C8U^&oA@ybF#}I>}?sHzn+ihdAmb3lu}ew?PQJGbv^p`A2G`@+wIY_#e{<{Bjgx00j;w6kpU^l<>!jo+^+aCDq%X8 zRS>W&U+YJOLct6hF(I^eorV)R374eTr+%(aPb^Rg&e7&9X0ssfJ#=6B>+WsgmFhZiz39p_!%JY{#!&GG|J826q7+`h-`G0dw#Oom>1e0xB0uQHW zz~K+yk8S?=p>>?uD!v5(piMA4FI^Gotajq~9vyrm>(z4cLqJuz+m^P7#Od%Ok4}dl z`My@&Mr*^u+I9Ex_T8b?nI8axMd?Yhb@`RA?ae1GjnIc&uJHeE;qTw7ot>*#EvD7+ z+Q@@c5Ujt-EiH6-65Q;<1?%9osp5{pl=^CiMX3GY>V#Ax{S5G7;jx zedBWc?HiZ>tWY6jQ^(HTI{F0!E_QLJ-)NIy34@sPq5~?`B?|U{!C8hi^+t ziAfZ#r*-iU|FU;K3}yNl_AAK+Kpk@F{%0KDV`(rVN3=2`oA`*>gai6z&WaF z02Yf#C(hVj@9sU_6iTUg-gg*ec5=eYW__hu-m;lpw+7b&ruNj zO`WW*b>kL4#$pnCQUFXTr~v2`!lKDlo6Oyh5&rhxg_*^L66}Tw*%>MOc5i#Q{P)G* zhPHakvs33@-5NJ-H^^c#K7RP%*7avm4|(!Z`WAzkB7M2D+`Fce`oFY z^X44X>EcVxt4D#rXLAo$ICkpEWI{;I-1iYiqEdy|P8j30c)$?l8`1mSR>}?VHIXl{ zKW))G-GYP1jl=bNaSRcO6tX2|x>HKKS8MX^89;P#WMGx;baVgGi4rr}J*so7A#D)Lr=GlSYep&R@_3Kw&U0jx6GI;f7w0i09;a#KSQs2q{zFf|Rzt!4l*6gp`qaEM- z>!aKN-vFk~^h}sG6BcaQmhszPD^hzJvgj0xMRd>kI20%fts3?4akVDjE>#i!&&!u* z8%uILQb=`pWaRC%1@muj^7i)I(|_=&R#mFj7!({_gNu)gI)4A&jdZ=y`od_&vJxgR zsEW77!?#s(a?;7)mVGnk#IXZ*HyJI8W8txy4LcqVuvqyf`9n4`8FQ^pJ<05)OZ@Fl z&VG|9H^4WD{(YUZ`uBDI`|)GgF!Qsh4vAX&q1h~isRBL8$1Y=!Aqgw$uQ0N@kk*-T6Np z1hw4g4FFH=+5gLHyTULSGWk`@e?E&bKG(PZup0h>b%y4C=IpHWJ#u*e{H2S(yHZfg zwt`?#@p-R0or(Ky*_D>MB-4cao=pkIWVpI9^VTl+-Qw)Y{cG=2ma;Uz|Ehche1nn8 zc=Xo_|LXwo&S#&+SG;(^GCoT$^rM6_0KgqSeh&cPbA}1N*bbhr2!#? zZrQZvj=}8yJwWAk000*+KRk8q^!Cek?Wl-!7oI10?hhB6JdVy9pWm~|u-Kw@Ld(7e zc1P0y01Q@1L_t)XJZ(#Q%&i?|+@SbA6rwz|7674D(lSNg9}* zMkWb@=mY>DiqJSQP1QIlU3o{XwC=7Pm~c_Xl0q-1qbX(iQ`ba+h_58J7DHhp;BRYg zRXlq!;ax&#UNt&Gh&a1)e~%sE{^P&Rvsn~`zSyPd1p{PDqftRQWy*j7-U}i0QOb+~ zqm+MKIG471{&$%jQ&VBO*=!8}03a0AOxH_mUb+*Qq>%F4s|6(;SIR79s={p-FO7g3 zwm-*z?!s*z@80vCW@F zk&pBSOWmB0J&YD^!nFr}!&pYx7v!CG(AzC5PiBzP>=DrZ+|K7CAa$TsS?&mUEIh`2 z!;Xjj%@&~>)2t%|fk*%Viv+ig(W%?UCOO?qvu2#=()FK9krYJ* z$IDu`{Pe5iBdolbmnDv-#gPJ^(P8cm;qI001ZjBa0|90Z=sn zK$e-v0pPV4DV9?*CV%LjIQc{P_UK8&qF)xL_D)L`r<+W?1^|FkROj}+%sM09Sp~es z=Pf5D`8dm(%Or0SV;N&YEgFlQ<{bpc%gSdb(y%PHy1KHz&Hmc!x5f=*|B9T=(t;Oo z-ux3GFt9+WG55J6fJ9b41^w^PzKzn-zKwEYObppPZANs*v?TmdW|k!g03bdw0|3}b z$xwd;$MCz{)lUzqBq^o#@HOLx6@jhzE~QW-cUZ$15jTx=7uuy@bY9a;kj?rU^ScWGBWKNy54v%UOiWHP_Yp+G0)Rv$OqW!H zf0s0)?`0=x%63onlbiVi`$c(8c?k9p*?Rpcuw5bFTF%8qdbfHt{K-%M@|?}m!pgJ$ zx&NmKMY9O-v)t4etC{#0x@9^4DZcvBCkg;Q+4y(rw;Q(@ho_|S6Rj3O2>?JTZj@>E zXq0Joe=KG6JH1^Wo|Z5cD=nZVU7+qNfotB4BH0kg=h;-NW$^)lb5Lma7b86==X~IYKgnxWcD zAM=nukue`q32XKBmoA?5ne$&YYX28}%ZnF7XKU;NGZ9#Iq^r}GQt z&fQUm6tRzT{^Mk~Z1WG_e<-j^SeUAtuaD{!e!lj5Ro9foBrs6*_s5^QHr=?<_t$dc zE1a|U;Hl&WQFgm{On^p{u!HN==hge{E-2&Km;)9xYttb8p8kpV5OyXhMU6 z)f*%dHm_?hLID2$%HzX^xU|~5#b;KxuKz#73ignkjGxPB09>LJXtp&{av1=%2LRAp zNqq|9j{kg0P&qa;Ws)Xg$|U&gR7A%7Rm)AoQqqKq4H~g4=gjiH`?}BV-vR}Znt8TP zo~j2zR{(N`LkVFoT5-+?1XVkGiE#;S4CPO>a$cZym~&R^Fy~)i_j&vqxqMmSN{LuC zH$WqTa1kJ^+471Q8nKzNP?c^MC$=0e&^I(;Wb~ zl>7SWGqyK{f39D4IpzG9pdix6G3@iv5733LMs>ZF|2wY;#Zih@=Kfz4A#~GTRgIUw zQ%*VM6wl@(swzap&2nE;L|450omUL-t5KaV0iX-Huj5mg@fM4sJSbmIId)*l;Bc&# znUwpQ0zLcHh%VP&{$7DnsTi~0147p94Z(l)F4U#$PPLqJ{(G!CEbW2-d;tJ}QY#_+ z!h*h6paISv-aZ;A{X6${mJto#7p^QXRVt?(8`ySI?q@KfA$f05So6*3o-qY|w@|Tg zO#iRFdy9>t3gZC&|IX}mcDG9_riIvIu?Z#y@sc1C5)^{mn)=`clxV<$B@mM)K6nX| zIBtkOXrhTtOsWM6F;PmrQ`QJUl2(nO5_zCXinO#P1T{tIWp`)yoX>|c%a&f)ZZGt5 zes6oGb7q?CzcZb4=6t@r0JQ-C5saqu;+3;4!W#9n)wC(3u|-&|t;Xv>Z$TLb+H$(C zk1pJ3&;Z&c%Off#ce=NtO7R_s>-^jF3>i%uSU4j2NWE`6GkR-VFgq-1M_F0Xps#2R zQ7!}6Ra*Q9B!B3Bjw>wP`?d9)9-7d!z8I4Ce3P|aN=nS57J@$5wPo#@q4paxfB+EO zTy%heWA5ij6i-%E2Uh7>GMaW>MRj0RG(w3nKW08^Zz`&}*?u<-AOINbvjHRq5PN!z zt$Pkyi}jUI(|}LD@-Ob`F}7ZB;ZwPt^j0eSQmQpMgC89asLaU60N>qv46x6K{o9|t za!9|tt4&7?$-BRpvFvJ>@e;t|T4S>?QEES5bTySeQVt*h?5zBDwqcr;1SAS5W|%mz z<*D#NzgMPoHPy7KAQAy~f9ZcF8WZc1nlB1rl-e6t|D9?-!wMkK8$yrAEC->`Z4-j( zRxa(VSWu`doM}^EV~enk)cdw4KX75tIYWrD;e-!JBY*%9EDvR=EPfv#w;mmYpi6UR zt9RF}?jCT!QPZY^Lq7)cn%d|!X3k4AGENIbU$#r0_;0xVr4>K`2v!~UN(u)FSdr8m z_j~x$4NuF%w@t62H`)}}c@@TIp+Her1btQjC!(XIyg|EUd0Joiv;*j}_th3N#13+c zo&gXfF3iexDmE9z8l%wv8)}mmLvqdcf%)y1jBV`B?F0ZKM<|rrC2Kz)N&h1bAOHlb z4&5Wkc!z*K^F@WApXU}tYc?$7HoZi-HkmL?4%HcRn_7(ZQqkhR+t6mPe8Vnz{Lhgd zXH)_R0OjQ&>)&iD0k8?o8Ohs(p?=GsC92mw8vcv)(^72$3r9>2{bbH-zbMuxzsU{& zV0IwH{+ugZHPrO7;TW|5y58RV!<~+yUIp`#eg_kxJ=3R-Ex42{12idFsqKlF=a=e@z+YDm|p2hjEAzS@Og+CoGR_uI%|7JMet%cpW@ zh|>?=*VQzCjv3dtsoHpHZjX6RHqM;)Plvj<+o1=D>Bd4d*U+y*(H?vAnv(->ADJ-= zpewk$c7gPW7YJC2q^C#8m>~@z&Y32+TOPV#n$E>6zj4{}Nyq1*u*Vxq>2hxojaz`@ zB*`Lc68^z(AeHD>=Wim3run73@%M^H$hs01US?QboydtukuT$v=Qzk$j6xz9gLD;V zpdJua*VaiIGh-e=SFk*krLyTUuqp=A{fSkAHEp6`G=r&DDEiKRaZSf~9CF+Om@HTs znxisk5g3aYypVv~$NeO6Qer&j}D{XXW7nGE|{p&s-1} zFi`<9&tQTNga8yWhqztPw0@W&A(OgPUhTRn#NoV{^n>#aV|{{hYM V5OZsotc3so002ovPDHLkV1iZ)*2e$< literal 0 HcmV?d00001 diff --git a/config_loader.html b/config_loader.html new file mode 100644 index 0000000..9e60aee --- /dev/null +++ b/config_loader.html @@ -0,0 +1,877 @@ + + + + + + + + + +genQC - Config loader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config loader

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

Code using omegaconf to handle IO.

+
+

IO

+
+

source

+
+

class_to_str

+
+
 class_to_str (cls)
+
+
+

source

+
+
+

load_config

+
+
 load_config (file_path)
+
+
+

source

+
+
+

config_to_dict

+
+
 config_to_dict (config)
+
+
+

source

+
+
+

save_dataclass_yaml

+
+
 save_dataclass_yaml (data_obj, file_path)
+
+
+

source

+
+
+

save_dict_yaml

+
+
 save_dict_yaml (dict_obj, file_path)
+
+

Test

+
+
@dataclass
+class MyConfig:    
+    target:str = class_to_str(OmegaConf)
+    clr_dim: int = 80
+    features: list[int]=None
+    
+c = MyConfig()
+c.features = [1,2,3]
+
+OmegaConf.structured(c)
+
+
{'target': 'omegaconf.omegaconf.OmegaConf', 'clr_dim': 80, 'features': [1, 2, 3]}
+
+
+
+
+
+

Object config load

+

Mostly taken from: https://github.com/Stability-AI/stablediffusion

+
+

source

+
+

get_obj_from_str

+
+
 get_obj_from_str (string, reload=False)
+
+
+

source

+
+
+

instantiate_from_config

+
+
 instantiate_from_config (config)
+
+
+

source

+
+
+

load_model_from_config

+
+
 load_model_from_config (config, ckpt, device)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/dataset/cached_qc_dataset.html b/dataset/cached_qc_dataset.html new file mode 100644 index 0000000..22c82af --- /dev/null +++ b/dataset/cached_qc_dataset.html @@ -0,0 +1,753 @@ + + + + + + + + + +genQC - Cached quantum circuit dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Cached quantum circuit dataset

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

Quantum circuit dataset that caches the y prompts using the CLIP encoder. This speeds up training significantly!

+
+

source

+
+

Cached_OpenClip_Dataset

+
+
 Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),
+                          **parameters)
+
+

Adds .caching to the Quantum circuit dataset class.

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/dataset/config_dataset.html b/dataset/config_dataset.html new file mode 100644 index 0000000..d53cf76 --- /dev/null +++ b/dataset/config_dataset.html @@ -0,0 +1,761 @@ + + + + + + + + + +genQC - Config dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config dataset

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

source

+
+

Config_Dataset_config

+
+
 Config_Dataset_config (store_dict:dict)
+
+

Config dataclass used for storage.

+
+

source

+
+
+

Config_Dataset

+
+
 Config_Dataset (device:torch.device=device(type='cpu'), **parameters)
+
+

Base class for datasets, manages loading and saving.

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/dataset/dataset_helper.html b/dataset/dataset_helper.html new file mode 100644 index 0000000..fb5f5d3 --- /dev/null +++ b/dataset/dataset_helper.html @@ -0,0 +1,869 @@ + + + + + + + + + +genQC - Dataset helper functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Dataset helper functions

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

Some comonly used functions for datasets.

+
+

Checking

+
+

source

+
+

check_duplicate_in_dataset

+
+
 check_duplicate_in_dataset (x, dataset)
+
+

Check if ‘x’ is in ‘dataset’

+
+

source

+
+
+

check_duplicates_in_dataset

+
+
 check_duplicates_in_dataset (xs, dataset, return_ind=False, invert=False)
+
+

Checks if xs is are dataset. Boolean invert changes if we count duplicates (False) or ones that are not in dataset (True). Uses torch.vmap which copies dataset for every element in xs.

+

Check if this works:

+
+
xs = torch.tensor(
+    [[0.7, 1, 0.5], 
+     [0.3, 1, 0.5],
+     [  0, 1, 0.5]])
+
+d = torch.tensor([
+    [0.11, 1, 0.5],
+    [0.70, 1, 0.5],      #here a dup
+    [0.71, 1, 0.5],
+    [0.3 , 1, 0.5]])
+
+check_duplicates_in_dataset(xs, d, return_ind=True)
+
+
(2, tensor([0, 1]))
+
+
+
+
+
+

Manipulating

+
+

source

+
+

shuffle_tensor_dataset

+
+
 shuffle_tensor_dataset (x, y=None, *z)
+
+

Assumes numpy or tensor objects with same length.

+
+

source

+
+
+

get_unique_elements_indices

+
+
 get_unique_elements_indices (tensor)
+
+

Returns indices of unique_elements in tensor.

+
+

source

+
+
+

uniquify_tensor_dataset

+
+
 uniquify_tensor_dataset (x, y=None, *z)
+
+

x has to be tensor, assumes numpy or tensor obj for y and z

+
+

source

+
+
+

balance_tensor_dataset

+
+
 balance_tensor_dataset (x, y, *z, samples:int=None,
+                         make_unique:bool=True, y_uniques=None,
+                         shuffle_lables:bool=True, add_balance_fn:<built-
+                         infunctioncallable>=None)
+
+

Assumes x is tensor and y is tensor or numpy.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/dataset/mixed_cached_qc_dataset.html b/dataset/mixed_cached_qc_dataset.html new file mode 100644 index 0000000..78e85d5 --- /dev/null +++ b/dataset/mixed_cached_qc_dataset.html @@ -0,0 +1,769 @@ + + + + + + + + + +genQC - Mixed cached dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Mixed cached dataset

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

Dataset that combines and handles multiple cached datasets, e.g. for multiple qubits. Here we also handle paddings.

+
+

source

+
+

Mixed_Cached_OpenClip_Dataset_config

+
+
 Mixed_Cached_OpenClip_Dataset_config (store_dict:dict, optimized:bool,
+                                       dataset_to_gpu:bool,
+                                       random_samples:int,
+                                       num_of_qubits:int, min_gates:int,
+                                       max_gates:int, gate_pool:list[str],
+                                       pad_constant:int, collate_fn:str,
+                                       bucket_batch_size:int,
+                                       num_down_scales:int)
+
+
+

source

+
+
+

Mixed_Cached_OpenClip_Dataset

+
+
 Mixed_Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),
+                                **parameters)
+
+

Dataset that uses multiple cached dataset and combines them with padding, either i) Bucket or ii) Max. Also provides a corresponding collate_fn for training.

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/dataset/qc_dataset.html b/dataset/qc_dataset.html new file mode 100644 index 0000000..3e6b76c --- /dev/null +++ b/dataset/qc_dataset.html @@ -0,0 +1,815 @@ + + + + + + + + + +genQC - Quantum circuit dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit dataset

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

Dataset for quantum circuits.

+
+

source

+
+

Qc_Config_Dataset_config

+
+
 Qc_Config_Dataset_config (store_dict:dict, optimized:bool,
+                           dataset_to_gpu:bool, random_samples:int,
+                           num_of_qubits:int, min_gates:int,
+                           max_gates:int, gate_pool:list[str])
+
+
+

source

+
+
+

Qc_Config_Dataset

+
+
 Qc_Config_Dataset (device:torch.device=device(type='cpu'), **parameters)
+
+

Dataset for quantum circuits, access gate_pool directly and all other paras with .params_config

+
+
init = {k:None for k in Qc_Config_Dataset.req_params}
+init["gate_pool"]  = ["qiskit.circuit.library.standard_gates.h.HGate",
+                      "qiskit.circuit.library.standard_gates.x.CXGate"]
+init["store_dict"] = {"x":"tensor", "y":"tensor_list"}
+
+a = Qc_Config_Dataset(**init)
+a.get_config()
+
+
{'target': '__main__.Qc_Config_Dataset',
+ 'device': 'cpu',
+ 'comment': '',
+ 'save_path': None,
+ 'save_datetime': '12/06/2023 19:06:49',
+ 'params': Qc_Config_Dataset_config(store_dict={'x': 'tensor', 'y': 'tensor_list'}, optimized=None, dataset_to_gpu=None, random_samples=None, num_of_qubits=None, min_gates=None, max_gates=None, gate_pool=['qiskit.circuit.library.standard_gates.h.HGate', 'qiskit.circuit.library.standard_gates.x.CXGate'])}
+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/examples/0_hello_circuit_files/figure-html/cell-17-output-1.png b/examples/0_hello_circuit_files/figure-html/cell-17-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5461e5e8c3a34927a04a435bf9b62a7828214771 GIT binary patch literal 66973 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 UUzvu$rZft@dxqLoTDH;u1{dq8(*OVf literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-13-output-2.png b/examples/1_editing_and_masking_files/figure-html/cell-13-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..09fc4f6678daec99f4dfedf0feb14c372dbc1ece GIT binary patch literal 18208 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 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-14-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..37a494ed5427b226b823cd0a369532b070071baa GIT binary patch literal 51949 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 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-16-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f248ac4e28c285d808d4adecf0dd0fa27766852 GIT binary patch literal 8552 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 Jixe#${~xKo!_WW# literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-22-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f248ac4e28c285d808d4adecf0dd0fa27766852 GIT binary patch literal 8552 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 Jixe#${~xKo!_WW# literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png b/examples/1_editing_and_masking_files/figure-html/cell-23-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..78233b964d72a0949339d6f751726938232b18d9 GIT binary patch literal 14330 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 literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png b/examples/1_editing_and_masking_files/figure-html/cell-24-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4740cc4161f4d95bfdb9e12a749a08e10cfc2f GIT binary patch literal 17158 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 UUzvu$rZft@dxqLoTDH;u1{dq8(*OVf literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-12-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-12-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc8518805869bd941c917cd54fe4b3e1956b818 GIT binary patch literal 32006 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%0DB&VxJV7TJkV(A7X{Ga)Fw!_3Lw=RadECADR{ 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 rp&ISseRy8T*+qda0qo6vl5^%dy)pmvrr*a@@ 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 ^E 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd4df905b3938aaac02c89fb8dc122d5eae91eb GIT binary patch literal 29786 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..29235e1fc3767ee40b6aa74a4ab4476bbe0546e9 GIT binary patch literal 19525 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cd95793c4cad92942dbc33544270b98db825dc5f GIT binary patch literal 29215 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

$x9aF+aanjGW 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 XwhNNX%Cf#urUa8$xm9rEQNaHK1@MA* literal 0 HcmV?d00001 diff --git a/examples/3_dataset_and_fineTune_files/figure-html/cell-19-output-1.png b/examples/3_dataset_and_fineTune_files/figure-html/cell-19-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..dabc5d12c3dbe9ee2e76616e3e5b04a45d91cce5 GIT binary patch literal 19301 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 NcTDkU%HgwD{tv*eo{<0m literal 0 HcmV?d00001 diff --git a/examples/3_dataset_and_fineTune_files/figure-html/cell-22-output-52.png b/examples/3_dataset_and_fineTune_files/figure-html/cell-22-output-52.png new file mode 100644 index 0000000000000000000000000000000000000000..551a6d837595f03d33b821b8746afaa512ec084d GIT binary patch literal 82937 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≦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 + + + + + + + + +genQC - SRV demo-dataset and fine-tune + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

SRV demo-dataset and fine-tune

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

In this notebook we create a (demo) 9-qubit dataset and fine-tune the model with it. Note, we use direct fine-tuning similar as you would train the model from scratch (with a higher learn-rate and larger dataset).

+
+
from genQC.imports import *
+
+import genQC.util as util
+import genQC.platform.qcircuit_dataset_construction as data_const
+import genQC.inference.infer_srv as infer_srv
+import genQC.dataset.dataset_helper as dahe
+
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from genQC.dataset.qc_dataset import Qc_Config_Dataset
+from genQC.dataset.mixed_cached_qc_dataset import Mixed_Cached_OpenClip_Dataset
+
+
+
device = util.infer_torch_device()  # use cuda if we can, cpu is much slower
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+

Setup and load

+
+
def get_preTrained_pipeline():
+    model_path = "../../saves/qc_unet_config_SRV_3to8_qubit/"
+    pipeline   = DiffusionPipeline.from_config_file(model_path, device)  
+    return pipeline
+
+

Load the pre-trained model. Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline = get_preTrained_pipeline()
+
+pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(20) 
+
+print("Trained with gates:", pipeline.gate_pool)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+Trained with gates: [<class 'qiskit.circuit.library.standard_gates.h.HGate'>, <class 'qiskit.circuit.library.standard_gates.x.CXGate'>]
+
+
+
+
+

Generate 9 qubit circuits without fine-tune

+

Generate circuits as explained in the 0_hello_circuit [doc] [notebook] example.

+
+
srv           = [2, 2, 2, 1, 1, 1, 1, 1, 2]  # set your target SRV
+num_of_qubits = len(srv)          
+assert num_of_qubits == 9
+
+prompt = f"Generate SRV: {srv}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 2, 2, 1, 1, 1, 1, 1, 2]'
+
+
+
+
g         = 7.5     # guidance scale
+max_gates = 16      # how many time steps the tensor encoding has
+samples   = 64      # how many circuits to generate
+
+out_tensor                   = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False) 
+qc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)  # may take a moment, has to compute partial traces over (2^9)x(2^9) density matrices
+print(f"Not valid error circuits: {error_cnt} out of {samples}")
+
+ +
+
+
[INFO]: (generate_srv_tensors) Generated 64 tensors
+Not valid error circuits: 1 out of 64
+
+
+
+
acc = infer_srv.get_srv_accuracy(srv_list, srv)
+print(f"Accuracy on requested {len(srv)} qubit SRV={srv}, with a model trained on 3 to 8 qubits circuits: {acc:.2f}")
+
+
Accuracy on requested 9 qubit SRV=[2, 2, 2, 1, 1, 1, 1, 1, 2], with a model trained on 3 to 8 qubits circuits: 0.02
+
+
+
+
+

Fine-tune dataset

+

Let’s create a 9 qubit fine-tune training dataset.

+
+

Sampling random circuits

+

We sample random 9 qubit circuits on which we fine-tune on. Note, there is no balancing over what SRVs are created! The initial model was only trained on 3 to 8 qubit circuits.

+
+
# settings for random circuit sampling
+random_samples = int(512)                 # how many rnd qcs we sample, here small number to speed up example
+num_of_qubits  = 9
+min_gates      = 2
+max_gates      = 20
+gate_pool      = pipeline.gate_pool  
+optimized      = True                     # if qiskit optimizer is used
+
+x, y = data_const.gen_qc_dataset(samples=random_samples, num_of_qubits=num_of_qubits, min_gates=min_gates, max_gates=max_gates, 
+                                gate_pool=gate_pool, optimized=optimized, silent=False)
+
+ +
+
+
Generated unique circuits: 511
+
+
+
+
y[0]
+
+
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=torch.int32)
+
+
+
+
y = np.array([f"Generate SRV: {srv.numpy()}" for srv in y]) # convert SRV to the trained prompt
+y[0]
+
+
'Generate SRV: [1 1 1 1 1 1 1 1 1]'
+
+
+

We get tokenized circuits with SRV:

+
+
print(f"Example circuit with prompt: \n{y[-1]} \n{x[-1]}")
+
+
Example circuit with prompt: 
+Generate SRV: [1 1 1 1 2 1 2 1 1] 
+tensor([[ 2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [-2,  0,  0,  0,  0,  0,  0,  0,  0, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0, -2,  1,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0,  0,  2,  1,  2, -2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  1,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0, -2,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0,  0, -2,  0, -2,  0,  0, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0]], dtype=torch.int32)
+
+
+
+
+

Create a basic dataset

+

Direct fine-tuning is the same as you would train a new model from scratch. First, we create a Qc_Config_Dataset object that handles our dataset.

+
+
# meta-data of dataset
+paras = {}
+paras["store_dict"]     = {'x':'tensor', 'y':'numpy'}   #what is in the datset, with type
+paras["optimized"]      = optimized    
+paras["dataset_to_gpu"] = True if device=="cuda" else False
+paras["random_samples"] = random_samples
+paras["num_of_qubits"]  = num_of_qubits
+paras["min_gates"]      = min_gates
+paras["max_gates"]      = max_gates
+paras["gate_pool"]      = [dahe.class_to_str(gate) for gate in gate_pool]
+
+

Make sure our dataset has no duplicates and shuffle it:

+
+
x, y = dahe.uniquify_tensor_dataset(x, y)
+assert x.shape[0] == x.unique(dim=0).shape[0]    # check if no duplicates
+
+x, y = dahe.shuffle_tensor_dataset(x, y)
+
+

Now create the Qc_Config_Dataset object:

+
+
qc_Config_Dataset = Qc_Config_Dataset(store_device=device, **paras)
+qc_Config_Dataset.x = x
+qc_Config_Dataset.y = y
+qc_Config_Dataset.dataset_to_gpu = True if device.type=="cuda" else False 
+qc_Config_Dataset.plot_example()
+
+
Label: ``Generate SRV: [1 1 1 1 1 1 1 1 1]``    SRV is: [1, 1, 1, 1, 1, 1, 1, 1, 1]
+
+
+

+
+
+
+
# qc_Config_Dataset.plot_distribution() #print the SRV distribution percentages
+
+

If you want to save the dataset to disk, you could use:

+
config_path = "YOUR_CONFIG_FILE"  
+save_path   = "YOUR_SAVE_PATH"    
+qc_Config_Dataset.save_dataset(config_path, save_path)
+

where config_path file-path to the meta-data file, e.g. "../../configs/dataset/qc_9bit_fine_tune.yaml

+

and save_path file-path prefix where the raw dataset files are stored, e.g. "../../datasets/q-circuits/qc_9bit_fine_tune".

+

A saved dataset can be loaded with:

+
qc_Config_Dataset = Qc_Config_Dataset.from_config_file(config_path, device=device) 
+
+
+

Create a cached (mixed) dataset

+

To speed up training we can cache the CLIP embeddings of the y dataset labels before we start fitting. We provide the Cached_OpenClip_Dataset object for this. Here we use a further extension, the Mixed_Cached_OpenClip_Dataset. It has advanced methods to handle padding and combining different task (e.g. compile and SRV) or different number of qubit datasets together (as explained in the appendix of the paper). We use it here to automatically cut and pad our 9 qubit circuits to the longest circuit within one batch.

+

See if the pipeline has already a padding token specified, else define one.

+
+
try:    pad_constant = pipeline.params_config("")["add_config"]["dataset"]["params"]["pad_constant"]  #can NOT be 0 (empty token)! and not any other gate!
+except: pad_constant = len(qc_Config_Dataset.gate_pool)+1
+    
+print(f"{pad_constant=}")
+
+
pad_constant=3
+
+
+
+
dataset_list = [qc_Config_Dataset]                  # what datasets to combine
+
+parameters   = asdict(qc_Config_Dataset.params_config)
+parameters["num_down_scales"] = 3                   # defined by the down-scale layers of the UNet
+
+mixed_dataset = Mixed_Cached_OpenClip_Dataset.from_datasets(dataset_list,                 
+                 balance_maxes=[1e8],          # what the maximum prompt (y) balance limit is, can be used to balance SRVs for different qubit numbers                                      
+                 pad_constant=pad_constant,
+                 device=device, 
+                 bucket_batch_size=-1,       # if we use bucket padding
+                 max_samples=[1e8],            # if we want to limit the sizes of the dataset_list 
+                 **parameters)
+
+ +
+
+
 - dataset size after balancing 511
+
+
+

Let’s see what we are training on:

+
+
fig, axs = plt.subplots(1, 2, figsize=(12, 3.6), squeeze=False, constrained_layout=True)  
+plt.sca(axs[0, 0])
+plt.xlabel(r"$s$")
+plt.title("Dist of space")
+min_q, max_q = min(d.num_of_qubits for d in dataset_list), max(d.num_of_qubits for d in dataset_list)
+data = mixed_dataset.z[:, 0].cpu() 
+plt.hist(data, bins=np.arange(min_q, max_q+2) - 0.5, rwidth=0.9)
+
+plt.sca(axs[0, 1])
+plt.xlabel(r"$t$")
+plt.title("Dist of time")
+min_g, max_g = min(d.min_gates for d in dataset_list), max(d.max_gates for d in dataset_list)
+data = mixed_dataset.z[:, 1].cpu()
+plt.hist(data, bins=np.arange(min_g, max_g+2) - 0.5, rwidth=0.9)
+
+plt.show()
+
+

+
+
+

Finally, we can create the dataloader used by the DiffusionPipeline.fit() funtion. This also caches all our prompts.

+
+
tuned_pipeline = get_preTrained_pipeline()  # load a fresh pre-trained model we want to train
+
+dataloaders = mixed_dataset.get_dataloaders(batch_size=16, text_encoder=tuned_pipeline.text_encoder.to(device), y_on_cpu=False)  # you can set y_on_cpu=True if you run out of device mem
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+[INFO]: Not balancing dataset!  balance_max=None
+[INFO]: Generate cache: converting tensors to str and tokenize
+ - to str list
+ - tokenize_and_push_to_device
+ - generate_cache
+[INFO]: caching trying to allocate memory (148, 77, 512) on cuda approx. 0.023 GB
+[INFO]: Generated cache
+
+
+ +
+
+
+
+
+

Fine-tune

+

We have the dataloader object created and can start fine-tuning. Note, we just use all the diffusion scheduler parameters from the pre-trained config we loaded.

+
+
tuned_pipeline.add_config["dataset"] = mixed_dataset.get_config()   # add meta-data of dataset to save it with pipeline
+tuned_pipeline.compile(torch.optim.Adam, nn.MSELoss)
+
+
+
epochs = 25      # how many epochs we train on our 9bit dataset
+lr     = 5e-5    # learn rate
+
+sched = functools.partial(torch.optim.lr_scheduler.OneCycleLR, max_lr=lr, total_steps=epochs*len(dataloaders.train))
+tuned_pipeline.fit(epochs, dataloaders, lr=lr, lr_sched=sched)
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+

+
+
+

If you want you can save the tuned pipeline with:

+
store_dir = f"../../saves/fine_tuned_on_9bits/"
+
+tuned_pipeline.store_pipeline(config_path=store_dir, save_path=store_dir)
+

and load it again with the usual:

+
tuned_pipeline = DiffusionPipeline.from_config_file(model_path, device)  
+
+
+

Generate 9 qubit circuits fine-tuned

+

Test again to create a 9 qubit SRV as we did at the start but with the tuned model:

+
+
prompt
+
+
'Generate SRV: [2, 2, 2, 1, 1, 1, 1, 1, 2]'
+
+
+
+
g         = 7.5     # guidance scale
+max_gates = 16      # how many time steps the tensor encoding has
+samples   = 64      # how many circuits to generate
+
+tuned_pipeline.guidance_sample_mode = "rescaled"
+tuned_pipeline.scheduler.set_timesteps(20) 
+
+out_tensor                   = infer_srv.generate_srv_tensors(tuned_pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False) 
+qc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, tuned_pipeline.gate_pool) # may take a moment, has to compute partial traces over (2^9)x(2^9) density matrices
+print(f"Not valid error circuits: {error_cnt} out of {samples}")
+
+ +
+
+
[INFO]: (generate_srv_tensors) Generated 64 tensors
+Not valid error circuits: 1 out of 64
+
+
+
+
tuned_acc = infer_srv.get_srv_accuracy(srv_list, srv)
+print(f"Accuracy on requested {len(srv)} qubit SRV={srv}, with a model trained on 3 to 8 qubits qcs: {acc:.2f} and with fine-tuning on 9 qubit qcs: {tuned_acc:.2f}")
+
+
Accuracy on requested 9 qubit SRV=[2, 2, 2, 1, 1, 1, 1, 1, 2], with a model trained on 3 to 8 qubits qcs: 0.02 and with fine-tuning on 9 qubit qcs: 0.05
+
+
+

Note, we didn’t fine-tune on a balanced dataset with all possible 9 qubit SRVs, just some random circuits (most, ~50%, of them will be the SRV with all 1s). So we don’t expect a huge boost in accuracy.

+ + +
+ + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/examples/editing_and_masking.html b/examples/editing_and_masking.html new file mode 100644 index 0000000..0b33920 --- /dev/null +++ b/examples/editing_and_masking.html @@ -0,0 +1,1079 @@ + + + + + + + + + +genQC - Editing and masking of circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Editing and masking of circuits

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

In this notebook we show editing and masking of circuits.

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from genQC.inference.infer_srv import convert_tensors_to_srvs, schmidt_rank_vector
+import genQC.platform.qcircuit_dataset_construction as data_const
+import genQC.util as util
+from qiskit.quantum_info import DensityMatrix
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(40) 
+g = 7.5
+
+
+
+

1. Editing

+

Sample a random circuit with desired parameters as the circuit we want to edit:

+
+
srv_init       = [1, 1, 1, 2, 2]   # psi_0 state
+desired_length = 5                 # 5 gates initially placed
+
+
+
init_qc = data_const.get_specific_rnd_srv_circuit(srv_init, desired_length, pipeline.gate_pool)
+print("SRV is", schmidt_rank_vector(DensityMatrix(init_qc)))
+init_qc.draw("mpl", style="clifford")
+
+
SRV is [1, 1, 1, 2, 2]
+
+
+

+
+
+

The editing taks is analogous to image editing, we do img2img with conditioning and copy non-edit areas at every time step. Also called latent_filling.

+
+
def create_edited_circuits(pipeline, samples, qc, prompt, new_length, num_of_qubits, system_size, t_start_index):
+    #-------------------------------------------
+    # set mask - appending mask!
+    old_length = len(qc.data)
+
+    qubit_mask = torch.ones((system_size, new_length), device=device)
+    qubit_mask[:, :old_length] = 0
+    
+    #-------------------------------------------
+    # prepare and encode
+ 
+    gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)
+   
+    emb_org_image = data_const.encode_circuit(qc, system_size, gate_classes, new_length).unsqueeze(0).to(device)
+    emb_org_image = pipeline.model.embedd_clrs(emb_org_image)
+
+    emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))
+    
+    #-------------------------------------------
+    # prep condition
+    
+    c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))
+    c = c.repeat(samples, *[1]*(c.dim()-1))
+
+    #-------------------------------------------
+    # latent fill
+    out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)
+    out_tensor = pipeline.model.invert_clr(out_tensor)
+    out_tensor = out_tensor[:, :num_of_qubits]
+    out_tensor = torch.unique(out_tensor, dim=0) # we only are interested in unique circuits
+   
+    qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)
+
+    return qc_list, srv_list
+
+
+
samples    = 16   # how many circuits we sample
+new_length = 16   # how many gates the model can place 
+
+srv_target    = [2, 2, 2, 2, 2]  # desired target SRV
+
+num_of_qubits = len(srv_target)
+t_start_index = t_start_index = int(0.05 * pipeline.scheduler.timesteps.shape[0])  # time step index at which we start denoising
+
+prompt = f"Generate SRV: {srv_target}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 2, 2, 2, 2]'
+
+
+
+
# returns only distinct circuits
+edited_qc, srv_list = create_edited_circuits(pipeline, samples, init_qc, prompt, new_length, num_of_qubits, num_of_qubits, t_start_index)
+
+ +
+
+

Pick only correct ones:

+
+
correct_edited_qc = []
+for qc,srv in zip(edited_qc, srv_list):
+    if srv==srv_target: correct_edited_qc.append(qc)
+print(f"We found {len(correct_edited_qc)} correct distinct solutions.")
+
+
We found 12 correct distinct solutions.
+
+
+

Compare: initial circuit

+
+
init_qc.draw("mpl")
+
+

+
+
+

v.s. edited:

+
+
print("SRV is", schmidt_rank_vector(DensityMatrix(correct_edited_qc[0])))
+correct_edited_qc[0].draw("mpl", plot_barriers=False)
+
+
SRV is [2, 2, 2, 2, 2]
+
+
+

+
+
+
+
fig, axs = plt.subplots(2,4, figsize=(18,5), constrained_layout=True)
+for qc,ax in zip(correct_edited_qc, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax)
+plt.show()
+
+

+
+
+
+
+

2. Masking

+

First we set a desired mask, i.e. a specific layout of a quantum processor.

+
+
max_gates     = 16
+num_of_qubits = 5
+
+d = 3
+#------
+def con_set(q1, q2, x, d): 
+    qubit_mask[q1, x:x+d] = 1
+    qubit_mask[q2, x:x+d] = 1
+    return x+d
+
+#------
+x = 0
+
+qubit_mask = torch.zeros((num_of_qubits, max_gates), device=device) # mask: ones are getting filled, zeros are fixed !
+x = con_set(0, 1, x, d)
+x = con_set(1, 2, x, d)
+x = con_set(1, 3, x, d)
+x = con_set(3, 4, x, d)
+
+
+
def plot_mask():
+    fig = plt.figure(figsize=(3.7,2), constrained_layout=True)
+    plt.imshow(qubit_mask.cpu(), cmap="Greens")
+    plt.xticks(range(0, qubit_mask.shape[1], 2),fontsize=9)
+    plt.yticks(range(num_of_qubits), fontsize=9)
+    plt.xlabel("Gate sequence / time", fontsize=12)
+    plt.ylabel("Qubits", fontsize=12)
+    plt.show()
+plot_mask()
+
+

+
+
+
+
def get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask):
+    org_image = torch.zeros((1, system_size, max_gates), device=device, dtype=torch.int32) 
+    
+    padd_tok = len(pipeline.gate_pool) + 1
+    padd_pos = (torch.ceil(torch.tensor(target_num_gates) / 4) * 4).to(torch.int32)
+    org_image[:,                :, padd_pos:] = padd_tok
+    org_image[:, target_num_bits:,          ] = padd_tok
+
+    emb_org_image  = pipeline.model.embedd_clrs(org_image)
+    emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))
+    
+    return emb_org_images
+
+
+
def generate_pattern_SRV(pipeline, prompt, samples, system_size, num_of_qubits, max_gates, qubit_mask, t_start_index=0, target_num_gates=None, target_num_bits=None): 
+
+    if not exists(target_num_gates):
+        target_num_gates = max_gates
+
+    if not exists(target_num_bits):
+        target_num_bits = num_of_qubits
+    
+    emb_org_images = get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask)
+
+    #----------------
+    # prep condition
+
+    c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))
+    c = c.repeat(samples, *[1]*(c.dim()-1))
+
+    #----------------
+    # latent fill
+    
+    out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)
+    out_tensor = pipeline.model.invert_clr(out_tensor)
+    out_tensor = out_tensor[:, :num_of_qubits]
+    out_tensor = torch.unique(out_tensor, dim=0)
+     
+    qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)
+
+    return qc_list, srv_list
+
+

Now generate circuits corresponding to the mask.

+
+
samples    = 512              # how many circuits we sample
+srv_target = [2, 1, 2, 2, 2]  # desired target SRV
+
+assert len(srv_target)==qubit_mask.shape[0]
+
+prompt = f"Generate SRV: {srv_target}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 1, 2, 2, 2]'
+
+
+
+
qc_list, srv_list = generate_pattern_SRV(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, qubit_mask, t_start_index=1)
+
+ +
+
+

Pick only correct ones:

+
+
correct_qc = []
+for qc,srv in zip(qc_list, srv_list):
+    if srv==srv_target: correct_qc.append(qc)
+print(f"We found {len(correct_qc)} correct distinct solutions.")
+
+
We found 9 correct distinct solutions.
+
+
+

Let’s plot them. Mask:

+
+
plot_mask()
+
+

+
+
+

v.s. solution:

+
+
print("SRV is", schmidt_rank_vector(DensityMatrix(correct_qc[0])))
+correct_qc[0].draw("mpl", plot_barriers=False)
+
+
SRV is [2, 1, 2, 2, 2]
+
+
+

+
+
+
+
fig, axs = plt.subplots(1, min(len(correct_qc), 4), figsize=(18,5), constrained_layout=True)
+for qc,ax in zip(correct_qc, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax)
+plt.show()
+
+

+
+
+ + +
+ + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/examples/hello_circuit.html b/examples/hello_circuit.html new file mode 100644 index 0000000..0a302e5 --- /dev/null +++ b/examples/hello_circuit.html @@ -0,0 +1,934 @@ + + + + + + + + + +genQC - Generate a circuit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Generate a circuit

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

A minimal example to generate a circuit. We load a pre-trained (SRV, 3 to 8 qubit) model and condition on a given Schmidt-Rank-Vector (SRV).

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+import genQC.inference.infer_srv as infer_srv
+import genQC.util as util
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+
device
+
+
device(type='cuda')
+
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Check on what gates the model was trained

+
+
pipeline.gate_pool
+
+
[qiskit.circuit.library.standard_gates.h.HGate,
+ qiskit.circuit.library.standard_gates.x.CXGate]
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(20)
+
+
+
+

Inference / sampling

+

Set our desired condition SRV

+
+
srv           = [2, 1, 2, 1, 2]  # set your target SRV; can be 3 to 8 qubit
+num_of_qubits = len(srv)          
+
+prompt = f"Generate SRV: {srv}"  # model was trained with this phrase
+prompt
+
+
'Generate SRV: [2, 1, 2, 1, 2]'
+
+
+

Define sample parameters

+
+
g         = 7.5     # guidance scale
+max_gates = 16      # how many time steps the tensor encoding has
+samples   = 64      # how many circuits to generate
+
+

Sample tokenized circuits

+
+
out_tensor = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False)
+
+ +
+
+
[INFO]: (generate_srv_tensors) Generated 64 tensors
+
+
+

Check how many distinct tensors we got:

+
+
out_tensor.unique(dim=0).shape[0]
+
+
64
+
+
+

Let’s look what is generated. Note, 3 is the padding token (or empty action).

+
+
out_tensor[:2]
+
+
tensor([[[ 0,  2,  0,  2,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 2, -2,  1, -2, -2,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [-2,  0,  0,  0,  2,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3]],
+
+        [[ 0,  0,  0,  2,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 1, -2,  1, -2,  1,  0, -2,  0,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  2,  0,  0,  0,  1,  2,  1,  3,  3,  3,  3,  3,  3,  3,  3]]])
+
+
+
+
+

Convert to qiskit circuit

+

To get a qiskit circuit we need to do:

+
    +
  • apply cosine similarity to go from embeddings to token matrices (the function infer_srv.generate_srv_tensors did this already)
  • +
  • parse token matrix to qiskit and filter out error circuits
  • +
  • calculate SRV and plot circuits
  • +
+
+
qc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)
+
+

Generated error circuits (token matrices that don’t correspond to circuits):

+
+
error_cnt
+
+
0
+
+
+

What SRVs did we get:

+
+
srv_list[:4]
+
+
[[2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2]]
+
+
+

That is an accuracy of:

+
+
sum(srv==x for x in srv_list)/len(srv_list)
+
+
0.921875
+
+
+

Finally plot some of the circuits:

+
+
fig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)
+for qc,is_svr,ax in zip(qc_list, srv_list, axs.flatten()): 
+    qc.draw("mpl", plot_barriers=False, ax=ax, style = "clifford")
+    ax.set_title(f"{'Correct' if is_svr==srv else 'NOT correct'}, is SRV = {is_svr}")
+plt.show()
+
+

+
+
+ + +
+ + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/examples/unitary_compilation.html b/examples/unitary_compilation.html new file mode 100644 index 0000000..97d67f8 --- /dev/null +++ b/examples/unitary_compilation.html @@ -0,0 +1,1008 @@ + + + + + + + + + +genQC - Compile unitaries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Compile unitaries

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

In this notebook we want use the unitary compilation model.

+
+
from genQC.imports import *
+from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from qiskit import QuantumCircuit
+from genQC.inference.infer_compilation import generate_comp_tensors, get_gate_and_U_acc
+from genQC.printing import display_colums
+import genQC.platform.qcircuit_dataset_construction as data_const
+import qiskit.quantum_info as qi
+import genQC.util as util
+import ast
+
+
+
device = util.infer_torch_device()  # use cuda if we can
+util.MemoryCleaner.purge_mem()      # clean existing memory alloc
+
+
[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
+
+
+
+
def str_cond_to_gate_indices(y):   # helper function, used to check if only allowed gates were used by the model!
+    assert y[:15] == "Compile using: "
+    c            = ast.literal_eval(y[15:]) 
+    gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)
+    gate_clrs    = [0] + [gate_classes[ic] for ic in c]  # 0 is empty, always allowed!
+    return gate_clrs
+
+
+

Setup and load

+

Load the pre-trained model

+
+
model_path = "../../saves/qc_unet_config_Compilation_3_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, device)
+
+
[INFO]: `genQC.models.unet_qc.QC_Compilation_UNet` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+

Set 20 sample steps and use rescaled guidance-formula.

+
+
pipeline.guidance_sample_mode = "rescaled"
+pipeline.scheduler.set_timesteps(20) 
+g = 7.5
+
+

The model was trained with a gate pool of:

+
+
pipeline.gate_pool
+
+
[qiskit.circuit.library.standard_gates.h.HGate,
+ qiskit.circuit.library.standard_gates.x.CXGate,
+ qiskit.circuit.library.standard_gates.z.ZGate,
+ qiskit.circuit.library.standard_gates.x.XGate,
+ qiskit.circuit.library.standard_gates.x.CCXGate,
+ qiskit.circuit.library.standard_gates.swap.SwapGate]
+
+
+
+
+

Compile a unitary

+

Compile a given unitary \(U\). Note, there has to be a solution with the pipeline.gate_pool in order to find the exact solution.

+
+
def compile_and_plot(U, prompt):
+    U_r, U_i = torch.Tensor(np.real(U)), torch.Tensor(np.imag(U))
+    U_tensor = torch.stack([U_r, U_i], dim=0)
+    
+    out_tensor                           = generate_comp_tensors(pipeline, prompt, U_tensor, samples, num_of_qubits, num_of_qubits, max_gates, g, unique=True)
+    _, _, _, _, _, comb_corr_qc, _, _, _ = get_gate_and_U_acc(out_tensor, str_cond_to_gate_indices(prompt), U_tensor, pipeline.gate_pool, num_of_qubits, max_gates)
+    comb_corr_qc                         = sorted(comb_corr_qc, key=lambda x: len(x.data)) #sort to get the shortest solutions
+
+    fig, axs = plt.subplots(1,4, figsize=(18,5), constrained_layout=True)
+    axs[0].set_title(f"{prompt}")
+    for qc,ax in zip(comb_corr_qc, axs.flatten()): 
+        qc.draw("mpl", plot_barriers=False, ax=ax)
+    plt.show()
+
+
+
samples       = 512
+num_of_qubits = 3
+max_gates     = 12
+
+
+
prompt = "Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']" # model was trained with phrases like this, allow full gate set
+prompt
+
+
"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']"
+
+
+
+

Exercise 1

+

Inspired from (quantumcomputing.stackexchange.com/questions/13821/generate-a-3-qubit-swap-unitary-in-terms-of-elementary-gates/13826). Note, this unitary WAS in the training set.

+
+
U = np.matrix([[1,0,0,0,0,0,0,0],
+               [0,1,0,0,0,0,0,0],
+               [0,0,1,0,0,0,0,0],
+               [0,0,0,0,1,0,0,0],
+               [0,0,0,1,0,0,0,0],
+               [0,0,0,0,0,1,0,0],
+               [0,0,0,0,0,0,1,0],
+               [0,0,0,0,0,0,0,1]], dtype=np.complex128) 
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+

Exercise 2

+

Inspired from (quantumcomputing.stackexchange.com/questions/12439/procedures-and-intuition-for-designing-simple-quantum-circuits/12440). Note, this unitary WAS in the training set.

+
+
U = np.matrix([[1,0,0,0,0,0,0,0],
+               [0,0,0,0,0,0,0,1],
+               [0,1,0,0,0,0,0,0],
+               [0,0,1,0,0,0,0,0],
+               [0,0,0,1,0,0,0,0],
+               [0,0,0,0,1,0,0,0],
+               [0,0,0,0,0,1,0,0],
+               [0,0,0,0,0,0,1,0]], dtype=np.complex128) 
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+

Exercise 3

+

A randomly generated unitary (from a random circuit). This unitary WAS NOT in the training set, it is new to the model!

+
+
U = np.matrix([[ 0.70710678,  0.        ,  0.        , 0.        ,  0.70710678,  0.        , 0.        ,  0.        ],
+               [ 0.        , -0.70710678,  0.        , 0.        ,  0.        , -0.70710678, 0.        ,  0.        ],
+               [-0.70710678,  0.        ,  0.        , 0.        ,  0.70710678,  0.        , 0.        ,  0.        ],
+               [ 0.        ,  0.70710678,  0.        , 0.        ,  0.        , -0.70710678, 0.        ,  0.        ],
+               [ 0.        ,  0.        ,  0.70710678, 0.        ,  0.        ,  0.        , 0.        ,  0.70710678],
+               [ 0.        ,  0.        ,  0.        , 0.70710678,  0.        ,  0.        , 0.70710678,  0.        ],
+               [ 0.        ,  0.        , -0.70710678, 0.        ,  0.        ,  0.        , 0.        ,  0.70710678],
+               [ 0.        ,  0.        ,  0.        ,-0.70710678,  0.        ,  0.        , 0.70710678,  0.        ]], dtype=np.complex128)
+
+assert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary
+
+

Plot correct (exact) compiled circuits:

+
+
compile_and_plot(U, prompt)
+
+

+
+
+
+
+
+

Transpile and discover

+

Set an initial circuit we want to transpile, optimize or use for discovering sub-arrangements:

+
+
qc = QuantumCircuit(3)
+qc.h(2)
+qc.cx(0,1)
+qc.cx(2,1)
+qc.h(1)
+qc.x(1)
+qc.h(1)
+qc.x(2)
+
+U = qi.Operator(qc).to_matrix() # the unitary of the circuit
+
+#-----------------------------------------
+
+fig = qc.draw("mpl")
+fig
+
+

+
+
+

We set different gate pool targets to see what the model gives us:

+
+
cs_1 = f"Compile using: {[x().name for x in pipeline.gate_pool]}", "all"
+
+cs_2 = "Compile using: ['h', 'cx', 'z', 'ccx']" , "no x, no swap"    
+cs_3 = "Compile using: ['h', 'cx', 'x', 'ccx']" , "no z, no swap"    
+cs_4 = "Compile using: ['h', 'x', 'ccx']"       , "no cx, no z, no swap" 
+cs_5 = "Compile using: ['h', 'z', 'x', 'ccx']"  , "no cx, no swap"  
+
+cs = [cs_1, cs_2, cs_3, cs_4, cs_5]
+cs
+
+
[("Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']", 'all'),
+ ("Compile using: ['h', 'cx', 'z', 'ccx']", 'no x, no swap'),
+ ("Compile using: ['h', 'cx', 'x', 'ccx']", 'no z, no swap'),
+ ("Compile using: ['h', 'x', 'ccx']", 'no cx, no z, no swap'),
+ ("Compile using: ['h', 'z', 'x', 'ccx']", 'no cx, no swap')]
+
+
+
+
samples       = 512
+num_of_qubits = 3
+max_gates     = 12
+
+

Compile with the different gate-sets and plot correct (exact) compiled circuits. Note, some of the circuits might look the same but the gate time-sequences are distinct. Qiskit reorders “parallel” gates to make smaller plots.

+
+
for c, note in cs: compile_and_plot(U, c)
+
+

+
+
+

+
+
+

+
+
+

+
+
+

+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c38316e --- /dev/null +++ b/index.html @@ -0,0 +1,883 @@ + + + + + + + + + + +genQC - genQC · Generative Quantum Circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

genQC · Generative Quantum Circuits

+
+ +
+
+ Generating quantum circuits with diffusion models +
+
+ + +
+ + + + +
+ + +
+ + +

+awesome generative-models diffusion-models python-3.9 +

+

Code repository for generating quantum circuits with diffusion models. [Paper] [Demo]

+

+
+

The codebase

+

All weights and functions are contained within this repo. For the CLIP model weights we use the OpenCLIP library, which will download (and cache) the CLIP model on first usage of our pipeline. In case you prefer reading a documentation rather than notebooks or code see [Documentation].

+

The repo inlcudes:

+
    +
  1. saves/ the configs and weights of the pre-trained models.
  2. +
  3. genQC/ a full release of our used diffusion pipeline.
  4. +
  5. src/examples examples how to reproduce some figures of the Paper.
  6. +
  7. src/ the source notebooks for nbdev.
  8. +
+
+
+

Examples

+
+

Minimal example

+

A minimal example to generate a 5 qubit circuit conditioned on a SRV of \([1,1,1,2,2]\). You can try it out on your own with our demo [huggingface-space], no coding required.

+
+
from genQC.pipeline.diffusion_pipeline import DiffusionPipeline
+from genQC.inference.infer_srv import generate_srv_tensors, convert_tensors_to_srvs
+
+model_path = "../saves/qc_unet_config_SRV_3to8_qubit/"
+pipeline   = DiffusionPipeline.from_config_file(model_path, "cpu")  
+pipeline.scheduler.set_timesteps(20) 
+
+out_tensor           = generate_srv_tensors(pipeline, "Generate SRV: [1,1,1,2,2]", samples=1, system_size=5, num_of_qubits=5, max_gates=16, g=7.5) 
+qc_list, _, svr_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)
+
+
[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cpu.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cpu.
+[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.
+
+
+
+
print(f"is SRV {svr_list[0]}")
+qc_list[0].draw("mpl", style="clifford")
+
+
is SRV [1, 1, 1, 2, 2]
+
+
+

+
+
+
+
+

Included examples

+

Example notebooks are provided in the directory src/examples/.

+
    +
  • 0_hello_circuit [doc] [notebook]: How to sample a circuit (conditioned on a SRV)
  • +
  • 1_editing_and_masking [doc] [notebook]: Presents editing and masking of circuits
  • +
  • 2_unitary_compilation [doc] [notebook]: Compile unitaries and transpile circuits
  • +
  • 3_dataset_and_fineTune [doc] [notebook]: How to create a dataset and fine-tune a pre-trained model
  • +
+
+
+
+

Installation

+

The installation of genQC is done via pip within a few minutes, depending on your downloading speed.

+
+

1. Clone the repository

+
git clone https://github.com/FlorianFuerrutter/genQC.git
+cd genQC
+
+
+

2. Install genQC

+

This library is build using jupyter notebooks and nbdev. To install the library use in the clone directory:

+
pip install -e .
+

Note, this will install missing requirements automatically. You may want to install some of them manually beforehand, e.g. pytorch for specific cuda support, see pytorch.org/get-started/locally.

+

Requirements: genQC depends on python (min. version 3.9) and the librarys: torch, numpy, matplotlib, scipy, pandas, omegaconf, qiskit, tqdm, joblib, open_clip_torch, ipywidgets and pylatexenc. All can be installed with pip. In src/RELEASES.md [doc] and the release descriptions specific tested-on versions are listed.

+
+
+

3. Run example

+

You can run the provided 0_hello_circuit [doc] [notebook] example to test your installation. On a computer with a moderate GPU this inference example notebook should run under half a minute.

+
+
+
+

License

+

The code and weights in this repository are released under the MIT License.

+
+
+

BibTeX

+

We kindly ask you to cite our paper if any of the previous material was useful for your work.

+
@article{fuerrutter2023quantum,
+      title={Quantum circuit synthesis with diffusion models}, 
+      author={Florian Fürrutter and Gorka Muñoz-Gil and Hans J. Briegel},
+      year={2023},
+      eprint={2311.02041},
+      publisher = {arXiv},
+      archivePrefix={arXiv},
+      primaryClass={quant-ph},
+      url = {https://arxiv.org/abs/2311.02041},
+      doi = {/10.48550/arXiv.2311.02041},
+}
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/index_files/figure-html/cell-3-output-2.png b/index_files/figure-html/cell-3-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..3735d62008e0e764cb58f51756d5384f2298704b GIT binary patch literal 9710 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 literal 0 HcmV?d00001 diff --git a/inference/infer_compilation.html b/inference/infer_compilation.html new file mode 100644 index 0000000..850278c --- /dev/null +++ b/inference/infer_compilation.html @@ -0,0 +1,1008 @@ + + + + + + + + + +genQC - Inference compilation functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference compilation functions

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

Misc

+
+

source

+
+

split_U_to_tensor

+
+
 split_U_to_tensor (U:numpy.ndarray)
+
+
+

source

+
+
+

get_new_unitary_indices

+
+
 get_new_unitary_indices (Us, dataset, silent=False)
+
+
+

source

+
+
+

get_new_unitary_indices_batch

+
+
 get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,
+                                silent=False, n_jobs=1)
+
+
+
+
+

Generation

+
+

source

+
+

generate_comp_tensors

+
+
 generate_comp_tensors (pipeline, prompt, U, samples, system_size,
+                        num_of_qubits, max_gates, g, no_bar=True,
+                        unique=False, auto_batch_size=512)
+
+
+
+
+

Accuracy

+
+

source

+
+

check_correct_gates

+
+
 check_correct_gates (qc, num_of_qubits, gate_pool, max_gates,
+                      allowed_gate_clrs)
+
+
+

source

+
+
+

check_correct_unitary_exact

+
+
 check_correct_unitary_exact (qc, U)
+
+
+

source

+
+
+

check_correct_unitary_distance

+
+
 check_correct_unitary_distance (qc, target_U, norms)
+
+
+

source

+
+
+

get_gate_and_U_acc

+
+
 get_gate_and_U_acc (out_tensor, allowed_gate_clrs, U, gate_pool,
+                     num_of_qubits, max_gates, norms=[], no_bar=True)
+
+
+
+
+

Tests

+
+

source

+
+

test_comp_acc

+
+
 test_comp_acc (pipeline, samples, system_size, gate_pool, num_of_qubits,
+                max_gates, g, str_cond_to_gate_indices:<built-
+                infunctioncallable>, Us, ys, train_dataset=None, norms=[])
+
+
+

source

+
+
+

test_comp_acc_on_testset

+
+
 test_comp_acc_on_testset (pipeline, samples, num_of_U, system_size,
+                           gate_pool, num_of_qubits, max_gates, g,
+                           str_cond_to_gate_indices:<built-
+                           infunctioncallable>, prompt_mod:<built-
+                           infunctioncallable>, test_dataset,
+                           train_dataset=None, norms=[], fix_y=None)
+
+

returns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s

+
+

source

+
+
+

test_comp_acc_on_rnd_samples

+
+
 test_comp_acc_on_rnd_samples (pipeline, samples, num_of_U, system_size,
+                               gate_pool, num_of_qubits, max_gates, g,
+                               str_cond_to_gate_indices:<built-
+                               infunctioncallable>, prompt_mod:<built-
+                               infunctioncallable>, rnd_min_gates,
+                               rnd_max_gates, train_dataset=None,
+                               norms=[], fix_y=None)
+
+

returns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
pipeline
samples
num_of_U
system_size
gate_pool
num_of_qubits
max_gates
g
str_cond_to_gate_indicescallable
prompt_modcallabletakes a single prompt and returns it modified
rnd_min_gates
rnd_max_gates
train_datasetNoneTypeNone
normslist[]
fix_yNoneTypeNone
+
+
+
+

Plot

+
+

source

+
+

plot_hist_overview

+
+
 plot_hist_overview (out_tuple, num_of_samples_per_U, rnd_min_gates,
+                     rnd_max_gates, max_gates, num_of_qubits)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/inference/infer_gate_hist.html b/inference/infer_gate_hist.html new file mode 100644 index 0000000..d69d874 --- /dev/null +++ b/inference/infer_gate_hist.html @@ -0,0 +1,766 @@ + + + + + + + + + +genQC - Inference gate distribution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference gate distribution

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

Gate length

+
+

source

+
+

get_tensor_gate_length

+
+
 get_tensor_gate_length (clr_tensor, padding_token=0)
+
+

Careful with padding tokens!

+
+

source

+
+
+

get_circuit_gate_length

+
+
 get_circuit_gate_length (qcs)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/inference/infer_misc.html b/inference/infer_misc.html new file mode 100644 index 0000000..7faf943 --- /dev/null +++ b/inference/infer_misc.html @@ -0,0 +1,772 @@ + + + + + + + + + +genQC - Inference miscellaneous functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference miscellaneous functions

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

Misc

+
+

source

+
+

get_rnd_gatepool_subset

+
+
 get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)
+
+
+
+
+

Convertion

+
+

source

+
+

convert_tensors_to_circuits

+
+
 convert_tensors_to_circuits (out_tensor, gate_pool, params_tensor=None,
+                              place_barrier=False)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/inference/infer_srv.html b/inference/infer_srv.html new file mode 100644 index 0000000..4369a46 --- /dev/null +++ b/inference/infer_srv.html @@ -0,0 +1,952 @@ + + + + + + + + + +genQC - Inference SRV functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Inference SRV functions

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

Generation

+
+

source

+
+

get_all_srvs

+
+
 get_all_srvs (num_of_qubits)
+
+
+

source

+
+
+

generate_srv_tensors

+
+
 generate_srv_tensors (pipeline, prompt, samples, system_size,
+                       num_of_qubits, max_gates, g, no_bar=True,
+                       unique=False, auto_batch_size=512)
+
+
+
+
+

Convertion

+
+

source

+
+

convert_tensors_to_srvs

+
+
 convert_tensors_to_srvs (out_tensor, gate_pool, sort_srv=False,
+                          place_barrier=False, n_jobs=1)
+
+
+
+
+

Accuracy

+
+

source

+
+

get_srv_accuracy

+
+
 get_srv_accuracy (srv_list, target_srv)
+
+
+
+
+

Tests

+
+

source

+
+

true_sample_bin_dist

+
+
 true_sample_bin_dist (samples_per_bin, bin_size)
+
+
+

source

+
+
+

test_srv_clr_distribution_bin_samples

+
+
 test_srv_clr_distribution_bin_samples (pipeline, samples_per_bin,
+                                        system_size, num_of_qubits,
+                                        max_gates, g, gate_pool,
+                                        silent=False, device='cpu',
+                                        U=None, prompt_mod:<built-
+                                        infunctioncallable>=<function
+                                        <lambda>>, only_diag=False,
+                                        n_jobs=1)
+
+
+

source

+
+
+

test_srv_clr_distribution

+
+
 test_srv_clr_distribution (pipeline, samples_per_srv, system_size,
+                            num_of_qubits, max_gates, g, gate_pool,
+                            silent=False, device='cpu', U=None,
+                            prompt_mod:<built-
+                            infunctioncallable>=<function <lambda>>,
+                            dist_srvs=None, cond_srvs=None,
+                            only_diag=False, n_jobs=1)
+
+
+

source

+
+
+

test_guidance_dep

+
+
 test_guidance_dep (pipeline, srvs, samples, system_size, num_of_qubits,
+                    max_gates, gs, gate_pool, prompt_mod:<built-
+                    infunctioncallable>=<function <lambda>>, U=None,
+                    n_jobs=1)
+
+
+

source

+
+
+

test_srv_acc_vs_length

+
+
 test_srv_acc_vs_length (pipeline, samples, system_size, num_of_qubits,
+                         max_gates, g, gate_pool, prompt_mod:<built-
+                         infunctioncallable>=<function <lambda>>, U=None,
+                         n_jobs=1)
+
+
+

source

+
+
+

test_srv_acc_vs_maxLength

+
+
 test_srv_acc_vs_maxLength (pipeline, samples_per_bin, system_size,
+                            num_of_qubits, max_gates_list, g, gate_pool,
+                            prompt_mod:<built-
+                            infunctioncallable>=<function <lambda>>,
+                            U=None, n_jobs=1)
+
+
+

source

+
+
+

test_srv_length_distribution

+
+
 test_srv_length_distribution (pipeline, samples_per_bin, system_size,
+                               num_of_qubits, max_gates, g, gate_pool,
+                               silent=False, U=None, prompt_mod:<built-
+                               infunctioncallable>=<function <lambda>>,
+                               n_jobs=1)
+
+
+
+
+

Plot

+
+

source

+
+

plot_srv_clr_distribution_hist

+
+
 plot_srv_clr_distribution_hist (values, samples, num_of_qubits,
+                                 save=False, dist_srvs=None,
+                                 cond_srvs=None)
+
+
+

source

+
+
+

plot_srv_clr_distribution_bin_accuracy

+
+
 plot_srv_clr_distribution_bin_accuracy (values, samples, num_of_qubits,
+                                         save=False,
+                                         plot_percentages=False,
+                                         trainSet_srv=None)
+
+
+

source

+
+
+

plot_guidance_dep

+
+
 plot_guidance_dep (srvs, gs, guidance_dep_out, samples, save=False)
+
+
+

source

+
+
+

plot_srv_acc_vs_length

+
+
 plot_srv_acc_vs_length (ent_ls, ent_accs, ent_cnts, ent_labels, samples,
+                         plot_dist=True, save=False)
+
+
+

source

+
+
+

plot_srv_acc_vs_maxLength

+
+
 plot_srv_acc_vs_maxLength (ent_accs, ent_labels, max_gates_list, samples,
+                            plot_dist=True, save=False)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/metrics.html b/metrics.html new file mode 100644 index 0000000..9ae4dce --- /dev/null +++ b/metrics.html @@ -0,0 +1,826 @@ + + + + + + + + + +genQC - Metrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Metrics

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

Definition of metrics used during training.

+
+

source

+
+

Metric

+
+
 Metric (name:str, device)
+
+

Base metric class.

+
+

source

+
+
+

Mean

+
+
 Mean (name:str, device)
+
+

Mean metric, used for loss ..

+
+

source

+
+
+

Accuracy

+
+
 Accuracy (name:str, device)
+
+

Accuracy metric.

+

Example usage:

+
+
a = Accuracy("mean", "cpu")
+print(a, a.empty)
+
+a.update_state(torch.Tensor([3,2,2,1]), torch.Tensor([1,2,2,1]))
+print(a, a.empty)
+
+a.update_state(torch.Tensor([1,2,2,3]), torch.Tensor([1,2,2,3]))
+print(a, a.empty)
+
+a.reset_state()
+print(a, a.empty)
+
+
mean=nan True
+mean=0.75 False
+mean=0.875 False
+mean=nan True
+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/config_model.html b/models/config_model.html new file mode 100644 index 0000000..be37741 --- /dev/null +++ b/models/config_model.html @@ -0,0 +1,758 @@ + + + + + + + + + +genQC - Config model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config model

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

Model base class that handles loading and storing from/to config-files.

+
+

Model

+
+

source

+
+

Config_Model

+
+
 Config_Model ()
+
+

A basic nn.Module with IO functionality.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/frozen_open_clip.html b/models/frozen_open_clip.html new file mode 100644 index 0000000..88f295e --- /dev/null +++ b/models/frozen_open_clip.html @@ -0,0 +1,905 @@ + + + + + + + + + +genQC - Frozen OpenCLIP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Frozen OpenCLIP

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

CLIP model

+
+

source

+
+

FrozenOpenCLIPEmbedder_config

+
+
 FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,
+                                max_length:int, freeze:bool, layer:str)
+
+
+

source

+
+
+

FrozenOpenCLIPEmbedder

+
+
 FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',
+                         device='cpu', max_length=77, freeze=True,
+                         layer='penultimate')
+
+

Loads and freezes the OpenCLIP transformer encoder for text prompts.

+
+
a = FrozenOpenCLIPEmbedder()
+
+
+
p="[1, 2, 2]"
+a.tokenize_and_push_to_device(p)
+
+
tensor([[49406,   314,   272,   267,   273,   267,   273,   316, 49407,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+             0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+             0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0]])
+
+
+
+
a.tokenize_and_push_to_device("").shape
+
+
torch.Size([1, 77])
+
+
+
+
c = a.tokenize_and_push_to_device(["1,1,2", "2,2,2"])
+enc = a(c)
+enc.shape, enc
+
+
(torch.Size([2, 77, 1024]),
+ tensor([[[-0.3134, -0.4476, -0.0082,  ...,  0.2542, -0.0324, -0.2960],
+          [ 0.0668, -1.2381,  0.9908,  ...,  0.1785,  0.1592, -0.4320],
+          [ 0.6988, -0.2168, -1.2912,  ...,  2.1063, -0.0302, -0.5666],
+          ...,
+          [ 0.4703, -1.4072, -0.4847,  ..., -0.1257, -0.1650,  0.1206],
+          [ 0.5117, -1.3949, -0.4672,  ..., -0.4288, -0.2166,  0.2904],
+          [ 0.1480, -2.1998, -1.1187,  ...,  0.0823, -0.4157,  0.6236]],
+ 
+         [[-0.3134, -0.4476, -0.0082,  ...,  0.2542, -0.0324, -0.2960],
+          [-0.1180, -1.6322,  1.2987,  ..., -0.1378, -0.1529, -0.3377],
+          [-0.7251, -0.8167, -0.9966,  ...,  2.2262, -0.2325, -0.0138],
+          ...,
+          [ 0.3887, -1.3395, -0.5868,  ..., -0.1621, -0.0594,  0.1253],
+          [ 0.4360, -1.3350, -0.5684,  ..., -0.4643, -0.1131,  0.2847],
+          [ 0.1691, -2.1725, -1.1441,  ...,  0.0633, -0.3175,  0.7041]]]))
+
+
+
+
open_clip.decode(c[1])
+
+
'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
+
+
+
+
+
+

Cached model

+

Model takes now also (batched) scalar int values that are defined to unique conditions like \([1,2,2]=4\). If input is now such int the output is the cached pre-embedded tensor. If a non int, like a token string is passed we just do the normal embedding live.

+
+

source

+
+

CachedFrozenOpenCLIPEmbedder

+
+
 CachedFrozenOpenCLIPEmbedder (arch='ViT-H-14',
+                               version='laion2b_s32b_b79k', device='cpu',
+                               max_length=77, freeze=True,
+                               layer='penultimate')
+
+

Adds caching support to FrozenOpenCLIPEmbedder.

+
+
a = CachedFrozenOpenCLIPEmbedder()
+p = ["1,1,2", "2,2,2"]
+
+a.generate_cache(p)
+
+ +
+
+
[INFO]: caching trying to allocate memory (2, 77, 1024) on cpu approx. 0.001 GB
+
+
+
+
c_cached   = torch.tensor([0,0,1], device=a.device)
+c_uncached = a.tokenize_and_push_to_device(["1,1,2", "1,1,2", "2,2,2"])
+
+enc_cached   = a(c_cached)
+enc_uncached = a(c_uncached)
+
+enc_cached.shape, enc_uncached.shape, torch.allclose(enc_cached, enc_uncached, atol=1e-5)
+
+
(torch.Size([3, 77, 1024]), torch.Size([3, 77, 1024]), True)
+
+
+ + +
+
+ + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/models/layers.html b/models/layers.html new file mode 100644 index 0000000..65514f6 --- /dev/null +++ b/models/layers.html @@ -0,0 +1,910 @@ + + + + + + + + + +genQC - Layers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Layers

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

Common model layers.

+
+

Basic scaling blocks

+
+

source

+
+

DownBlock2D

+
+
 DownBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,
+              use_conv=True)
+
+

A 2d down scale block.

+
+

source

+
+
+

UpBlock2D

+
+
 UpBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,
+            use_conv=True)
+
+

A 2d up scale block.

+
+
+
+

ResNet blocks

+
+

source

+
+

ResBlock2D

+
+
 ResBlock2D (in_ch, out_ch, kernel_size, skip=True)
+
+

A 2d residual block.

+
+

source

+
+
+

ResBlock2D_Conditional

+
+
 ResBlock2D_Conditional (in_ch, out_ch, t_emb_size, kernel_size,
+                         skip=True)
+
+

A 2d residual block with input of a time-step \(t\) embedding.

+
+
+
+

FeedForward layer

+
+

source

+
+

FeedForward

+
+
 FeedForward (in_ch, out_ch, inner_mult=1)
+
+

A small dense feed-forward network as used in transformers.

+
+
+
+

Position embedding layers

+

Create sinusoidal position embeddings, same as those from the transformer:

+

+
+

source

+
+

PositionalEncoding

+
+
 PositionalEncoding (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

An absolute pos encoding layer.

+
+

source

+
+
+

TimeEmbedding

+
+
 TimeEmbedding (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

A time embedding layer

+
+

source

+
+
+

PositionalEncodingTransposed

+
+
 PositionalEncodingTransposed (d_model:int, dropout:float=0.0,
+                               max_len:int=5000)
+
+

An absolute pos encoding layer.

+
+

source

+
+
+

PositionalEncoding2D

+
+
 PositionalEncoding2D (d_model:int, dropout:float=0.0, max_len:int=5000)
+
+

A 2D absolute pos encoding layer.

+
+
a = torch.zeros((1, 4, 3, 4))
+l = PositionalEncoding2D(d_model=4)   
+
+l(a)[0].shape
+
+
torch.Size([4, 3, 4])
+
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png b/models/layers_files/figure-html/ab364029-0d4a-461b-aaf4-da0ac25381eb-1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec6b2275a268411683996be1a2dc21221ffb5a9 GIT binary patch literal 47605 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 + + + + + + + + +genQC - Transformers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Transformers

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

Attention blocks

+
+

source

+
+

BasisSelfAttnBlock

+
+
 BasisSelfAttnBlock (ch, num_heads, dropout=0)
+
+

A self attention block, i.e. a transformer encoder.

+
+

source

+
+
+

BasisCrossAttnBlock

+
+
 BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)
+
+

A cross attention block, i.e. a transformer decoder.

+
+
+
+

Spatial residual transformers

+
+

source

+
+

SpatialTransformerSelfAttn

+
+
 SpatialTransformerSelfAttn (ch, num_heads, depth, dropout=0.0)
+
+

A spatial residual transformer, only uses self-attention.

+
+

source

+
+
+

SpatialTransformer

+
+
 SpatialTransformer (ch, cond_emb_size, num_heads, depth, dropout=0.0)
+
+

A spatial residual transformer, uses self- and cross-attention on conditional input.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/unet_qc.html b/models/unet_qc.html new file mode 100644 index 0000000..88167d5 --- /dev/null +++ b/models/unet_qc.html @@ -0,0 +1,845 @@ + + + + + + + + + +genQC - Conditional qc-UNet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Conditional qc-UNet

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

Quantum circuit U-Net architecture predicting the noise for noisy quantum circuits.

+
+

Blocks

+
+

source

+
+

UNet_block

+
+
 UNet_block (ch_in, ch_out, t_emb_size, cond_emb_size, num_heads=8,
+             num_res_blocks=1, transformer_depth=1)
+
+

The basic block of the U-Net. Is conditioned via cross-attention in SpatialTransformer and addition of the time ebedding in ResBlock2D_Conditional.

+
+

source

+
+
+

Encoder

+
+
 Encoder (model_features, t_emb_size, cond_emb_size, num_heads,
+          num_res_blocks, transformer_depths)
+
+

Encoder definition of the U-Net.

+
+

source

+
+
+

Decoder

+
+
 Decoder (model_features, t_emb_size, cond_emb_size, num_heads,
+          num_res_blocks, transformer_depths)
+
+

Decoder definition of the U-Net.

+
+
+
+

Model definition

+
+

source

+
+

QC_Cond_UNet_config

+
+
 QC_Cond_UNet_config (model_features:list[int], clr_dim:int, num_clrs:int,
+                      t_emb_size:int, cond_emb_size:int,
+                      num_heads:list[int], num_res_blocks:list[int],
+                      transformer_depths:list[int])
+
+
+

source

+
+
+

QC_Cond_UNet

+
+
 QC_Cond_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,
+               t_emb_size=128, cond_emb_size=512, num_heads=[8, 8, 2],
+               num_res_blocks=[2, 2, 4], transformer_depths=[1, 2, 1])
+
+

Conditional U-Net model for quantum circuits. Implemets embedd_clrs and invert_clr functions to embed and decode color-tensors.

+
+
+
+

Unitary compilation extension

+
+

source

+
+

QC_Compilation_UNet_config

+
+
 QC_Compilation_UNet_config (model_features:list[int], clr_dim:int,
+                             num_clrs:int, t_emb_size:int,
+                             cond_emb_size:int, num_heads:list[int],
+                             num_res_blocks:list[int],
+                             transformer_depths:list[int], unitary_encoder
+                             _config:genQC.models.unitary_encoder.Unitary_
+                             encoder_config)
+
+
+

source

+
+
+

QC_Compilation_UNet

+
+
 QC_Compilation_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,
+                      t_emb_size=128, cond_emb_size=512, num_heads=[8, 8,
+                      2], num_res_blocks=[2, 2, 4], transformer_depths=[1,
+                      2, 1], unitary_encoder_config=None)
+
+

Extension of the QC_Cond_UNet to accept unitary conditions.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/models/unitary_encoder.html b/models/unitary_encoder.html new file mode 100644 index 0000000..30955ed --- /dev/null +++ b/models/unitary_encoder.html @@ -0,0 +1,769 @@ + + + + + + + + + +genQC - Encoder for unitaries + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Encoder for unitaries

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

Model definition

+
+

source

+
+

Unitary_encoder_config

+
+
 Unitary_encoder_config (cond_emb_size:int, model_features:list[int],
+                         num_heads:int, transformer_depths:list[int],
+                         dropout:float)
+
+
+

source

+
+
+

Unitary_encoder

+
+
 Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,
+                  transformer_depths=[4, 4], dropout=0.1)
+
+

Encoder for unitary conditions.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/pipeline/diffusion_pipeline.html b/pipeline/diffusion_pipeline.html new file mode 100644 index 0000000..2cb3562 --- /dev/null +++ b/pipeline/diffusion_pipeline.html @@ -0,0 +1,755 @@ + + + + + + + + + +genQC - Diffusion Pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Diffusion Pipeline

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

source

+
+

DiffusionPipeline

+
+
 DiffusionPipeline (scheduler:genQC.scheduler.scheduler.Scheduler,
+                    model:torch.nn.modules.module.Module,
+                    text_encoder:torch.nn.modules.module.Module,
+                    device:torch.device, enable_guidance_train=True,
+                    guidance_train_p=0.1, cached_text_enc=True)
+
+

A Pipeline for diffusion models. Implements train and inference functions. Diffusion parameters are defined inside a Scheduler object.

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/pipeline/diffusion_pipeline_special.html b/pipeline/diffusion_pipeline_special.html new file mode 100644 index 0000000..46e12a5 --- /dev/null +++ b/pipeline/diffusion_pipeline_special.html @@ -0,0 +1,775 @@ + + + + + + + + + +genQC - Diffusion Pipeline Special + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Diffusion Pipeline Special

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

source

+
+

DiffusionPipeline_attnPadded

+
+
 DiffusionPipeline_attnPadded
+                               (scheduler:genQC.scheduler.scheduler.Schedu
+                               ler, model:torch.nn.modules.module.Module, 
+                               text_encoder:torch.nn.modules.module.Module
+                               , device:torch.device,
+                               enable_guidance_train=True,
+                               guidance_train_p=0.1, cached_text_enc=True)
+
+

A special DiffusionPipeline with attention masking.

+
+

source

+
+
+

DiffusionPipeline_Compilation

+
+
 DiffusionPipeline_Compilation
+                                (scheduler:genQC.scheduler.scheduler.Sched
+                                uler,
+                                model:torch.nn.modules.module.Module, text
+                                _encoder:torch.nn.modules.module.Module,
+                                device:torch.device,
+                                enable_guidance_train=True,
+                                guidance_train_p=0.1,
+                                cached_text_enc=True)
+
+

A special DiffusionPipeline that accounts for unitary conditions, i.e. compilation.

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/pipeline/pipeline.html b/pipeline/pipeline.html new file mode 100644 index 0000000..3a82f5f --- /dev/null +++ b/pipeline/pipeline.html @@ -0,0 +1,773 @@ + + + + + + + + + +genQC - Pipeline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Pipeline

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

Basic PyTorch pipeline for general training.

+
+

Helper

+
+
+

Pipeline

+

Note, uses functions that require: python>=3.9

+
+

source

+
+

Pipeline_IO

+
+
 Pipeline_IO ()
+
+

A class providing basic IO functionality.

+
+

source

+
+
+

Pipeline

+
+
 Pipeline (model:torch.nn.modules.module.Module, device:torch.device)
+
+

A Pipeline_IO class providing basic pytorch model training functionality.

+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_dataset_construction.html b/platform/qcircuit_dataset_construction.html new file mode 100644 index 0000000..ec5ddf2 --- /dev/null +++ b/platform/qcircuit_dataset_construction.html @@ -0,0 +1,987 @@ + + + + + + + + + +genQC - Quantum circuit dataset construction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit dataset construction

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

Functions to construct a dataset. Here we define the tokenization (encoding and decoding).

+
+

Tokenizer: encoding and decoding

+
+

source

+
+

get_target_control_qubits

+
+
 get_target_control_qubits
+                            (qc:qiskit.circuit.quantumcircuit.QuantumCircu
+                            it, gate:qiskit.circuit.gate.Gate)
+
+
+

source

+
+
+

encode_circuit

+
+
 encode_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                 num_of_qubits, gate_classes:dict, max_gates:int,
+                 sign_labels={'control_qubits': -1, 'target_qubits': 1},
+                 return_params=False)
+
+
+

source

+
+
+

decode_circuit

+
+
 decode_circuit (enc_tensor:torch.Tensor,
+                 gate_pool:list[qiskit.circuit.gate.Gate],
+                 place_barrier=True, sign_labels={'control_qubits': -1,
+                 'target_qubits': 1}, params_tensor=None)
+
+
+
+
+

Dataset generation

+
+

Totally random SRV circuits

+
+

source

+
+
+

get_rnd_encoded_circuit

+
+
 get_rnd_encoded_circuit (num_of_qubits, min_gates, max_gates, gate_pool,
+                          gate_classes, rng, optimized=True,
+                          return_params=False)
+
+
+

source

+
+
+

get_rnd_encoded_circuits

+
+
 get_rnd_encoded_circuits (samples, num_of_qubits=3, min_gates=3,
+                           max_gates=10, gate_pool=[<class 'qiskit.circuit
+                           .library.standard_gates.h.HGate'>, <class 'qisk
+                           it.circuit.library.standard_gates.x.CXGate'>],
+                           optimized=True, silent=False,
+                           return_params=False)
+
+
+
gate_pool=[ql.HGate, ql.CXGate, ql.CU3Gate, ql.CRXGate]
+
+print("Encode:")
+enc_t, y, params = get_rnd_encoded_circuits(samples=1, num_of_qubits=3, min_gates=6, max_gates=6, gate_pool=gate_pool, optimized=True, return_params=True)
+
+for enc_i, y_i, params_i in zip(enc_t, y, params):
+    print(f"{enc_i=}")
+    print(f"{y_i=}")
+    print(f"{params_i=}")
+
+print("Decode:")
+qc = decode_circuit(enc_t[0], gate_pool=gate_pool, params_tensor=params[0])
+display(qc.draw("mpl"))
+
+
Encode:
+enc_i=tensor([[-2,  0, -2,  3,  3,  0],
+        [ 2,  1,  2, -3, -3,  0],
+        [ 0,  0,  0,  0,  0,  1]], dtype=torch.int32)
+y_i=[2, 2, 1]
+params_i=tensor([[0.0000, 0.0000, 0.0000, 2.2710, 4.8585, 0.0000],
+        [0.0000, 0.0000, 0.0000, 0.0304, 1.1044, 0.0000],
+        [0.0000, 0.0000, 0.0000, 3.0486, 4.9504, 0.0000]])
+Decode:
+
+
+ +
+
+

+
+
+
+

source

+
+
+

gen_qc_dataset

+
+
 gen_qc_dataset (samples, num_of_qubits, min_gates, max_gates, gate_pool,
+                 optimized, silent=False)
+
+
+
+

Specific random SRV circuit

+
+

source

+
+
+

get_specific_rnd_srv_circuit

+
+
 get_specific_rnd_srv_circuit (srv, requested_length, gate_pool,
+                               max_i=2000, silent=True,
+                               fix_length_after_optimizing=True,
+                               requested_length_tolerance=0)
+
+
+
+

Unitary dataset

+
+

source

+
+
+

gen_compilation_rndGates_dataset

+
+
 gen_compilation_rndGates_dataset (samples, num_of_qubits, min_gates,
+                                   max_gates, gate_pool,
+                                   min_sub_gate_pool_cnt=1, silent=False)
+
+

Samples rnd circuit with a rnd subset of gates and return qc with gate label and unitary

+
+
gate_pool=[ql.HGate, ql.CXGate, ql.ZGate, ql.XGate, ql.CCXGate]
+
+enc_t, y, U = gen_compilation_rndGates_dataset(samples=1, num_of_qubits=3, min_gates=3, max_gates=4, gate_pool=gate_pool)
+
+np.set_printoptions(edgeitems=30, linewidth=100000, formatter=dict(float=lambda x: "%.3g" % x))
+
+print(f"\ny Label >>> {y[0]} <<<")
+print(f"\n{enc_t[0]}")
+print(f"\n{U[0]}")
+print("\nDecoded:")
+qc = decode_circuit(enc_t[0], gate_pool=gate_pool)
+display(qc.draw("mpl"))
+
+ +
+
+
generated unique circuits: 1
+
+y Label >>> Compile using: ['x'] <<<
+
+tensor([[0, 0, 0, 0],
+        [4, 0, 0, 0],
+        [0, 4, 4, 4]], dtype=torch.int32)
+
+[[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
+ [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]
+
+Decoded:
+
+
+

+
+
+
+
+

Graph states dataset

+
+
#place all h on all bist then only cz
+
+ + +
+
+ + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png b/platform/qcircuit_dataset_construction_files/figure-html/cell-11-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..75344cb32d97d4a0df3f094c49d0638abecd294b GIT binary patch literal 7564 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 H+ui*y9x__f literal 0 HcmV?d00001 diff --git a/platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png b/platform/qcircuit_dataset_construction_files/figure-html/cell-7-output-3.png new file mode 100644 index 0000000000000000000000000000000000000000..e5454af730b25667fd316e110727ff2c047f2a5d GIT binary patch literal 14244 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 aO{qIDcka5Ue>C%~nyR|ji?7{!@IL^-hdGk~ literal 0 HcmV?d00001 diff --git a/platform/qcircuit_evaluation.html b/platform/qcircuit_evaluation.html new file mode 100644 index 0000000..9514d17 --- /dev/null +++ b/platform/qcircuit_evaluation.html @@ -0,0 +1,784 @@ + + + + + + + + + +genQC - Quantum circuit evaluation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit evaluation

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

Gate count

+
+

source

+
+

sort_into_bins

+
+
 sort_into_bins (x, y, y_uniques)
+
+
+

source

+
+
+

extract_gate_number

+
+
 extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                      gate_pool, max_gates)
+
+
+

source

+
+
+

get_gate_stat_from_tensors

+
+
 get_gate_stat_from_tensors (tensors, gate_pool)
+
+
+

source

+
+
+

get_gate_stat_from_circuits

+
+
 get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_metrics.html b/platform/qcircuit_metrics.html new file mode 100644 index 0000000..4f80de3 --- /dev/null +++ b/platform/qcircuit_metrics.html @@ -0,0 +1,802 @@ + + + + + + + + + +genQC - Quantum circuit metrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit metrics

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

Norms for unitary compilation.

+
+

Unitary distances

+
+

source

+
+

Unitary_FrobeniusNorm

+
+
 Unitary_FrobeniusNorm ()
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
a = torch.tensor([[1,2], [2, 1]]).float()
+b = torch.tensor([[2,3], [2, 2]]).float()
+
+g = Unitary_FrobeniusNorm
+g.distance(a,b)
+
+
tensor(1.5000)
+
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/qcircuit_util.html b/platform/qcircuit_util.html new file mode 100644 index 0000000..60df6d9 --- /dev/null +++ b/platform/qcircuit_util.html @@ -0,0 +1,812 @@ + + + + + + + + + +genQC - Quantum circuit utils + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Quantum circuit utils

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

SRV

+
+

source

+
+

get_element_matching_indices

+
+
 get_element_matching_indices (a, b)
+
+

Compares (2d) a with b. Returns the indices of b, where a element of a matches with b.

+
+

source

+
+
+

get_entanglement_bins

+
+
 get_entanglement_bins (num_of_qubits)
+
+

Returns all SRV sorted in entangle bins which correspond to a number of entangled qubits.

+
+
for srvs,label in zip(*get_entanglement_bins(5)):
+    print(label, ":", srvs)
+
+
0 qubit entangled : [[1, 1, 1, 1, 1]]
+2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]
+3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]
+4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]
+5 qubit entangled : [[2, 2, 2, 2, 2]]
+
+
+ + +
+
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/simulation/qcircuit_sim.html b/platform/simulation/qcircuit_sim.html new file mode 100644 index 0000000..de6760e --- /dev/null +++ b/platform/simulation/qcircuit_sim.html @@ -0,0 +1,981 @@ + + + + + + + + + +genQC - Qiskit: quantum circuit simulation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Qiskit: quantum circuit simulation

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

Circuit

+
+

source

+
+

get_number_of_gate_params

+
+
 get_number_of_gate_params (gate_cls)
+
+
+

source

+
+
+

gate_pool_to_gate_classes

+
+
 gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])
+
+

Creates a vocabulary from a gate pool.

+
+

source

+
+
+

schmidt_rank_vector

+
+
 schmidt_rank_vector
+                      (densityMatrix:qiskit.quantum_info.states.densitymat
+                      rix.DensityMatrix)
+
+

Return the SRV of a qi.DensityMatrix.

+
+

source

+
+
+

rnd_circuit

+
+
 rnd_circuit (num_of_qubits, num_of_gates,
+              gate_pool:list[qiskit.circuit.gate.Gate], rng)
+
+

Create a random circuit.

+
+

source

+
+
+

optimize_circuit

+
+
 optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,
+                   gate_pool:list[qiskit.circuit.gate.Gate],
+                   optimization_level=2)
+
+

Use qiskit.compiler.transpile to optimize a circuit.

+
+
gs = [ql.HGate, ql.CXGate, ql.CRXGate]
+qc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())
+svr = schmidt_rank_vector(qi.DensityMatrix(qc))
+display(f"Rand: svr={svr}    num_gates={len(qc.data)}", qc.draw('mpl'))
+
+qc = optimize_circuit(qc, gs)
+svr = schmidt_rank_vector(qi.DensityMatrix(qc))
+display(f"Opti: svr={svr}    num_gates={len(qc.data)}", qc.draw('mpl'))
+
+
'Rand: svr=[1, 1, 1]    num_gates=8'
+
+
+

+
+
+
'Opti: svr=[1, 1, 1]    num_gates=8'
+
+
+

+
+
+
+

source

+
+
+

plot_svr_stat

+
+
 plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,
+                sort=False, opt=True, rng=Generator(PCG64) at
+                0x7FC59D9A7F20)
+
+

SRV distrubtion for random sampling

+
+
# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate]  # approx universal set
+# gs = [ql.HGate, ql.CCXGate]                     # approx universal set
+gs = [ql.HGate, ql.CXGate]
+
+plot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3),  rng=np.random.default_rng())
+
+
[1, 1, 1]: 58.2%
+[2, 2, 1]: 11.5%
+[2, 2, 2]: 11.3%
+[1, 2, 2]: 9.6%
+[2, 1, 2]: 9.4%
+
+
+

+
+
+
+
+
+

SVR Test cases

+
+
def test_srv(system_dims, init, target):
+    vec = qi.Statevector(init, dims=system_dims)
+    vec *= 1/np.sqrt(vec.trace())
+    srv = schmidt_rank_vector(qi.DensityMatrix(vec)) 
+    assert srv == target, f"srv: {srv}"
+    print(f"passed test, svr: {srv}")
+    display(vec.draw('latex', prefix='|\\psi\\rangle = '))
+
+
+
#---------------- |0+> = |00>+|01>
+system_dims = (2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[1] = 1
+test_srv(system_dims, init, [1, 1])
+
+#----------------Bell, |00>+|11>
+system_dims = (2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[3] = 1
+test_srv(system_dims, init, [2, 2])
+  
+#----------------GHZ, |000>+|111>
+system_dims = (2,2,2)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0] = 1
+init[7] = 1
+test_srv(system_dims, init, [2,2,2])
+ 
+#----------------Sym, |000>+|111>+|222>
+system_dims = (3,3,3)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0]  = 1
+init[13] = 1
+init[26] = 1
+test_srv(system_dims, init, [3,3,3])
+      
+#----------------Wikipedia example, |000>+|101>+|210>+|311>
+system_dims = (4,4,4)
+init = np.zeros(np.prod(system_dims), dtype=complex)
+init[0]  = 1
+init[17] = 1
+init[36] = 1
+init[53] = 1
+test_srv(system_dims, init, [2, 2, 4])
+
+
passed test, svr: [1, 1]
+passed test, svr: [2, 2]
+passed test, svr: [2, 2, 2]
+passed test, svr: [3, 3, 3]
+passed test, svr: [2, 2, 4]
+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |01\rangle\]

+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |00\rangle+\frac{\sqrt{2}}{2} |11\rangle\]

+
+
+

\[|\psi\rangle = \frac{\sqrt{2}}{2} |000\rangle+\frac{\sqrt{2}}{2} |111\rangle\]

+
+
+

$$\[\begin{align} + +|\psi\rangle = +\begin{bmatrix} +\frac{\sqrt{3}}{3} & 0 & 0 & 0 & \cdots & 0 & 0 & \frac{\sqrt{3}}{3} \\ +\end{bmatrix} +\\ +\text{dims=(3, 3, 3)} +\end{align}\]$$

+
+
+

$$\[\begin{align} + +|\psi\rangle = +\begin{bmatrix} +\frac{1}{2} & 0 & 0 & 0 & \cdots & 0 & 0 & 0 \\ +\end{bmatrix} +\\ +\text{dims=(4, 4, 4)} +\end{align}\]$$

+
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4f788a2d4cdeb4edd16619d59c8b9f2d4ab662 GIT binary patch literal 10415 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 YFa2*tqQS|)@F0eYqJ~1boJq+40%8$yCIA2c literal 0 HcmV?d00001 diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-7-output-4.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4f788a2d4cdeb4edd16619d59c8b9f2d4ab662 GIT binary patch literal 10415 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 YFa2*tqQS|)@F0eYqJ~1boJq+40%8$yCIA2c literal 0 HcmV?d00001 diff --git a/platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png b/platform/simulation/qcircuit_sim_files/figure-html/cell-9-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..72c085f6fa311236a503e171d329dc394da004a8 GIT binary patch literal 10559 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 + + + + + + + + +genQC - Printing functions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+ +
+
+

Printing functions

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

Advanced printing functions.

+
+

source

+
+

display_colums

+
+
 display_colums (display_list, num_col=3)
+
+
+
a = [torch.rand((3, 3))]*3
+a
+
+
[tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]]),
+ tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]]),
+ tensor([[0.6266, 0.3672, 0.3988],
+         [0.6061, 0.2596, 0.4855],
+         [0.3177, 0.8166, 0.3100]])]
+
+
+

v.s.

+
+
display_colums(a) # works only in notebook
+
+ +
+
+
+

source

+
+
+

ndarray_to_latex

+
+
 ndarray_to_latex (arr)
+
+

Returns a LaTeX {pmatrix*}[r] as a string

+
+

source

+
+
+

tensor_to_latex

+
+
 tensor_to_latex (tensor)
+
+

Returns a LaTeX {pmatrix*}[r] as a string

+
+
tex = tensor_to_latex(torch.full((3,3), 2))
+print(tex)
+
+
\begin{pmatrix*}[r]
+  2 & 2 & 2\\
+  2 & 2 & 2\\
+  2 & 2 & 2\\
+\end{pmatrix*}
+
+
+
+

source

+
+ + + + Back to top
+ + + +
+ + + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..878f065 --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +Sitemap: https://FlorianFuerrutter.github.io/genQC/sitemap.xml diff --git a/scheduler/scheduler.html b/scheduler/scheduler.html new file mode 100644 index 0000000..8d0e525 --- /dev/null +++ b/scheduler/scheduler.html @@ -0,0 +1,752 @@ + + + + + + + + + +genQC - Scheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Scheduler

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

Base class for schedulers.

+
+

source

+
+

Scheduler

+
+
 Scheduler ()
+
+

Base class for all diffusion schedulers

+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/scheduler/scheduler_ddim.html b/scheduler/scheduler_ddim.html new file mode 100644 index 0000000..fd9644c --- /dev/null +++ b/scheduler/scheduler_ddim.html @@ -0,0 +1,766 @@ + + + + + + + + + +genQC - DDIMScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

DDIMScheduler

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

Denoising diffusion implicit models (DDIM).

+
+

source

+
+

DDIMScheduler

+
+
 DDIMScheduler (device:Union[str,torch.device],
+                num_train_timesteps:int=1000, beta_start:float=0.0001,
+                beta_end:float=0.02, beta_schedule:str='linear',
+                input_perturbation=0.1, eta:float=0)
+
+

A Scheduler implementing (DDIM).

+
+

source

+
+
+

DDIMSchedulerOutput

+
+
 DDIMSchedulerOutput (prev_sample:torch.FloatTensor,
+                      pred_original_sample:Optional[torch.FloatTensor]=Non
+                      e)
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/scheduler/scheduler_ddpm.html b/scheduler/scheduler_ddpm.html new file mode 100644 index 0000000..65f67d5 --- /dev/null +++ b/scheduler/scheduler_ddpm.html @@ -0,0 +1,766 @@ + + + + + + + + + +genQC - DDPMScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

DDPMScheduler

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

Denoising diffusion probabilistic models (DDPM): reverse beta is fixed and diagonal.

+
+

source

+
+

DDPMScheduler

+
+
 DDPMScheduler (device:Union[str,torch.device],
+                num_train_timesteps:int=1000, beta_start:float=0.0001,
+                beta_end:float=0.02, beta_schedule:str='linear',
+                input_perturbation=0.1)
+
+

A Scheduler implementing (DDPM)

+
+

source

+
+
+

DDPMSchedulerOutput

+
+
 DDPMSchedulerOutput (prev_sample:torch.FloatTensor,
+                      pred_original_sample:Optional[torch.FloatTensor]=Non
+                      e)
+
+ + +
+ + Back to top
+ + +
+ + + + \ No newline at end of file diff --git a/search.json b/search.json new file mode 100644 index 0000000..c638a4e --- /dev/null +++ b/search.json @@ -0,0 +1,688 @@ +[ + { + "objectID": "models/frozen_open_clip.html", + "href": "models/frozen_open_clip.html", + "title": "Frozen OpenCLIP", + "section": "", + "text": "source\n\n\n\n FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,\n max_length:int, freeze:bool, layer:str)\n\n\nsource\n\n\n\n\n FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',\n device='cpu', max_length=77, freeze=True,\n layer='penultimate')\n\nLoads and freezes the OpenCLIP transformer encoder for text prompts.\n\na = FrozenOpenCLIPEmbedder()\n\n\np=\"[1, 2, 2]\"\na.tokenize_and_push_to_device(p)\n\ntensor([[49406, 314, 272, 267, 273, 267, 273, 316, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])\n\n\n\na.tokenize_and_push_to_device(\"\").shape\n\ntorch.Size([1, 77])\n\n\n\nc = a.tokenize_and_push_to_device([\"1,1,2\", \"2,2,2\"])\nenc = a(c)\nenc.shape, enc\n\n(torch.Size([2, 77, 1024]),\n tensor([[[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [ 0.0668, -1.2381, 0.9908, ..., 0.1785, 0.1592, -0.4320],\n [ 0.6988, -0.2168, -1.2912, ..., 2.1063, -0.0302, -0.5666],\n ...,\n [ 0.4703, -1.4072, -0.4847, ..., -0.1257, -0.1650, 0.1206],\n [ 0.5117, -1.3949, -0.4672, ..., -0.4288, -0.2166, 0.2904],\n [ 0.1480, -2.1998, -1.1187, ..., 0.0823, -0.4157, 0.6236]],\n \n [[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [-0.1180, -1.6322, 1.2987, ..., -0.1378, -0.1529, -0.3377],\n [-0.7251, -0.8167, -0.9966, ..., 2.2262, -0.2325, -0.0138],\n ...,\n [ 0.3887, -1.3395, -0.5868, ..., -0.1621, -0.0594, 0.1253],\n [ 0.4360, -1.3350, -0.5684, ..., -0.4643, -0.1131, 0.2847],\n [ 0.1691, -2.1725, -1.1441, ..., 0.0633, -0.3175, 0.7041]]]))\n\n\n\nopen_clip.decode(c[1])\n\n'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'" + }, + { + "objectID": "models/frozen_open_clip.html#clip-model", + "href": "models/frozen_open_clip.html#clip-model", + "title": "Frozen OpenCLIP", + "section": "", + "text": "source\n\n\n\n FrozenOpenCLIPEmbedder_config (arch:str, version:str, device:str,\n max_length:int, freeze:bool, layer:str)\n\n\nsource\n\n\n\n\n FrozenOpenCLIPEmbedder (arch='ViT-H-14', version='laion2b_s32b_b79k',\n device='cpu', max_length=77, freeze=True,\n layer='penultimate')\n\nLoads and freezes the OpenCLIP transformer encoder for text prompts.\n\na = FrozenOpenCLIPEmbedder()\n\n\np=\"[1, 2, 2]\"\na.tokenize_and_push_to_device(p)\n\ntensor([[49406, 314, 272, 267, 273, 267, 273, 316, 49407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])\n\n\n\na.tokenize_and_push_to_device(\"\").shape\n\ntorch.Size([1, 77])\n\n\n\nc = a.tokenize_and_push_to_device([\"1,1,2\", \"2,2,2\"])\nenc = a(c)\nenc.shape, enc\n\n(torch.Size([2, 77, 1024]),\n tensor([[[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [ 0.0668, -1.2381, 0.9908, ..., 0.1785, 0.1592, -0.4320],\n [ 0.6988, -0.2168, -1.2912, ..., 2.1063, -0.0302, -0.5666],\n ...,\n [ 0.4703, -1.4072, -0.4847, ..., -0.1257, -0.1650, 0.1206],\n [ 0.5117, -1.3949, -0.4672, ..., -0.4288, -0.2166, 0.2904],\n [ 0.1480, -2.1998, -1.1187, ..., 0.0823, -0.4157, 0.6236]],\n \n [[-0.3134, -0.4476, -0.0082, ..., 0.2542, -0.0324, -0.2960],\n [-0.1180, -1.6322, 1.2987, ..., -0.1378, -0.1529, -0.3377],\n [-0.7251, -0.8167, -0.9966, ..., 2.2262, -0.2325, -0.0138],\n ...,\n [ 0.3887, -1.3395, -0.5868, ..., -0.1621, -0.0594, 0.1253],\n [ 0.4360, -1.3350, -0.5684, ..., -0.4643, -0.1131, 0.2847],\n [ 0.1691, -2.1725, -1.1441, ..., 0.0633, -0.3175, 0.7041]]]))\n\n\n\nopen_clip.decode(c[1])\n\n'<start_of_text>2 , 2 , 2 <end_of_text>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'" + }, + { + "objectID": "models/frozen_open_clip.html#cached-model", + "href": "models/frozen_open_clip.html#cached-model", + "title": "Frozen OpenCLIP", + "section": "Cached model", + "text": "Cached model\nModel takes now also (batched) scalar int values that are defined to unique conditions like \\([1,2,2]=4\\). If input is now such int the output is the cached pre-embedded tensor. If a non int, like a token string is passed we just do the normal embedding live.\n\nsource\n\nCachedFrozenOpenCLIPEmbedder\n\n CachedFrozenOpenCLIPEmbedder (arch='ViT-H-14',\n version='laion2b_s32b_b79k', device='cpu',\n max_length=77, freeze=True,\n layer='penultimate')\n\nAdds caching support to FrozenOpenCLIPEmbedder.\n\na = CachedFrozenOpenCLIPEmbedder()\np = [\"1,1,2\", \"2,2,2\"]\n\na.generate_cache(p)\n\n\n\n\n[INFO]: caching trying to allocate memory (2, 77, 1024) on cpu approx. 0.001 GB\n\n\n\nc_cached = torch.tensor([0,0,1], device=a.device)\nc_uncached = a.tokenize_and_push_to_device([\"1,1,2\", \"1,1,2\", \"2,2,2\"])\n\nenc_cached = a(c_cached)\nenc_uncached = a(c_uncached)\n\nenc_cached.shape, enc_uncached.shape, torch.allclose(enc_cached, enc_uncached, atol=1e-5)\n\n(torch.Size([3, 77, 1024]), torch.Size([3, 77, 1024]), True)" + }, + { + "objectID": "models/unitary_encoder.html", + "href": "models/unitary_encoder.html", + "title": "Encoder for unitaries", + "section": "", + "text": "source\n\n\n\n Unitary_encoder_config (cond_emb_size:int, model_features:list[int],\n num_heads:int, transformer_depths:list[int],\n dropout:float)\n\n\nsource\n\n\n\n\n Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,\n transformer_depths=[4, 4], dropout=0.1)\n\nEncoder for unitary conditions." + }, + { + "objectID": "models/unitary_encoder.html#model-definition", + "href": "models/unitary_encoder.html#model-definition", + "title": "Encoder for unitaries", + "section": "", + "text": "source\n\n\n\n Unitary_encoder_config (cond_emb_size:int, model_features:list[int],\n num_heads:int, transformer_depths:list[int],\n dropout:float)\n\n\nsource\n\n\n\n\n Unitary_encoder (cond_emb_size, model_features=None, num_heads=8,\n transformer_depths=[4, 4], dropout=0.1)\n\nEncoder for unitary conditions." + }, + { + "objectID": "models/transformers.html", + "href": "models/transformers.html", + "title": "Transformers", + "section": "", + "text": "source\n\n\n\n BasisSelfAttnBlock (ch, num_heads, dropout=0)\n\nA self attention block, i.e. a transformer encoder.\n\nsource\n\n\n\n\n BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)\n\nA cross attention block, i.e. a transformer decoder." + }, + { + "objectID": "models/transformers.html#attention-blocks", + "href": "models/transformers.html#attention-blocks", + "title": "Transformers", + "section": "", + "text": "source\n\n\n\n BasisSelfAttnBlock (ch, num_heads, dropout=0)\n\nA self attention block, i.e. a transformer encoder.\n\nsource\n\n\n\n\n BasisCrossAttnBlock (ch, cond_emb_size, num_heads, dropout=0.0)\n\nA cross attention block, i.e. a transformer decoder." + }, + { + "objectID": "models/transformers.html#spatial-residual-transformers", + "href": "models/transformers.html#spatial-residual-transformers", + "title": "Transformers", + "section": "Spatial residual transformers", + "text": "Spatial residual transformers\n\nsource\n\nSpatialTransformerSelfAttn\n\n SpatialTransformerSelfAttn (ch, num_heads, depth, dropout=0.0)\n\nA spatial residual transformer, only uses self-attention.\n\nsource\n\n\nSpatialTransformer\n\n SpatialTransformer (ch, cond_emb_size, num_heads, depth, dropout=0.0)\n\nA spatial residual transformer, uses self- and cross-attention on conditional input." + }, + { + "objectID": "index.html", + "href": "index.html", + "title": "genQC · Generative Quantum Circuits", + "section": "", + "text": "Code repository for generating quantum circuits with diffusion models. [Paper] [Demo]" + }, + { + "objectID": "index.html#the-codebase", + "href": "index.html#the-codebase", + "title": "genQC · Generative Quantum Circuits", + "section": "The codebase", + "text": "The codebase\nAll weights and functions are contained within this repo. For the CLIP model weights we use the OpenCLIP library, which will download (and cache) the CLIP model on first usage of our pipeline. In case you prefer reading a documentation rather than notebooks or code see [Documentation].\nThe repo inlcudes:\n\nsaves/ the configs and weights of the pre-trained models.\ngenQC/ a full release of our used diffusion pipeline.\nsrc/examples examples how to reproduce some figures of the Paper.\nsrc/ the source notebooks for nbdev." + }, + { + "objectID": "index.html#examples", + "href": "index.html#examples", + "title": "genQC · Generative Quantum Circuits", + "section": "Examples", + "text": "Examples\n\nMinimal example\nA minimal example to generate a 5 qubit circuit conditioned on a SRV of \\([1,1,1,2,2]\\). You can try it out on your own with our demo [huggingface-space], no coding required.\n\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom genQC.inference.infer_srv import generate_srv_tensors, convert_tensors_to_srvs\n\nmodel_path = \"../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, \"cpu\") \npipeline.scheduler.set_timesteps(20) \n\nout_tensor = generate_srv_tensors(pipeline, \"Generate SRV: [1,1,1,2,2]\", samples=1, system_size=5, num_of_qubits=5, max_gates=16, g=7.5) \nqc_list, _, svr_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cpu.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cpu.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\n\nprint(f\"is SRV {svr_list[0]}\")\nqc_list[0].draw(\"mpl\", style=\"clifford\")\n\nis SRV [1, 1, 1, 2, 2]\n\n\n\n\n\n\n\nIncluded examples\nExample notebooks are provided in the directory src/examples/.\n\n0_hello_circuit [doc] [notebook]: How to sample a circuit (conditioned on a SRV)\n1_editing_and_masking [doc] [notebook]: Presents editing and masking of circuits\n2_unitary_compilation [doc] [notebook]: Compile unitaries and transpile circuits\n3_dataset_and_fineTune [doc] [notebook]: How to create a dataset and fine-tune a pre-trained model" + }, + { + "objectID": "index.html#installation", + "href": "index.html#installation", + "title": "genQC · Generative Quantum Circuits", + "section": "Installation", + "text": "Installation\nThe installation of genQC is done via pip within a few minutes, depending on your downloading speed.\n\n1. Clone the repository\ngit clone https://github.com/FlorianFuerrutter/genQC.git\ncd genQC\n\n\n2. Install genQC\nThis library is build using jupyter notebooks and nbdev. To install the library use in the clone directory:\npip install -e .\nNote, this will install missing requirements automatically. You may want to install some of them manually beforehand, e.g. pytorch for specific cuda support, see pytorch.org/get-started/locally.\nRequirements: genQC depends on python (min. version 3.9) and the librarys: torch, numpy, matplotlib, scipy, pandas, omegaconf, qiskit, tqdm, joblib, open_clip_torch, ipywidgets and pylatexenc. All can be installed with pip. In src/RELEASES.md [doc] and the release descriptions specific tested-on versions are listed.\n\n\n3. Run example\nYou can run the provided 0_hello_circuit [doc] [notebook] example to test your installation. On a computer with a moderate GPU this inference example notebook should run under half a minute." + }, + { + "objectID": "index.html#license", + "href": "index.html#license", + "title": "genQC · Generative Quantum Circuits", + "section": "License", + "text": "License\nThe code and weights in this repository are released under the MIT License." + }, + { + "objectID": "index.html#bibtex", + "href": "index.html#bibtex", + "title": "genQC · Generative Quantum Circuits", + "section": "BibTeX", + "text": "BibTeX\nWe kindly ask you to cite our paper if any of the previous material was useful for your work.\n@article{fuerrutter2023quantum,\n title={Quantum circuit synthesis with diffusion models}, \n author={Florian Fürrutter and Gorka Muñoz-Gil and Hans J. Briegel},\n year={2023},\n eprint={2311.02041},\n publisher = {arXiv},\n archivePrefix={arXiv},\n primaryClass={quant-ph},\n url = {https://arxiv.org/abs/2311.02041},\n doi = {/10.48550/arXiv.2311.02041},\n}" + }, + { + "objectID": "pipeline/diffusion_pipeline.html", + "href": "pipeline/diffusion_pipeline.html", + "title": "Diffusion Pipeline", + "section": "", + "text": "source\n\nDiffusionPipeline\n\n DiffusionPipeline (scheduler:genQC.scheduler.scheduler.Scheduler,\n model:torch.nn.modules.module.Module,\n text_encoder:torch.nn.modules.module.Module,\n device:torch.device, enable_guidance_train=True,\n guidance_train_p=0.1, cached_text_enc=True)\n\nA Pipeline for diffusion models. Implements train and inference functions. Diffusion parameters are defined inside a Scheduler object.\n\n\n\n\n Back to top" + }, + { + "objectID": "config_loader.html", + "href": "config_loader.html", + "title": "Config loader", + "section": "", + "text": "Code using omegaconf to handle IO." + }, + { + "objectID": "config_loader.html#io", + "href": "config_loader.html#io", + "title": "Config loader", + "section": "IO", + "text": "IO\n\nsource\n\nclass_to_str\n\n class_to_str (cls)\n\n\nsource\n\n\nload_config\n\n load_config (file_path)\n\n\nsource\n\n\nconfig_to_dict\n\n config_to_dict (config)\n\n\nsource\n\n\nsave_dataclass_yaml\n\n save_dataclass_yaml (data_obj, file_path)\n\n\nsource\n\n\nsave_dict_yaml\n\n save_dict_yaml (dict_obj, file_path)\n\nTest\n\n@dataclass\nclass MyConfig: \n target:str = class_to_str(OmegaConf)\n clr_dim: int = 80\n features: list[int]=None\n \nc = MyConfig()\nc.features = [1,2,3]\n\nOmegaConf.structured(c)\n\n{'target': 'omegaconf.omegaconf.OmegaConf', 'clr_dim': 80, 'features': [1, 2, 3]}" + }, + { + "objectID": "config_loader.html#object-config-load", + "href": "config_loader.html#object-config-load", + "title": "Config loader", + "section": "Object config load", + "text": "Object config load\nMostly taken from: https://github.com/Stability-AI/stablediffusion\n\nsource\n\nget_obj_from_str\n\n get_obj_from_str (string, reload=False)\n\n\nsource\n\n\ninstantiate_from_config\n\n instantiate_from_config (config)\n\n\nsource\n\n\nload_model_from_config\n\n load_model_from_config (config, ckpt, device)" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html", + "href": "platform/simulation/qcircuit_sim.html", + "title": "Qiskit: quantum circuit simulation", + "section": "", + "text": "source\n\n\n\n get_number_of_gate_params (gate_cls)\n\n\nsource\n\n\n\n\n gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])\n\nCreates a vocabulary from a gate pool.\n\nsource\n\n\n\n\n schmidt_rank_vector\n (densityMatrix:qiskit.quantum_info.states.densitymat\n rix.DensityMatrix)\n\nReturn the SRV of a qi.DensityMatrix.\n\nsource\n\n\n\n\n rnd_circuit (num_of_qubits, num_of_gates,\n gate_pool:list[qiskit.circuit.gate.Gate], rng)\n\nCreate a random circuit.\n\nsource\n\n\n\n\n optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool:list[qiskit.circuit.gate.Gate],\n optimization_level=2)\n\nUse qiskit.compiler.transpile to optimize a circuit.\n\ngs = [ql.HGate, ql.CXGate, ql.CRXGate]\nqc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Rand: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\nqc = optimize_circuit(qc, gs)\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Opti: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\n'Rand: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n\nsource\n\n\n\n\n plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,\n sort=False, opt=True, rng=Generator(PCG64) at\n 0x7FC59D9A7F20)\n\nSRV distrubtion for random sampling\n\n# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate] # approx universal set\n# gs = [ql.HGate, ql.CCXGate] # approx universal set\ngs = [ql.HGate, ql.CXGate]\n\nplot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3), rng=np.random.default_rng())\n\n[1, 1, 1]: 58.2%\n[2, 2, 1]: 11.5%\n[2, 2, 2]: 11.3%\n[1, 2, 2]: 9.6%\n[2, 1, 2]: 9.4%" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html#circuit", + "href": "platform/simulation/qcircuit_sim.html#circuit", + "title": "Qiskit: quantum circuit simulation", + "section": "", + "text": "source\n\n\n\n get_number_of_gate_params (gate_cls)\n\n\nsource\n\n\n\n\n gate_pool_to_gate_classes (gate_pool:list[qiskit.circuit.gate.Gate])\n\nCreates a vocabulary from a gate pool.\n\nsource\n\n\n\n\n schmidt_rank_vector\n (densityMatrix:qiskit.quantum_info.states.densitymat\n rix.DensityMatrix)\n\nReturn the SRV of a qi.DensityMatrix.\n\nsource\n\n\n\n\n rnd_circuit (num_of_qubits, num_of_gates,\n gate_pool:list[qiskit.circuit.gate.Gate], rng)\n\nCreate a random circuit.\n\nsource\n\n\n\n\n optimize_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool:list[qiskit.circuit.gate.Gate],\n optimization_level=2)\n\nUse qiskit.compiler.transpile to optimize a circuit.\n\ngs = [ql.HGate, ql.CXGate, ql.CRXGate]\nqc = rnd_circuit(num_of_qubits=3, num_of_gates=8, gate_pool=gs, rng=np.random.default_rng())\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Rand: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\nqc = optimize_circuit(qc, gs)\nsvr = schmidt_rank_vector(qi.DensityMatrix(qc))\ndisplay(f\"Opti: svr={svr} num_gates={len(qc.data)}\", qc.draw('mpl'))\n\n'Rand: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\n\n\nsource\n\n\n\n\n plot_svr_stat (num_of_qubits, min_gates, max_gates, gs, samples,\n sort=False, opt=True, rng=Generator(PCG64) at\n 0x7FC59D9A7F20)\n\nSRV distrubtion for random sampling\n\n# gs = [ql.HGate, ql.SGate, ql.TGate, ql.CXGate] # approx universal set\n# gs = [ql.HGate, ql.CCXGate] # approx universal set\ngs = [ql.HGate, ql.CXGate]\n\nplot_svr_stat(num_of_qubits=3, min_gates=6, max_gates=8, gs=gs, samples=int(1e3), rng=np.random.default_rng())\n\n[1, 1, 1]: 58.2%\n[2, 2, 1]: 11.5%\n[2, 2, 2]: 11.3%\n[1, 2, 2]: 9.6%\n[2, 1, 2]: 9.4%" + }, + { + "objectID": "platform/simulation/qcircuit_sim.html#svr-test-cases", + "href": "platform/simulation/qcircuit_sim.html#svr-test-cases", + "title": "Qiskit: quantum circuit simulation", + "section": "SVR Test cases", + "text": "SVR Test cases\n\ndef test_srv(system_dims, init, target):\n vec = qi.Statevector(init, dims=system_dims)\n vec *= 1/np.sqrt(vec.trace())\n srv = schmidt_rank_vector(qi.DensityMatrix(vec)) \n assert srv == target, f\"srv: {srv}\"\n print(f\"passed test, svr: {srv}\")\n display(vec.draw('latex', prefix='|\\\\psi\\\\rangle = '))\n\n\n#---------------- |0+> = |00>+|01>\nsystem_dims = (2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[1] = 1\ntest_srv(system_dims, init, [1, 1])\n\n#----------------Bell, |00>+|11>\nsystem_dims = (2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[3] = 1\ntest_srv(system_dims, init, [2, 2])\n \n#----------------GHZ, |000>+|111>\nsystem_dims = (2,2,2)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[7] = 1\ntest_srv(system_dims, init, [2,2,2])\n \n#----------------Sym, |000>+|111>+|222>\nsystem_dims = (3,3,3)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[13] = 1\ninit[26] = 1\ntest_srv(system_dims, init, [3,3,3])\n \n#----------------Wikipedia example, |000>+|101>+|210>+|311>\nsystem_dims = (4,4,4)\ninit = np.zeros(np.prod(system_dims), dtype=complex)\ninit[0] = 1\ninit[17] = 1\ninit[36] = 1\ninit[53] = 1\ntest_srv(system_dims, init, [2, 2, 4])\n\npassed test, svr: [1, 1]\npassed test, svr: [2, 2]\npassed test, svr: [2, 2, 2]\npassed test, svr: [3, 3, 3]\npassed test, svr: [2, 2, 4]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |00\\rangle+\\frac{\\sqrt{2}}{2} |01\\rangle\\]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |00\\rangle+\\frac{\\sqrt{2}}{2} |11\\rangle\\]\n\n\n\\[|\\psi\\rangle = \\frac{\\sqrt{2}}{2} |000\\rangle+\\frac{\\sqrt{2}}{2} |111\\rangle\\]\n\n\n$$\\[\\begin{align}\n\n|\\psi\\rangle =\n\\begin{bmatrix}\n\\frac{\\sqrt{3}}{3} & 0 & 0 & 0 & \\cdots & 0 & 0 & \\frac{\\sqrt{3}}{3} \\\\\n\\end{bmatrix}\n\\\\\n\\text{dims=(3, 3, 3)}\n\\end{align}\\]$$\n\n\n$$\\[\\begin{align}\n\n|\\psi\\rangle =\n\\begin{bmatrix}\n\\frac{1}{2} & 0 & 0 & 0 & \\cdots & 0 & 0 & 0 \\\\\n\\end{bmatrix}\n\\\\\n\\text{dims=(4, 4, 4)}\n\\end{align}\\]$$" + }, + { + "objectID": "platform/qcircuit_dataset_construction.html", + "href": "platform/qcircuit_dataset_construction.html", + "title": "Quantum circuit dataset construction", + "section": "", + "text": "Functions to construct a dataset. Here we define the tokenization (encoding and decoding)." + }, + { + "objectID": "platform/qcircuit_dataset_construction.html#tokenizer-encoding-and-decoding", + "href": "platform/qcircuit_dataset_construction.html#tokenizer-encoding-and-decoding", + "title": "Quantum circuit dataset construction", + "section": "Tokenizer: encoding and decoding", + "text": "Tokenizer: encoding and decoding\n\nsource\n\nget_target_control_qubits\n\n get_target_control_qubits\n (qc:qiskit.circuit.quantumcircuit.QuantumCircu\n it, gate:qiskit.circuit.gate.Gate)\n\n\nsource\n\n\nencode_circuit\n\n encode_circuit (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n num_of_qubits, gate_classes:dict, max_gates:int,\n sign_labels={'control_qubits': -1, 'target_qubits': 1},\n return_params=False)\n\n\nsource\n\n\ndecode_circuit\n\n decode_circuit (enc_tensor:torch.Tensor,\n gate_pool:list[qiskit.circuit.gate.Gate],\n place_barrier=True, sign_labels={'control_qubits': -1,\n 'target_qubits': 1}, params_tensor=None)" + }, + { + "objectID": "platform/qcircuit_dataset_construction.html#dataset-generation", + "href": "platform/qcircuit_dataset_construction.html#dataset-generation", + "title": "Quantum circuit dataset construction", + "section": "Dataset generation", + "text": "Dataset generation\n\nTotally random SRV circuits\n\nsource\n\n\nget_rnd_encoded_circuit\n\n get_rnd_encoded_circuit (num_of_qubits, min_gates, max_gates, gate_pool,\n gate_classes, rng, optimized=True,\n return_params=False)\n\n\nsource\n\n\nget_rnd_encoded_circuits\n\n get_rnd_encoded_circuits (samples, num_of_qubits=3, min_gates=3,\n max_gates=10, gate_pool=[<class 'qiskit.circuit\n .library.standard_gates.h.HGate'>, <class 'qisk\n it.circuit.library.standard_gates.x.CXGate'>],\n optimized=True, silent=False,\n return_params=False)\n\n\ngate_pool=[ql.HGate, ql.CXGate, ql.CU3Gate, ql.CRXGate]\n\nprint(\"Encode:\")\nenc_t, y, params = get_rnd_encoded_circuits(samples=1, num_of_qubits=3, min_gates=6, max_gates=6, gate_pool=gate_pool, optimized=True, return_params=True)\n\nfor enc_i, y_i, params_i in zip(enc_t, y, params):\n print(f\"{enc_i=}\")\n print(f\"{y_i=}\")\n print(f\"{params_i=}\")\n\nprint(\"Decode:\")\nqc = decode_circuit(enc_t[0], gate_pool=gate_pool, params_tensor=params[0])\ndisplay(qc.draw(\"mpl\"))\n\nEncode:\nenc_i=tensor([[-2, 0, -2, 3, 3, 0],\n [ 2, 1, 2, -3, -3, 0],\n [ 0, 0, 0, 0, 0, 1]], dtype=torch.int32)\ny_i=[2, 2, 1]\nparams_i=tensor([[0.0000, 0.0000, 0.0000, 2.2710, 4.8585, 0.0000],\n [0.0000, 0.0000, 0.0000, 0.0304, 1.1044, 0.0000],\n [0.0000, 0.0000, 0.0000, 3.0486, 4.9504, 0.0000]])\nDecode:\n\n\n\n\n\n\n\n\n\nsource\n\n\ngen_qc_dataset\n\n gen_qc_dataset (samples, num_of_qubits, min_gates, max_gates, gate_pool,\n optimized, silent=False)\n\n\n\nSpecific random SRV circuit\n\nsource\n\n\nget_specific_rnd_srv_circuit\n\n get_specific_rnd_srv_circuit (srv, requested_length, gate_pool,\n max_i=2000, silent=True,\n fix_length_after_optimizing=True,\n requested_length_tolerance=0)\n\n\n\nUnitary dataset\n\nsource\n\n\ngen_compilation_rndGates_dataset\n\n gen_compilation_rndGates_dataset (samples, num_of_qubits, min_gates,\n max_gates, gate_pool,\n min_sub_gate_pool_cnt=1, silent=False)\n\nSamples rnd circuit with a rnd subset of gates and return qc with gate label and unitary\n\ngate_pool=[ql.HGate, ql.CXGate, ql.ZGate, ql.XGate, ql.CCXGate]\n\nenc_t, y, U = gen_compilation_rndGates_dataset(samples=1, num_of_qubits=3, min_gates=3, max_gates=4, gate_pool=gate_pool)\n\nnp.set_printoptions(edgeitems=30, linewidth=100000, formatter=dict(float=lambda x: \"%.3g\" % x))\n\nprint(f\"\\ny Label >>> {y[0]} <<<\")\nprint(f\"\\n{enc_t[0]}\")\nprint(f\"\\n{U[0]}\")\nprint(\"\\nDecoded:\")\nqc = decode_circuit(enc_t[0], gate_pool=gate_pool)\ndisplay(qc.draw(\"mpl\"))\n\n\n\n\ngenerated unique circuits: 1\n\ny Label >>> Compile using: ['x'] <<<\n\ntensor([[0, 0, 0, 0],\n [4, 0, 0, 0],\n [0, 4, 4, 4]], dtype=torch.int32)\n\n[[0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]\n\nDecoded:\n\n\n\n\n\n\n\nGraph states dataset\n\n#place all h on all bist then only cz" + }, + { + "objectID": "metrics.html", + "href": "metrics.html", + "title": "Metrics", + "section": "", + "text": "Definition of metrics used during training.\n\nsource\n\nMetric\n\n Metric (name:str, device)\n\nBase metric class.\n\nsource\n\n\nMean\n\n Mean (name:str, device)\n\nMean metric, used for loss ..\n\nsource\n\n\nAccuracy\n\n Accuracy (name:str, device)\n\nAccuracy metric.\nExample usage:\n\na = Accuracy(\"mean\", \"cpu\")\nprint(a, a.empty)\n\na.update_state(torch.Tensor([3,2,2,1]), torch.Tensor([1,2,2,1]))\nprint(a, a.empty)\n\na.update_state(torch.Tensor([1,2,2,3]), torch.Tensor([1,2,2,3]))\nprint(a, a.empty)\n\na.reset_state()\nprint(a, a.empty)\n\nmean=nan True\nmean=0.75 False\nmean=0.875 False\nmean=nan True\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "scheduler/scheduler_ddpm.html", + "href": "scheduler/scheduler_ddpm.html", + "title": "DDPMScheduler", + "section": "", + "text": "Denoising diffusion probabilistic models (DDPM): reverse beta is fixed and diagonal.\n\nsource\n\nDDPMScheduler\n\n DDPMScheduler (device:Union[str,torch.device],\n num_train_timesteps:int=1000, beta_start:float=0.0001,\n beta_end:float=0.02, beta_schedule:str='linear',\n input_perturbation=0.1)\n\nA Scheduler implementing (DDPM)\n\nsource\n\n\nDDPMSchedulerOutput\n\n DDPMSchedulerOutput (prev_sample:torch.FloatTensor,\n pred_original_sample:Optional[torch.FloatTensor]=Non\n e)\n\n\n\n\n\n Back to top" + }, + { + "objectID": "scheduler/scheduler_ddim.html", + "href": "scheduler/scheduler_ddim.html", + "title": "DDIMScheduler", + "section": "", + "text": "Denoising diffusion implicit models (DDIM).\n\nsource\n\nDDIMScheduler\n\n DDIMScheduler (device:Union[str,torch.device],\n num_train_timesteps:int=1000, beta_start:float=0.0001,\n beta_end:float=0.02, beta_schedule:str='linear',\n input_perturbation=0.1, eta:float=0)\n\nA Scheduler implementing (DDIM).\n\nsource\n\n\nDDIMSchedulerOutput\n\n DDIMSchedulerOutput (prev_sample:torch.FloatTensor,\n pred_original_sample:Optional[torch.FloatTensor]=Non\n e)\n\n\n\n\n\n Back to top" + }, + { + "objectID": "RELEASES.html", + "href": "RELEASES.html", + "title": "Arxiv submission release - 07.12.2023", + "section": "", + "text": "Arxiv submission release - 07.12.2023\n\nDescription:\nFirst release of the codebase accompanying the paper Quantum circuit synthesis with diffusion models.\nIncluded are the configs and weights of the pre-trained models used in the paper, genQC our diffusion pipeline and example notebooks.\n\n\nTested on:\nRelease is tested on the specific versions:\n\nWindows 10 with cuda 12.1\nnbdev==2.3.12 (for notebook development)\npython 3.11\n\nLibs:\ntorch==2.1.1+cu121\nnumpy==1.26.2\nmatplotlib==3.8.2\nscipy==1.11.4\npandas==2.1.3\nomegaconf==2.3.0\nqiskit==0.45.1\ntqdm==4.66.1\njoblib==1.3.2\nopen-clip-torch==2.23.0\nipywidgets==8.0.4\npylatexenc==2.10\n\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/cached_qc_dataset.html", + "href": "dataset/cached_qc_dataset.html", + "title": "Cached quantum circuit dataset", + "section": "", + "text": "Quantum circuit dataset that caches the y prompts using the CLIP encoder. This speeds up training significantly!\n\nsource\n\nCached_OpenClip_Dataset\n\n Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),\n **parameters)\n\nAdds .caching to the Quantum circuit dataset class.\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/config_dataset.html", + "href": "dataset/config_dataset.html", + "title": "Config dataset", + "section": "", + "text": "source\n\nConfig_Dataset_config\n\n Config_Dataset_config (store_dict:dict)\n\nConfig dataclass used for storage.\n\nsource\n\n\nConfig_Dataset\n\n Config_Dataset (device:torch.device=device(type='cpu'), **parameters)\n\nBase class for datasets, manages loading and saving.\n\n\n\n\n Back to top" + }, + { + "objectID": "examples/unitary_compilation.html", + "href": "examples/unitary_compilation.html", + "title": "Compile unitaries", + "section": "", + "text": "In this notebook we want use the unitary compilation model.\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom qiskit import QuantumCircuit\nfrom genQC.inference.infer_compilation import generate_comp_tensors, get_gate_and_U_acc\nfrom genQC.printing import display_colums\nimport genQC.platform.qcircuit_dataset_construction as data_const\nimport qiskit.quantum_info as qi\nimport genQC.util as util\nimport ast\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\ndef str_cond_to_gate_indices(y): # helper function, used to check if only allowed gates were used by the model!\n assert y[:15] == \"Compile using: \"\n c = ast.literal_eval(y[15:]) \n gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)\n gate_clrs = [0] + [gate_classes[ic] for ic in c] # 0 is empty, always allowed!\n return gate_clrs" + }, + { + "objectID": "examples/unitary_compilation.html#setup-and-load", + "href": "examples/unitary_compilation.html#setup-and-load", + "title": "Compile unitaries", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_Compilation_3_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Compilation_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(20) \ng = 7.5\n\nThe model was trained with a gate pool of:\n\npipeline.gate_pool\n\n[qiskit.circuit.library.standard_gates.h.HGate,\n qiskit.circuit.library.standard_gates.x.CXGate,\n qiskit.circuit.library.standard_gates.z.ZGate,\n qiskit.circuit.library.standard_gates.x.XGate,\n qiskit.circuit.library.standard_gates.x.CCXGate,\n qiskit.circuit.library.standard_gates.swap.SwapGate]" + }, + { + "objectID": "examples/unitary_compilation.html#compile-a-unitary", + "href": "examples/unitary_compilation.html#compile-a-unitary", + "title": "Compile unitaries", + "section": "Compile a unitary", + "text": "Compile a unitary\nCompile a given unitary \\(U\\). Note, there has to be a solution with the pipeline.gate_pool in order to find the exact solution.\n\ndef compile_and_plot(U, prompt):\n U_r, U_i = torch.Tensor(np.real(U)), torch.Tensor(np.imag(U))\n U_tensor = torch.stack([U_r, U_i], dim=0)\n \n out_tensor = generate_comp_tensors(pipeline, prompt, U_tensor, samples, num_of_qubits, num_of_qubits, max_gates, g, unique=True)\n _, _, _, _, _, comb_corr_qc, _, _, _ = get_gate_and_U_acc(out_tensor, str_cond_to_gate_indices(prompt), U_tensor, pipeline.gate_pool, num_of_qubits, max_gates)\n comb_corr_qc = sorted(comb_corr_qc, key=lambda x: len(x.data)) #sort to get the shortest solutions\n\n fig, axs = plt.subplots(1,4, figsize=(18,5), constrained_layout=True)\n axs[0].set_title(f\"{prompt}\")\n for qc,ax in zip(comb_corr_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\n plt.show()\n\n\nsamples = 512\nnum_of_qubits = 3\nmax_gates = 12\n\n\nprompt = \"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\" # model was trained with phrases like this, allow full gate set\nprompt\n\n\"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\"\n\n\n\nExercise 1\nInspired from (quantumcomputing.stackexchange.com/questions/13821/generate-a-3-qubit-swap-unitary-in-terms-of-elementary-gates/13826). Note, this unitary WAS in the training set.\n\nU = np.matrix([[1,0,0,0,0,0,0,0],\n [0,1,0,0,0,0,0,0],\n [0,0,1,0,0,0,0,0],\n [0,0,0,0,1,0,0,0],\n [0,0,0,1,0,0,0,0],\n [0,0,0,0,0,1,0,0],\n [0,0,0,0,0,0,1,0],\n [0,0,0,0,0,0,0,1]], dtype=np.complex128) \n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)\n\n\n\n\n\n\nExercise 2\nInspired from (quantumcomputing.stackexchange.com/questions/12439/procedures-and-intuition-for-designing-simple-quantum-circuits/12440). Note, this unitary WAS in the training set.\n\nU = np.matrix([[1,0,0,0,0,0,0,0],\n [0,0,0,0,0,0,0,1],\n [0,1,0,0,0,0,0,0],\n [0,0,1,0,0,0,0,0],\n [0,0,0,1,0,0,0,0],\n [0,0,0,0,1,0,0,0],\n [0,0,0,0,0,1,0,0],\n [0,0,0,0,0,0,1,0]], dtype=np.complex128) \n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)\n\n\n\n\n\n\nExercise 3\nA randomly generated unitary (from a random circuit). This unitary WAS NOT in the training set, it is new to the model!\n\nU = np.matrix([[ 0.70710678, 0. , 0. , 0. , 0.70710678, 0. , 0. , 0. ],\n [ 0. , -0.70710678, 0. , 0. , 0. , -0.70710678, 0. , 0. ],\n [-0.70710678, 0. , 0. , 0. , 0.70710678, 0. , 0. , 0. ],\n [ 0. , 0.70710678, 0. , 0. , 0. , -0.70710678, 0. , 0. ],\n [ 0. , 0. , 0.70710678, 0. , 0. , 0. , 0. , 0.70710678],\n [ 0. , 0. , 0. , 0.70710678, 0. , 0. , 0.70710678, 0. ],\n [ 0. , 0. , -0.70710678, 0. , 0. , 0. , 0. , 0.70710678],\n [ 0. , 0. , 0. ,-0.70710678, 0. , 0. , 0.70710678, 0. ]], dtype=np.complex128)\n\nassert np.allclose(U.H@U, np.identity(2**num_of_qubits)) and np.allclose(U@U.H, np.identity(2**num_of_qubits)) #check if unitary\n\nPlot correct (exact) compiled circuits:\n\ncompile_and_plot(U, prompt)" + }, + { + "objectID": "examples/unitary_compilation.html#transpile-and-discover", + "href": "examples/unitary_compilation.html#transpile-and-discover", + "title": "Compile unitaries", + "section": "Transpile and discover", + "text": "Transpile and discover\nSet an initial circuit we want to transpile, optimize or use for discovering sub-arrangements:\n\nqc = QuantumCircuit(3)\nqc.h(2)\nqc.cx(0,1)\nqc.cx(2,1)\nqc.h(1)\nqc.x(1)\nqc.h(1)\nqc.x(2)\n\nU = qi.Operator(qc).to_matrix() # the unitary of the circuit\n\n#-----------------------------------------\n\nfig = qc.draw(\"mpl\")\nfig\n\n\n\n\nWe set different gate pool targets to see what the model gives us:\n\ncs_1 = f\"Compile using: {[x().name for x in pipeline.gate_pool]}\", \"all\"\n\ncs_2 = \"Compile using: ['h', 'cx', 'z', 'ccx']\" , \"no x, no swap\" \ncs_3 = \"Compile using: ['h', 'cx', 'x', 'ccx']\" , \"no z, no swap\" \ncs_4 = \"Compile using: ['h', 'x', 'ccx']\" , \"no cx, no z, no swap\" \ncs_5 = \"Compile using: ['h', 'z', 'x', 'ccx']\" , \"no cx, no swap\" \n\ncs = [cs_1, cs_2, cs_3, cs_4, cs_5]\ncs\n\n[(\"Compile using: ['h', 'cx', 'z', 'x', 'ccx', 'swap']\", 'all'),\n (\"Compile using: ['h', 'cx', 'z', 'ccx']\", 'no x, no swap'),\n (\"Compile using: ['h', 'cx', 'x', 'ccx']\", 'no z, no swap'),\n (\"Compile using: ['h', 'x', 'ccx']\", 'no cx, no z, no swap'),\n (\"Compile using: ['h', 'z', 'x', 'ccx']\", 'no cx, no swap')]\n\n\n\nsamples = 512\nnum_of_qubits = 3\nmax_gates = 12\n\nCompile with the different gate-sets and plot correct (exact) compiled circuits. Note, some of the circuits might look the same but the gate time-sequences are distinct. Qiskit reorders “parallel” gates to make smaller plots.\n\nfor c, note in cs: compile_and_plot(U, c)" + }, + { + "objectID": "examples/hello_circuit.html", + "href": "examples/hello_circuit.html", + "title": "Generate a circuit", + "section": "", + "text": "A minimal example to generate a circuit. We load a pre-trained (SRV, 3 to 8 qubit) model and condition on a given Schmidt-Rank-Vector (SRV).\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nimport genQC.inference.infer_srv as infer_srv\nimport genQC.util as util\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\ndevice\n\ndevice(type='cuda')" + }, + { + "objectID": "examples/hello_circuit.html#setup-and-load", + "href": "examples/hello_circuit.html#setup-and-load", + "title": "Generate a circuit", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nCheck on what gates the model was trained\n\npipeline.gate_pool\n\n[qiskit.circuit.library.standard_gates.h.HGate,\n qiskit.circuit.library.standard_gates.x.CXGate]\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(20)" + }, + { + "objectID": "examples/hello_circuit.html#inference-sampling", + "href": "examples/hello_circuit.html#inference-sampling", + "title": "Generate a circuit", + "section": "Inference / sampling", + "text": "Inference / sampling\nSet our desired condition SRV\n\nsrv = [2, 1, 2, 1, 2] # set your target SRV; can be 3 to 8 qubit\nnum_of_qubits = len(srv) \n\nprompt = f\"Generate SRV: {srv}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 1, 2, 1, 2]'\n\n\nDefine sample parameters\n\ng = 7.5 # guidance scale\nmax_gates = 16 # how many time steps the tensor encoding has\nsamples = 64 # how many circuits to generate\n\nSample tokenized circuits\n\nout_tensor = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False)\n\n\n\n\n[INFO]: (generate_srv_tensors) Generated 64 tensors\n\n\nCheck how many distinct tensors we got:\n\nout_tensor.unique(dim=0).shape[0]\n\n64\n\n\nLet’s look what is generated. Note, 3 is the padding token (or empty action).\n\nout_tensor[:2]\n\ntensor([[[ 0, 2, 0, 2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 2, -2, 1, -2, -2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [-2, 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]],\n\n [[ 0, 0, 0, 2, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 1, -2, 1, -2, 1, 0, -2, 0, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 2, 0, 0, 0, 1, 2, 1, 3, 3, 3, 3, 3, 3, 3, 3]]])" + }, + { + "objectID": "examples/hello_circuit.html#convert-to-qiskit-circuit", + "href": "examples/hello_circuit.html#convert-to-qiskit-circuit", + "title": "Generate a circuit", + "section": "Convert to qiskit circuit", + "text": "Convert to qiskit circuit\nTo get a qiskit circuit we need to do:\n\napply cosine similarity to go from embeddings to token matrices (the function infer_srv.generate_srv_tensors did this already)\nparse token matrix to qiskit and filter out error circuits\ncalculate SRV and plot circuits\n\n\nqc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool)\n\nGenerated error circuits (token matrices that don’t correspond to circuits):\n\nerror_cnt\n\n0\n\n\nWhat SRVs did we get:\n\nsrv_list[:4]\n\n[[2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2], [2, 1, 2, 1, 2]]\n\n\nThat is an accuracy of:\n\nsum(srv==x for x in srv_list)/len(srv_list)\n\n0.921875\n\n\nFinally plot some of the circuits:\n\nfig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)\nfor qc,is_svr,ax in zip(qc_list, srv_list, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax, style = \"clifford\")\n ax.set_title(f\"{'Correct' if is_svr==srv else 'NOT correct'}, is SRV = {is_svr}\")\nplt.show()" + }, + { + "objectID": "inference/infer_srv.html", + "href": "inference/infer_srv.html", + "title": "Inference SRV functions", + "section": "", + "text": "source\n\n\n\n get_all_srvs (num_of_qubits)\n\n\nsource\n\n\n\n\n generate_srv_tensors (pipeline, prompt, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_srv.html#generation", + "href": "inference/infer_srv.html#generation", + "title": "Inference SRV functions", + "section": "", + "text": "source\n\n\n\n get_all_srvs (num_of_qubits)\n\n\nsource\n\n\n\n\n generate_srv_tensors (pipeline, prompt, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_srv.html#convertion", + "href": "inference/infer_srv.html#convertion", + "title": "Inference SRV functions", + "section": "Convertion", + "text": "Convertion\n\nsource\n\nconvert_tensors_to_srvs\n\n convert_tensors_to_srvs (out_tensor, gate_pool, sort_srv=False,\n place_barrier=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_srv.html#accuracy", + "href": "inference/infer_srv.html#accuracy", + "title": "Inference SRV functions", + "section": "Accuracy", + "text": "Accuracy\n\nsource\n\nget_srv_accuracy\n\n get_srv_accuracy (srv_list, target_srv)" + }, + { + "objectID": "inference/infer_srv.html#tests", + "href": "inference/infer_srv.html#tests", + "title": "Inference SRV functions", + "section": "Tests", + "text": "Tests\n\nsource\n\ntrue_sample_bin_dist\n\n true_sample_bin_dist (samples_per_bin, bin_size)\n\n\nsource\n\n\ntest_srv_clr_distribution_bin_samples\n\n test_srv_clr_distribution_bin_samples (pipeline, samples_per_bin,\n system_size, num_of_qubits,\n max_gates, g, gate_pool,\n silent=False, device='cpu',\n U=None, prompt_mod:<built-\n infunctioncallable>=<function\n <lambda>>, only_diag=False,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_clr_distribution\n\n test_srv_clr_distribution (pipeline, samples_per_srv, system_size,\n num_of_qubits, max_gates, g, gate_pool,\n silent=False, device='cpu', U=None,\n prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n dist_srvs=None, cond_srvs=None,\n only_diag=False, n_jobs=1)\n\n\nsource\n\n\ntest_guidance_dep\n\n test_guidance_dep (pipeline, srvs, samples, system_size, num_of_qubits,\n max_gates, gs, gate_pool, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>, U=None,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_acc_vs_length\n\n test_srv_acc_vs_length (pipeline, samples, system_size, num_of_qubits,\n max_gates, g, gate_pool, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>, U=None,\n n_jobs=1)\n\n\nsource\n\n\ntest_srv_acc_vs_maxLength\n\n test_srv_acc_vs_maxLength (pipeline, samples_per_bin, system_size,\n num_of_qubits, max_gates_list, g, gate_pool,\n prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n U=None, n_jobs=1)\n\n\nsource\n\n\ntest_srv_length_distribution\n\n test_srv_length_distribution (pipeline, samples_per_bin, system_size,\n num_of_qubits, max_gates, g, gate_pool,\n silent=False, U=None, prompt_mod:<built-\n infunctioncallable>=<function <lambda>>,\n n_jobs=1)" + }, + { + "objectID": "inference/infer_srv.html#plot", + "href": "inference/infer_srv.html#plot", + "title": "Inference SRV functions", + "section": "Plot", + "text": "Plot\n\nsource\n\nplot_srv_clr_distribution_hist\n\n plot_srv_clr_distribution_hist (values, samples, num_of_qubits,\n save=False, dist_srvs=None,\n cond_srvs=None)\n\n\nsource\n\n\nplot_srv_clr_distribution_bin_accuracy\n\n plot_srv_clr_distribution_bin_accuracy (values, samples, num_of_qubits,\n save=False,\n plot_percentages=False,\n trainSet_srv=None)\n\n\nsource\n\n\nplot_guidance_dep\n\n plot_guidance_dep (srvs, gs, guidance_dep_out, samples, save=False)\n\n\nsource\n\n\nplot_srv_acc_vs_length\n\n plot_srv_acc_vs_length (ent_ls, ent_accs, ent_cnts, ent_labels, samples,\n plot_dist=True, save=False)\n\n\nsource\n\n\nplot_srv_acc_vs_maxLength\n\n plot_srv_acc_vs_maxLength (ent_accs, ent_labels, max_gates_list, samples,\n plot_dist=True, save=False)" + }, + { + "objectID": "inference/infer_misc.html", + "href": "inference/infer_misc.html", + "title": "Inference miscellaneous functions", + "section": "", + "text": "source\n\n\n\n get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)" + }, + { + "objectID": "inference/infer_misc.html#misc", + "href": "inference/infer_misc.html#misc", + "title": "Inference miscellaneous functions", + "section": "", + "text": "source\n\n\n\n get_rnd_gatepool_subset (gate_pool, min_sub_gate_pool_cnt=2)" + }, + { + "objectID": "inference/infer_misc.html#convertion", + "href": "inference/infer_misc.html#convertion", + "title": "Inference miscellaneous functions", + "section": "Convertion", + "text": "Convertion\n\nsource\n\nconvert_tensors_to_circuits\n\n convert_tensors_to_circuits (out_tensor, gate_pool, params_tensor=None,\n place_barrier=False)" + }, + { + "objectID": "inference/infer_compilation.html", + "href": "inference/infer_compilation.html", + "title": "Inference compilation functions", + "section": "", + "text": "source\n\n\n\n split_U_to_tensor (U:numpy.ndarray)\n\n\nsource\n\n\n\n\n get_new_unitary_indices (Us, dataset, silent=False)\n\n\nsource\n\n\n\n\n get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,\n silent=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_compilation.html#misc", + "href": "inference/infer_compilation.html#misc", + "title": "Inference compilation functions", + "section": "", + "text": "source\n\n\n\n split_U_to_tensor (U:numpy.ndarray)\n\n\nsource\n\n\n\n\n get_new_unitary_indices (Us, dataset, silent=False)\n\n\nsource\n\n\n\n\n get_new_unitary_indices_batch (Us, dataset, auto_batch_size=32,\n silent=False, n_jobs=1)" + }, + { + "objectID": "inference/infer_compilation.html#generation", + "href": "inference/infer_compilation.html#generation", + "title": "Inference compilation functions", + "section": "Generation", + "text": "Generation\n\nsource\n\ngenerate_comp_tensors\n\n generate_comp_tensors (pipeline, prompt, U, samples, system_size,\n num_of_qubits, max_gates, g, no_bar=True,\n unique=False, auto_batch_size=512)" + }, + { + "objectID": "inference/infer_compilation.html#accuracy", + "href": "inference/infer_compilation.html#accuracy", + "title": "Inference compilation functions", + "section": "Accuracy", + "text": "Accuracy\n\nsource\n\ncheck_correct_gates\n\n check_correct_gates (qc, num_of_qubits, gate_pool, max_gates,\n allowed_gate_clrs)\n\n\nsource\n\n\ncheck_correct_unitary_exact\n\n check_correct_unitary_exact (qc, U)\n\n\nsource\n\n\ncheck_correct_unitary_distance\n\n check_correct_unitary_distance (qc, target_U, norms)\n\n\nsource\n\n\nget_gate_and_U_acc\n\n get_gate_and_U_acc (out_tensor, allowed_gate_clrs, U, gate_pool,\n num_of_qubits, max_gates, norms=[], no_bar=True)" + }, + { + "objectID": "inference/infer_compilation.html#tests", + "href": "inference/infer_compilation.html#tests", + "title": "Inference compilation functions", + "section": "Tests", + "text": "Tests\n\nsource\n\ntest_comp_acc\n\n test_comp_acc (pipeline, samples, system_size, gate_pool, num_of_qubits,\n max_gates, g, str_cond_to_gate_indices:<built-\n infunctioncallable>, Us, ys, train_dataset=None, norms=[])\n\n\nsource\n\n\ntest_comp_acc_on_testset\n\n test_comp_acc_on_testset (pipeline, samples, num_of_U, system_size,\n gate_pool, num_of_qubits, max_gates, g,\n str_cond_to_gate_indices:<built-\n infunctioncallable>, prompt_mod:<built-\n infunctioncallable>, test_dataset,\n train_dataset=None, norms=[], fix_y=None)\n\nreturns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s\n\nsource\n\n\ntest_comp_acc_on_rnd_samples\n\n test_comp_acc_on_rnd_samples (pipeline, samples, num_of_U, system_size,\n gate_pool, num_of_qubits, max_gates, g,\n str_cond_to_gate_indices:<built-\n infunctioncallable>, prompt_mod:<built-\n infunctioncallable>, rnd_min_gates,\n rnd_max_gates, train_dataset=None,\n norms=[], fix_y=None)\n\nreturns: acc_s, gate_acc_s, u_acc_s, uniques_cnt_s, error_cnt_s, num_found_circuits_s, task_qc_len_s\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\npipeline\n\n\n\n\n\nsamples\n\n\n\n\n\nnum_of_U\n\n\n\n\n\nsystem_size\n\n\n\n\n\ngate_pool\n\n\n\n\n\nnum_of_qubits\n\n\n\n\n\nmax_gates\n\n\n\n\n\ng\n\n\n\n\n\nstr_cond_to_gate_indices\ncallable\n\n\n\n\nprompt_mod\ncallable\n\ntakes a single prompt and returns it modified\n\n\nrnd_min_gates\n\n\n\n\n\nrnd_max_gates\n\n\n\n\n\ntrain_dataset\nNoneType\nNone\n\n\n\nnorms\nlist\n[]\n\n\n\nfix_y\nNoneType\nNone" + }, + { + "objectID": "inference/infer_compilation.html#plot", + "href": "inference/infer_compilation.html#plot", + "title": "Inference compilation functions", + "section": "Plot", + "text": "Plot\n\nsource\n\nplot_hist_overview\n\n plot_hist_overview (out_tuple, num_of_samples_per_U, rnd_min_gates,\n rnd_max_gates, max_gates, num_of_qubits)" + }, + { + "objectID": "inference/infer_gate_hist.html", + "href": "inference/infer_gate_hist.html", + "title": "Inference gate distribution", + "section": "", + "text": "source\n\n\n\n get_tensor_gate_length (clr_tensor, padding_token=0)\n\nCareful with padding tokens!\n\nsource\n\n\n\n\n get_circuit_gate_length (qcs)" + }, + { + "objectID": "inference/infer_gate_hist.html#gate-length", + "href": "inference/infer_gate_hist.html#gate-length", + "title": "Inference gate distribution", + "section": "", + "text": "source\n\n\n\n get_tensor_gate_length (clr_tensor, padding_token=0)\n\nCareful with padding tokens!\n\nsource\n\n\n\n\n get_circuit_gate_length (qcs)" + }, + { + "objectID": "examples/editing_and_masking.html", + "href": "examples/editing_and_masking.html", + "title": "Editing and masking of circuits", + "section": "", + "text": "In this notebook we show editing and masking of circuits.\nfrom genQC.imports import *\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom genQC.inference.infer_srv import convert_tensors_to_srvs, schmidt_rank_vector\nimport genQC.platform.qcircuit_dataset_construction as data_const\nimport genQC.util as util\nfrom qiskit.quantum_info import DensityMatrix\ndevice = util.infer_torch_device() # use cuda if we can\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul." + }, + { + "objectID": "examples/editing_and_masking.html#setup-and-load", + "href": "examples/editing_and_masking.html#setup-and-load", + "title": "Editing and masking of circuits", + "section": "Setup and load", + "text": "Setup and load\nLoad the pre-trained model\n\nmodel_path = \"../../saves/qc_unet_config_SRV_3to8_qubit/\"\npipeline = DiffusionPipeline.from_config_file(model_path, device)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n\n\nSet 20 sample steps and use rescaled guidance-formula.\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(40) \ng = 7.5" + }, + { + "objectID": "examples/editing_and_masking.html#editing", + "href": "examples/editing_and_masking.html#editing", + "title": "Editing and masking of circuits", + "section": "1. Editing", + "text": "1. Editing\nSample a random circuit with desired parameters as the circuit we want to edit:\n\nsrv_init = [1, 1, 1, 2, 2] # psi_0 state\ndesired_length = 5 # 5 gates initially placed\n\n\ninit_qc = data_const.get_specific_rnd_srv_circuit(srv_init, desired_length, pipeline.gate_pool)\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(init_qc)))\ninit_qc.draw(\"mpl\", style=\"clifford\")\n\nSRV is [1, 1, 1, 2, 2]\n\n\n\n\n\nThe editing taks is analogous to image editing, we do img2img with conditioning and copy non-edit areas at every time step. Also called latent_filling.\n\ndef create_edited_circuits(pipeline, samples, qc, prompt, new_length, num_of_qubits, system_size, t_start_index):\n #-------------------------------------------\n # set mask - appending mask!\n old_length = len(qc.data)\n\n qubit_mask = torch.ones((system_size, new_length), device=device)\n qubit_mask[:, :old_length] = 0\n \n #-------------------------------------------\n # prepare and encode\n \n gate_classes = data_const.gate_pool_to_gate_classes(pipeline.gate_pool)\n \n emb_org_image = data_const.encode_circuit(qc, system_size, gate_classes, new_length).unsqueeze(0).to(device)\n emb_org_image = pipeline.model.embedd_clrs(emb_org_image)\n\n emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))\n \n #-------------------------------------------\n # prep condition\n \n c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))\n c = c.repeat(samples, *[1]*(c.dim()-1))\n\n #-------------------------------------------\n # latent fill\n out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)\n out_tensor = pipeline.model.invert_clr(out_tensor)\n out_tensor = out_tensor[:, :num_of_qubits]\n out_tensor = torch.unique(out_tensor, dim=0) # we only are interested in unique circuits\n \n qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)\n\n return qc_list, srv_list\n\n\nsamples = 16 # how many circuits we sample\nnew_length = 16 # how many gates the model can place \n\nsrv_target = [2, 2, 2, 2, 2] # desired target SRV\n\nnum_of_qubits = len(srv_target)\nt_start_index = t_start_index = int(0.05 * pipeline.scheduler.timesteps.shape[0]) # time step index at which we start denoising\n\nprompt = f\"Generate SRV: {srv_target}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 2, 2, 2, 2]'\n\n\n\n# returns only distinct circuits\nedited_qc, srv_list = create_edited_circuits(pipeline, samples, init_qc, prompt, new_length, num_of_qubits, num_of_qubits, t_start_index)\n\n\n\n\nPick only correct ones:\n\ncorrect_edited_qc = []\nfor qc,srv in zip(edited_qc, srv_list):\n if srv==srv_target: correct_edited_qc.append(qc)\nprint(f\"We found {len(correct_edited_qc)} correct distinct solutions.\")\n\nWe found 12 correct distinct solutions.\n\n\nCompare: initial circuit\n\ninit_qc.draw(\"mpl\")\n\n\n\n\nv.s. edited:\n\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(correct_edited_qc[0])))\ncorrect_edited_qc[0].draw(\"mpl\", plot_barriers=False)\n\nSRV is [2, 2, 2, 2, 2]\n\n\n\n\n\n\nfig, axs = plt.subplots(2,4, figsize=(18,5), constrained_layout=True)\nfor qc,ax in zip(correct_edited_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\nplt.show()" + }, + { + "objectID": "examples/editing_and_masking.html#masking", + "href": "examples/editing_and_masking.html#masking", + "title": "Editing and masking of circuits", + "section": "2. Masking", + "text": "2. Masking\nFirst we set a desired mask, i.e. a specific layout of a quantum processor.\n\nmax_gates = 16\nnum_of_qubits = 5\n\nd = 3\n#------\ndef con_set(q1, q2, x, d): \n qubit_mask[q1, x:x+d] = 1\n qubit_mask[q2, x:x+d] = 1\n return x+d\n\n#------\nx = 0\n\nqubit_mask = torch.zeros((num_of_qubits, max_gates), device=device) # mask: ones are getting filled, zeros are fixed !\nx = con_set(0, 1, x, d)\nx = con_set(1, 2, x, d)\nx = con_set(1, 3, x, d)\nx = con_set(3, 4, x, d)\n\n\ndef plot_mask():\n fig = plt.figure(figsize=(3.7,2), constrained_layout=True)\n plt.imshow(qubit_mask.cpu(), cmap=\"Greens\")\n plt.xticks(range(0, qubit_mask.shape[1], 2),fontsize=9)\n plt.yticks(range(num_of_qubits), fontsize=9)\n plt.xlabel(\"Gate sequence / time\", fontsize=12)\n plt.ylabel(\"Qubits\", fontsize=12)\n plt.show()\nplot_mask()\n\n\n\n\n\ndef get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask):\n org_image = torch.zeros((1, system_size, max_gates), device=device, dtype=torch.int32) \n \n padd_tok = len(pipeline.gate_pool) + 1\n padd_pos = (torch.ceil(torch.tensor(target_num_gates) / 4) * 4).to(torch.int32)\n org_image[:, :, padd_pos:] = padd_tok\n org_image[:, target_num_bits:, ] = padd_tok\n\n emb_org_image = pipeline.model.embedd_clrs(org_image)\n emb_org_images = emb_org_image.repeat(samples, *[1]*(emb_org_image.dim()-1))\n \n return emb_org_images\n\n\ndef generate_pattern_SRV(pipeline, prompt, samples, system_size, num_of_qubits, max_gates, qubit_mask, t_start_index=0, target_num_gates=None, target_num_bits=None): \n\n if not exists(target_num_gates):\n target_num_gates = max_gates\n\n if not exists(target_num_bits):\n target_num_bits = num_of_qubits\n \n emb_org_images = get_emb_org_images(pipeline, samples, system_size, max_gates, target_num_gates, target_num_bits, qubit_mask)\n\n #----------------\n # prep condition\n\n c = pipeline.text_encoder.tokenize_and_push_to_device(str(prompt))\n c = c.repeat(samples, *[1]*(c.dim()-1))\n\n #----------------\n # latent fill\n \n out_tensor = pipeline.latent_filling(emb_org_images, qubit_mask, c=c, g=g, no_bar=False, t_start_index=t_start_index)\n out_tensor = pipeline.model.invert_clr(out_tensor)\n out_tensor = out_tensor[:, :num_of_qubits]\n out_tensor = torch.unique(out_tensor, dim=0)\n \n qc_list, error_cnt, srv_list = convert_tensors_to_srvs(out_tensor, pipeline.gate_pool, place_barrier=True)\n\n return qc_list, srv_list\n\nNow generate circuits corresponding to the mask.\n\nsamples = 512 # how many circuits we sample\nsrv_target = [2, 1, 2, 2, 2] # desired target SRV\n\nassert len(srv_target)==qubit_mask.shape[0]\n\nprompt = f\"Generate SRV: {srv_target}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 1, 2, 2, 2]'\n\n\n\nqc_list, srv_list = generate_pattern_SRV(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, qubit_mask, t_start_index=1)\n\n\n\n\nPick only correct ones:\n\ncorrect_qc = []\nfor qc,srv in zip(qc_list, srv_list):\n if srv==srv_target: correct_qc.append(qc)\nprint(f\"We found {len(correct_qc)} correct distinct solutions.\")\n\nWe found 9 correct distinct solutions.\n\n\nLet’s plot them. Mask:\n\nplot_mask()\n\n\n\n\nv.s. solution:\n\nprint(\"SRV is\", schmidt_rank_vector(DensityMatrix(correct_qc[0])))\ncorrect_qc[0].draw(\"mpl\", plot_barriers=False)\n\nSRV is [2, 1, 2, 2, 2]\n\n\n\n\n\n\nfig, axs = plt.subplots(1, min(len(correct_qc), 4), figsize=(18,5), constrained_layout=True)\nfor qc,ax in zip(correct_qc, axs.flatten()): \n qc.draw(\"mpl\", plot_barriers=False, ax=ax)\nplt.show()" + }, + { + "objectID": "examples/dataset_and_finetune.html", + "href": "examples/dataset_and_finetune.html", + "title": "SRV demo-dataset and fine-tune", + "section": "", + "text": "In this notebook we create a (demo) 9-qubit dataset and fine-tune the model with it. Note, we use direct fine-tuning similar as you would train the model from scratch (with a higher learn-rate and larger dataset).\nfrom genQC.imports import *\n\nimport genQC.util as util\nimport genQC.platform.qcircuit_dataset_construction as data_const\nimport genQC.inference.infer_srv as infer_srv\nimport genQC.dataset.dataset_helper as dahe\n\nfrom genQC.pipeline.diffusion_pipeline import DiffusionPipeline\nfrom genQC.dataset.qc_dataset import Qc_Config_Dataset\nfrom genQC.dataset.mixed_cached_qc_dataset import Mixed_Cached_OpenClip_Dataset\ndevice = util.infer_torch_device() # use cuda if we can, cpu is much slower\nutil.MemoryCleaner.purge_mem() # clean existing memory alloc\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul." + }, + { + "objectID": "examples/dataset_and_finetune.html#setup-and-load", + "href": "examples/dataset_and_finetune.html#setup-and-load", + "title": "SRV demo-dataset and fine-tune", + "section": "Setup and load", + "text": "Setup and load\n\ndef get_preTrained_pipeline():\n model_path = \"../../saves/qc_unet_config_SRV_3to8_qubit/\"\n pipeline = DiffusionPipeline.from_config_file(model_path, device) \n return pipeline\n\nLoad the pre-trained model. Set 20 sample steps and use rescaled guidance-formula.\n\npipeline = get_preTrained_pipeline()\n\npipeline.guidance_sample_mode = \"rescaled\"\npipeline.scheduler.set_timesteps(20) \n\nprint(\"Trained with gates:\", pipeline.gate_pool)\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\nTrained with gates: [<class 'qiskit.circuit.library.standard_gates.h.HGate'>, <class 'qiskit.circuit.library.standard_gates.x.CXGate'>]" + }, + { + "objectID": "examples/dataset_and_finetune.html#generate-9-qubit-circuits-without-fine-tune", + "href": "examples/dataset_and_finetune.html#generate-9-qubit-circuits-without-fine-tune", + "title": "SRV demo-dataset and fine-tune", + "section": "Generate 9 qubit circuits without fine-tune", + "text": "Generate 9 qubit circuits without fine-tune\nGenerate circuits as explained in the 0_hello_circuit [doc] [notebook] example.\n\nsrv = [2, 2, 2, 1, 1, 1, 1, 1, 2] # set your target SRV\nnum_of_qubits = len(srv) \nassert num_of_qubits == 9\n\nprompt = f\"Generate SRV: {srv}\" # model was trained with this phrase\nprompt\n\n'Generate SRV: [2, 2, 2, 1, 1, 1, 1, 1, 2]'\n\n\n\ng = 7.5 # guidance scale\nmax_gates = 16 # how many time steps the tensor encoding has\nsamples = 64 # how many circuits to generate\n\nout_tensor = infer_srv.generate_srv_tensors(pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False) \nqc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, pipeline.gate_pool) # may take a moment, has to compute partial traces over (2^9)x(2^9) density matrices\nprint(f\"Not valid error circuits: {error_cnt} out of {samples}\")\n\n\n\n\n[INFO]: (generate_srv_tensors) Generated 64 tensors\nNot valid error circuits: 1 out of 64\n\n\n\nacc = infer_srv.get_srv_accuracy(srv_list, srv)\nprint(f\"Accuracy on requested {len(srv)} qubit SRV={srv}, with a model trained on 3 to 8 qubits circuits: {acc:.2f}\")\n\nAccuracy on requested 9 qubit SRV=[2, 2, 2, 1, 1, 1, 1, 1, 2], with a model trained on 3 to 8 qubits circuits: 0.02" + }, + { + "objectID": "examples/dataset_and_finetune.html#fine-tune-dataset", + "href": "examples/dataset_and_finetune.html#fine-tune-dataset", + "title": "SRV demo-dataset and fine-tune", + "section": "Fine-tune dataset", + "text": "Fine-tune dataset\nLet’s create a 9 qubit fine-tune training dataset.\n\nSampling random circuits\nWe sample random 9 qubit circuits on which we fine-tune on. Note, there is no balancing over what SRVs are created! The initial model was only trained on 3 to 8 qubit circuits.\n\n# settings for random circuit sampling\nrandom_samples = int(512) # how many rnd qcs we sample, here small number to speed up example\nnum_of_qubits = 9\nmin_gates = 2\nmax_gates = 20\ngate_pool = pipeline.gate_pool \noptimized = True # if qiskit optimizer is used\n\nx, y = data_const.gen_qc_dataset(samples=random_samples, num_of_qubits=num_of_qubits, min_gates=min_gates, max_gates=max_gates, \n gate_pool=gate_pool, optimized=optimized, silent=False)\n\n\n\n\nGenerated unique circuits: 511\n\n\n\ny[0]\n\ntensor([1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=torch.int32)\n\n\n\ny = np.array([f\"Generate SRV: {srv.numpy()}\" for srv in y]) # convert SRV to the trained prompt\ny[0]\n\n'Generate SRV: [1 1 1 1 1 1 1 1 1]'\n\n\nWe get tokenized circuits with SRV:\n\nprint(f\"Example circuit with prompt: \\n{y[-1]} \\n{x[-1]}\")\n\nExample circuit with prompt: \nGenerate SRV: [1 1 1 1 2 1 2 1 1] \ntensor([[ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [-2, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, 2, 1, 2, -2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, -2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, -2, 0, -2, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=torch.int32)\n\n\n\n\nCreate a basic dataset\nDirect fine-tuning is the same as you would train a new model from scratch. First, we create a Qc_Config_Dataset object that handles our dataset.\n\n# meta-data of dataset\nparas = {}\nparas[\"store_dict\"] = {'x':'tensor', 'y':'numpy'} #what is in the datset, with type\nparas[\"optimized\"] = optimized \nparas[\"dataset_to_gpu\"] = True if device==\"cuda\" else False\nparas[\"random_samples\"] = random_samples\nparas[\"num_of_qubits\"] = num_of_qubits\nparas[\"min_gates\"] = min_gates\nparas[\"max_gates\"] = max_gates\nparas[\"gate_pool\"] = [dahe.class_to_str(gate) for gate in gate_pool]\n\nMake sure our dataset has no duplicates and shuffle it:\n\nx, y = dahe.uniquify_tensor_dataset(x, y)\nassert x.shape[0] == x.unique(dim=0).shape[0] # check if no duplicates\n\nx, y = dahe.shuffle_tensor_dataset(x, y)\n\nNow create the Qc_Config_Dataset object:\n\nqc_Config_Dataset = Qc_Config_Dataset(store_device=device, **paras)\nqc_Config_Dataset.x = x\nqc_Config_Dataset.y = y\nqc_Config_Dataset.dataset_to_gpu = True if device.type==\"cuda\" else False \nqc_Config_Dataset.plot_example()\n\nLabel: ``Generate SRV: [1 1 1 1 1 1 1 1 1]`` SRV is: [1, 1, 1, 1, 1, 1, 1, 1, 1]\n\n\n\n\n\n\n# qc_Config_Dataset.plot_distribution() #print the SRV distribution percentages\n\nIf you want to save the dataset to disk, you could use:\nconfig_path = \"YOUR_CONFIG_FILE\" \nsave_path = \"YOUR_SAVE_PATH\" \nqc_Config_Dataset.save_dataset(config_path, save_path)\nwhere config_path file-path to the meta-data file, e.g. \"../../configs/dataset/qc_9bit_fine_tune.yaml\nand save_path file-path prefix where the raw dataset files are stored, e.g. \"../../datasets/q-circuits/qc_9bit_fine_tune\".\nA saved dataset can be loaded with:\nqc_Config_Dataset = Qc_Config_Dataset.from_config_file(config_path, device=device) \n\n\nCreate a cached (mixed) dataset\nTo speed up training we can cache the CLIP embeddings of the y dataset labels before we start fitting. We provide the Cached_OpenClip_Dataset object for this. Here we use a further extension, the Mixed_Cached_OpenClip_Dataset. It has advanced methods to handle padding and combining different task (e.g. compile and SRV) or different number of qubit datasets together (as explained in the appendix of the paper). We use it here to automatically cut and pad our 9 qubit circuits to the longest circuit within one batch.\nSee if the pipeline has already a padding token specified, else define one.\n\ntry: pad_constant = pipeline.params_config(\"\")[\"add_config\"][\"dataset\"][\"params\"][\"pad_constant\"] #can NOT be 0 (empty token)! and not any other gate!\nexcept: pad_constant = len(qc_Config_Dataset.gate_pool)+1\n \nprint(f\"{pad_constant=}\")\n\npad_constant=3\n\n\n\ndataset_list = [qc_Config_Dataset] # what datasets to combine\n\nparameters = asdict(qc_Config_Dataset.params_config)\nparameters[\"num_down_scales\"] = 3 # defined by the down-scale layers of the UNet\n\nmixed_dataset = Mixed_Cached_OpenClip_Dataset.from_datasets(dataset_list, \n balance_maxes=[1e8], # what the maximum prompt (y) balance limit is, can be used to balance SRVs for different qubit numbers \n pad_constant=pad_constant,\n device=device, \n bucket_batch_size=-1, # if we use bucket padding\n max_samples=[1e8], # if we want to limit the sizes of the dataset_list \n **parameters)\n\n\n\n\n - dataset size after balancing 511\n\n\nLet’s see what we are training on:\n\nfig, axs = plt.subplots(1, 2, figsize=(12, 3.6), squeeze=False, constrained_layout=True) \nplt.sca(axs[0, 0])\nplt.xlabel(r\"$s$\")\nplt.title(\"Dist of space\")\nmin_q, max_q = min(d.num_of_qubits for d in dataset_list), max(d.num_of_qubits for d in dataset_list)\ndata = mixed_dataset.z[:, 0].cpu() \nplt.hist(data, bins=np.arange(min_q, max_q+2) - 0.5, rwidth=0.9)\n\nplt.sca(axs[0, 1])\nplt.xlabel(r\"$t$\")\nplt.title(\"Dist of time\")\nmin_g, max_g = min(d.min_gates for d in dataset_list), max(d.max_gates for d in dataset_list)\ndata = mixed_dataset.z[:, 1].cpu()\nplt.hist(data, bins=np.arange(min_g, max_g+2) - 0.5, rwidth=0.9)\n\nplt.show()\n\n\n\n\nFinally, we can create the dataloader used by the DiffusionPipeline.fit() funtion. This also caches all our prompts.\n\ntuned_pipeline = get_preTrained_pipeline() # load a fresh pre-trained model we want to train\n\ndataloaders = mixed_dataset.get_dataloaders(batch_size=16, text_encoder=tuned_pipeline.text_encoder.to(device), y_on_cpu=False) # you can set y_on_cpu=True if you run out of device mem\n\n[INFO]: `genQC.models.unet_qc.QC_Cond_UNet` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder` instantiated from given config on cuda.\n[INFO]: `genQC.models.frozen_open_clip.CachedFrozenOpenCLIPEmbedder`. No save_path` provided. No state dict loaded.\n[INFO]: Not balancing dataset! balance_max=None\n[INFO]: Generate cache: converting tensors to str and tokenize\n - to str list\n - tokenize_and_push_to_device\n - generate_cache\n[INFO]: caching trying to allocate memory (148, 77, 512) on cuda approx. 0.023 GB\n[INFO]: Generated cache" + }, + { + "objectID": "examples/dataset_and_finetune.html#fine-tune", + "href": "examples/dataset_and_finetune.html#fine-tune", + "title": "SRV demo-dataset and fine-tune", + "section": "Fine-tune", + "text": "Fine-tune\nWe have the dataloader object created and can start fine-tuning. Note, we just use all the diffusion scheduler parameters from the pre-trained config we loaded.\n\ntuned_pipeline.add_config[\"dataset\"] = mixed_dataset.get_config() # add meta-data of dataset to save it with pipeline\ntuned_pipeline.compile(torch.optim.Adam, nn.MSELoss)\n\n\nepochs = 25 # how many epochs we train on our 9bit dataset\nlr = 5e-5 # learn rate\n\nsched = functools.partial(torch.optim.lr_scheduler.OneCycleLR, max_lr=lr, total_steps=epochs*len(dataloaders.train))\ntuned_pipeline.fit(epochs, dataloaders, lr=lr, lr_sched=sched)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nIf you want you can save the tuned pipeline with:\nstore_dir = f\"../../saves/fine_tuned_on_9bits/\"\n\ntuned_pipeline.store_pipeline(config_path=store_dir, save_path=store_dir)\nand load it again with the usual:\ntuned_pipeline = DiffusionPipeline.from_config_file(model_path, device)" + }, + { + "objectID": "examples/dataset_and_finetune.html#generate-9-qubit-circuits-fine-tuned", + "href": "examples/dataset_and_finetune.html#generate-9-qubit-circuits-fine-tuned", + "title": "SRV demo-dataset and fine-tune", + "section": "Generate 9 qubit circuits fine-tuned", + "text": "Generate 9 qubit circuits fine-tuned\nTest again to create a 9 qubit SRV as we did at the start but with the tuned model:\n\nprompt\n\n'Generate SRV: [2, 2, 2, 1, 1, 1, 1, 1, 2]'\n\n\n\ng = 7.5 # guidance scale\nmax_gates = 16 # how many time steps the tensor encoding has\nsamples = 64 # how many circuits to generate\n\ntuned_pipeline.guidance_sample_mode = \"rescaled\"\ntuned_pipeline.scheduler.set_timesteps(20) \n\nout_tensor = infer_srv.generate_srv_tensors(tuned_pipeline, prompt, samples, num_of_qubits, num_of_qubits, max_gates, g, no_bar=False) \nqc_list, error_cnt, srv_list = infer_srv.convert_tensors_to_srvs(out_tensor, tuned_pipeline.gate_pool) # may take a moment, has to compute partial traces over (2^9)x(2^9) density matrices\nprint(f\"Not valid error circuits: {error_cnt} out of {samples}\")\n\n\n\n\n[INFO]: (generate_srv_tensors) Generated 64 tensors\nNot valid error circuits: 1 out of 64\n\n\n\ntuned_acc = infer_srv.get_srv_accuracy(srv_list, srv)\nprint(f\"Accuracy on requested {len(srv)} qubit SRV={srv}, with a model trained on 3 to 8 qubits qcs: {acc:.2f} and with fine-tuning on 9 qubit qcs: {tuned_acc:.2f}\")\n\nAccuracy on requested 9 qubit SRV=[2, 2, 2, 1, 1, 1, 1, 1, 2], with a model trained on 3 to 8 qubits qcs: 0.02 and with fine-tuning on 9 qubit qcs: 0.05\n\n\nNote, we didn’t fine-tune on a balanced dataset with all possible 9 qubit SRVs, just some random circuits (most, ~50%, of them will be the SRV with all 1s). So we don’t expect a huge boost in accuracy." + }, + { + "objectID": "dataset/dataset_helper.html", + "href": "dataset/dataset_helper.html", + "title": "Dataset helper functions", + "section": "", + "text": "Some comonly used functions for datasets." + }, + { + "objectID": "dataset/dataset_helper.html#checking", + "href": "dataset/dataset_helper.html#checking", + "title": "Dataset helper functions", + "section": "Checking", + "text": "Checking\n\nsource\n\ncheck_duplicate_in_dataset\n\n check_duplicate_in_dataset (x, dataset)\n\nCheck if ‘x’ is in ‘dataset’\n\nsource\n\n\ncheck_duplicates_in_dataset\n\n check_duplicates_in_dataset (xs, dataset, return_ind=False, invert=False)\n\nChecks if xs is are dataset. Boolean invert changes if we count duplicates (False) or ones that are not in dataset (True). Uses torch.vmap which copies dataset for every element in xs.\nCheck if this works:\n\nxs = torch.tensor(\n [[0.7, 1, 0.5], \n [0.3, 1, 0.5],\n [ 0, 1, 0.5]])\n\nd = torch.tensor([\n [0.11, 1, 0.5],\n [0.70, 1, 0.5], #here a dup\n [0.71, 1, 0.5],\n [0.3 , 1, 0.5]])\n\ncheck_duplicates_in_dataset(xs, d, return_ind=True)\n\n(2, tensor([0, 1]))" + }, + { + "objectID": "dataset/dataset_helper.html#manipulating", + "href": "dataset/dataset_helper.html#manipulating", + "title": "Dataset helper functions", + "section": "Manipulating", + "text": "Manipulating\n\nsource\n\nshuffle_tensor_dataset\n\n shuffle_tensor_dataset (x, y=None, *z)\n\nAssumes numpy or tensor objects with same length.\n\nsource\n\n\nget_unique_elements_indices\n\n get_unique_elements_indices (tensor)\n\nReturns indices of unique_elements in tensor.\n\nsource\n\n\nuniquify_tensor_dataset\n\n uniquify_tensor_dataset (x, y=None, *z)\n\nx has to be tensor, assumes numpy or tensor obj for y and z\n\nsource\n\n\nbalance_tensor_dataset\n\n balance_tensor_dataset (x, y, *z, samples:int=None,\n make_unique:bool=True, y_uniques=None,\n shuffle_lables:bool=True, add_balance_fn:<built-\n infunctioncallable>=None)\n\nAssumes x is tensor and y is tensor or numpy." + }, + { + "objectID": "dataset/mixed_cached_qc_dataset.html", + "href": "dataset/mixed_cached_qc_dataset.html", + "title": "Mixed cached dataset", + "section": "", + "text": "Dataset that combines and handles multiple cached datasets, e.g. for multiple qubits. Here we also handle paddings.\n\nsource\n\nMixed_Cached_OpenClip_Dataset_config\n\n Mixed_Cached_OpenClip_Dataset_config (store_dict:dict, optimized:bool,\n dataset_to_gpu:bool,\n random_samples:int,\n num_of_qubits:int, min_gates:int,\n max_gates:int, gate_pool:list[str],\n pad_constant:int, collate_fn:str,\n bucket_batch_size:int,\n num_down_scales:int)\n\n\nsource\n\n\nMixed_Cached_OpenClip_Dataset\n\n Mixed_Cached_OpenClip_Dataset (device:torch.device=device(type='cpu'),\n **parameters)\n\nDataset that uses multiple cached dataset and combines them with padding, either i) Bucket or ii) Max. Also provides a corresponding collate_fn for training.\n\n\n\n\n Back to top" + }, + { + "objectID": "dataset/qc_dataset.html", + "href": "dataset/qc_dataset.html", + "title": "Quantum circuit dataset", + "section": "", + "text": "Dataset for quantum circuits.\n\nsource\n\nQc_Config_Dataset_config\n\n Qc_Config_Dataset_config (store_dict:dict, optimized:bool,\n dataset_to_gpu:bool, random_samples:int,\n num_of_qubits:int, min_gates:int,\n max_gates:int, gate_pool:list[str])\n\n\nsource\n\n\nQc_Config_Dataset\n\n Qc_Config_Dataset (device:torch.device=device(type='cpu'), **parameters)\n\nDataset for quantum circuits, access gate_pool directly and all other paras with .params_config\n\ninit = {k:None for k in Qc_Config_Dataset.req_params}\ninit[\"gate_pool\"] = [\"qiskit.circuit.library.standard_gates.h.HGate\",\n \"qiskit.circuit.library.standard_gates.x.CXGate\"]\ninit[\"store_dict\"] = {\"x\":\"tensor\", \"y\":\"tensor_list\"}\n\na = Qc_Config_Dataset(**init)\na.get_config()\n\n{'target': '__main__.Qc_Config_Dataset',\n 'device': 'cpu',\n 'comment': '',\n 'save_path': None,\n 'save_datetime': '12/06/2023 19:06:49',\n 'params': Qc_Config_Dataset_config(store_dict={'x': 'tensor', 'y': 'tensor_list'}, optimized=None, dataset_to_gpu=None, random_samples=None, num_of_qubits=None, min_gates=None, max_gates=None, gate_pool=['qiskit.circuit.library.standard_gates.h.HGate', 'qiskit.circuit.library.standard_gates.x.CXGate'])}\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "util.html", + "href": "util.html", + "title": "Util", + "section": "", + "text": "Miscellaneous util code." + }, + { + "objectID": "util.html#memory-utils", + "href": "util.html#memory-utils", + "title": "Util", + "section": "Memory utils", + "text": "Memory utils\n\nsource\n\nMemoryCleaner\n\n MemoryCleaner ()\n\nCLass with static methods to clean (gpu) memory." + }, + { + "objectID": "util.html#python-utils", + "href": "util.html#python-utils", + "title": "Util", + "section": "Python utils", + "text": "Python utils\n\nsource\n\nvirtual\n\n virtual (f:<built-infunctioncallable>)\n\nDecorator to enfore subclass method implementations and raises error at method calls.\n\nclass A():\n def p1(self, x): print(\"A p1\", x)\n \n @virtual\n def p2(self, x): pass\n \nclass B(A):\n def p3(self, x): print(\"B p2\", x)\n \nb = B()\nb.p1(1)\ntry:\n b.p2(1)\nexcept BaseException as e:\n print(\"Exception that would be raised: \", e)\n\nA p1 1\nException that would be raised: Virtual method p2 needs to be implemented by subclass B." + }, + { + "objectID": "util.html#torch-utils", + "href": "util.html#torch-utils", + "title": "Util", + "section": "Torch utils", + "text": "Torch utils\n\nsource\n\nDataLoaders\n\n DataLoaders (*dls:list[torch.utils.data.dataloader.DataLoader])\n\nCombines train and valid DataLoader.\n\nsource\n\n\ninfer_torch_device\n\n infer_torch_device ()\n\n\ninfer_torch_device()\n\n[INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.\n\n\ndevice(type='cuda')\n\n\n\nsource\n\n\nnumber_of_paramters\n\n number_of_paramters (model:torch.nn.modules.module.Module)\n\n\nsource\n\n\nscale_tensor\n\n scale_tensor (t:torch.Tensor)\n\n[-1,1] to [0,1]\n\nsource\n\n\nnormalize_tensor\n\n normalize_tensor (t:torch.Tensor)\n\n[0,1] to [-1,1]" + }, + { + "objectID": "util.html#plot-utils", + "href": "util.html#plot-utils", + "title": "Util", + "section": "Plot utils", + "text": "Plot utils\n\nsource\n\nsaveSvg\n\n saveSvg (filename)\n\n\nsource\n\n\nsavePng\n\n savePng (filename)\n\n\nsource\n\n\nsavePdf\n\n savePdf (filename)\n\n\nsource\n\n\nplot_image_grid\n\n plot_image_grid (imgs:Union[list,<built-infunctionarray>,torch.Tensor],\n labels:list=None, labels_fs='medium', figsize=(16, 4),\n cols=8, cmap='Greys', show_colorbar=False,\n **imshow_kwargs)\n\n\nn = 6\nplot_image_grid(torch.randn((n,28,28,1)), [f\"label {i}\" for i in range(n)])\n\n\n\n\n\nsource\n\n\nlatents_to_pil\n\n latents_to_pil (latents:torch.Tensor, channels=None)" + }, + { + "objectID": "scheduler/scheduler.html", + "href": "scheduler/scheduler.html", + "title": "Scheduler", + "section": "", + "text": "Base class for schedulers.\n\nsource\n\nScheduler\n\n Scheduler ()\n\nBase class for all diffusion schedulers\n\n\n\n\n Back to top" + }, + { + "objectID": "printing.html", + "href": "printing.html", + "title": "Printing functions", + "section": "", + "text": "Advanced printing functions.\n\nsource\n\ndisplay_colums\n\n display_colums (display_list, num_col=3)\n\n\na = [torch.rand((3, 3))]*3\na\n\n[tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]]),\n tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]]),\n tensor([[0.6266, 0.3672, 0.3988],\n [0.6061, 0.2596, 0.4855],\n [0.3177, 0.8166, 0.3100]])]\n\n\nv.s.\n\ndisplay_colums(a) # works only in notebook\n\n\n\n\n\nsource\n\n\nndarray_to_latex\n\n ndarray_to_latex (arr)\n\nReturns a LaTeX {pmatrix*}[r] as a string\n\nsource\n\n\ntensor_to_latex\n\n tensor_to_latex (tensor)\n\nReturns a LaTeX {pmatrix*}[r] as a string\n\ntex = tensor_to_latex(torch.full((3,3), 2))\nprint(tex)\n\n\\begin{pmatrix*}[r]\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n\\end{pmatrix*}\n\n\n\nsource\n\n\nprint_markdown\n\n print_markdown (text, print_raw=False)\n\n\nprint_markdown(\"$\\sqrt{2}$, *Test text*\")\n\n\\(\\sqrt{2}\\), Test text\n\n\n\nprint_markdown(f\"${tex}$\")\n\n\\(\\begin{pmatrix*}[r] 2 & 2 & 2\\\\ 2 & 2 & 2\\\\ 2 & 2 & 2\\\\ \\end{pmatrix*}\\)\n\n\n\nsource\n\n\nprint_table\n\n print_table (col_headings:list, data:<built-infunctionarray>,\n row_headings=None, print_raw=False)\n\nPrint a table:\n\nh = [\"head1\", \"head2\", \"head3\"]\nr = [\"sample\", \"dataset\"]\nd = np.random.rand(2, 3)\nprint_table(h, d, r)\n\n\n\n\n\nhead1\nhead2\nhead3\n\n\n\n\nsample\n0.32\n0.23\n0.27\n\n\ndataset\n0.74\n0.41\n0.00\n\n\n\n\n\n\n\n\n\n Back to top" + }, + { + "objectID": "platform/qcircuit_metrics.html", + "href": "platform/qcircuit_metrics.html", + "title": "Quantum circuit metrics", + "section": "", + "text": "Norms for unitary compilation." + }, + { + "objectID": "platform/qcircuit_metrics.html#unitary-distances", + "href": "platform/qcircuit_metrics.html#unitary-distances", + "title": "Quantum circuit metrics", + "section": "Unitary distances", + "text": "Unitary distances\n\nsource\n\nUnitary_FrobeniusNorm\n\n Unitary_FrobeniusNorm ()\n\nInitialize self. See help(type(self)) for accurate signature.\n\na = torch.tensor([[1,2], [2, 1]]).float()\nb = torch.tensor([[2,3], [2, 2]]).float()\n\ng = Unitary_FrobeniusNorm\ng.distance(a,b)\n\ntensor(1.5000)" + }, + { + "objectID": "platform/qcircuit_evaluation.html", + "href": "platform/qcircuit_evaluation.html", + "title": "Quantum circuit evaluation", + "section": "", + "text": "source\n\n\n\n sort_into_bins (x, y, y_uniques)\n\n\nsource\n\n\n\n\n extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool, max_gates)\n\n\nsource\n\n\n\n\n get_gate_stat_from_tensors (tensors, gate_pool)\n\n\nsource\n\n\n\n\n get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)" + }, + { + "objectID": "platform/qcircuit_evaluation.html#gate-count", + "href": "platform/qcircuit_evaluation.html#gate-count", + "title": "Quantum circuit evaluation", + "section": "", + "text": "source\n\n\n\n sort_into_bins (x, y, y_uniques)\n\n\nsource\n\n\n\n\n extract_gate_number (qc:qiskit.circuit.quantumcircuit.QuantumCircuit,\n gate_pool, max_gates)\n\n\nsource\n\n\n\n\n get_gate_stat_from_tensors (tensors, gate_pool)\n\n\nsource\n\n\n\n\n get_gate_stat_from_circuits (qcs:list, gate_pool, max_gates)" + }, + { + "objectID": "platform/qcircuit_util.html", + "href": "platform/qcircuit_util.html", + "title": "Quantum circuit utils", + "section": "", + "text": "source\n\n\n\n get_element_matching_indices (a, b)\n\nCompares (2d) a with b. Returns the indices of b, where a element of a matches with b.\n\nsource\n\n\n\n\n get_entanglement_bins (num_of_qubits)\n\nReturns all SRV sorted in entangle bins which correspond to a number of entangled qubits.\n\nfor srvs,label in zip(*get_entanglement_bins(5)):\n print(label, \":\", srvs)\n\n0 qubit entangled : [[1, 1, 1, 1, 1]]\n2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]\n3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]\n4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]\n5 qubit entangled : [[2, 2, 2, 2, 2]]" + }, + { + "objectID": "platform/qcircuit_util.html#srv", + "href": "platform/qcircuit_util.html#srv", + "title": "Quantum circuit utils", + "section": "", + "text": "source\n\n\n\n get_element_matching_indices (a, b)\n\nCompares (2d) a with b. Returns the indices of b, where a element of a matches with b.\n\nsource\n\n\n\n\n get_entanglement_bins (num_of_qubits)\n\nReturns all SRV sorted in entangle bins which correspond to a number of entangled qubits.\n\nfor srvs,label in zip(*get_entanglement_bins(5)):\n print(label, \":\", srvs)\n\n0 qubit entangled : [[1, 1, 1, 1, 1]]\n2 qubit entangled : [[1, 1, 1, 2, 2], [1, 1, 2, 1, 2], [1, 1, 2, 2, 1], [1, 2, 1, 1, 2], [1, 2, 1, 2, 1], [1, 2, 2, 1, 1], [2, 1, 1, 1, 2], [2, 1, 1, 2, 1], [2, 1, 2, 1, 1], [2, 2, 1, 1, 1]]\n3 qubit entangled : [[1, 1, 2, 2, 2], [1, 2, 1, 2, 2], [1, 2, 2, 1, 2], [1, 2, 2, 2, 1], [2, 1, 1, 2, 2], [2, 1, 2, 1, 2], [2, 1, 2, 2, 1], [2, 2, 1, 1, 2], [2, 2, 1, 2, 1], [2, 2, 2, 1, 1]]\n4 qubit entangled : [[1, 2, 2, 2, 2], [2, 1, 2, 2, 2], [2, 2, 1, 2, 2], [2, 2, 2, 1, 2], [2, 2, 2, 2, 1]]\n5 qubit entangled : [[2, 2, 2, 2, 2]]" + }, + { + "objectID": "pipeline/diffusion_pipeline_special.html", + "href": "pipeline/diffusion_pipeline_special.html", + "title": "Diffusion Pipeline Special", + "section": "", + "text": "source\n\nDiffusionPipeline_attnPadded\n\n DiffusionPipeline_attnPadded\n (scheduler:genQC.scheduler.scheduler.Schedu\n ler, model:torch.nn.modules.module.Module, \n text_encoder:torch.nn.modules.module.Module\n , device:torch.device,\n enable_guidance_train=True,\n guidance_train_p=0.1, cached_text_enc=True)\n\nA special DiffusionPipeline with attention masking.\n\nsource\n\n\nDiffusionPipeline_Compilation\n\n DiffusionPipeline_Compilation\n (scheduler:genQC.scheduler.scheduler.Sched\n uler,\n model:torch.nn.modules.module.Module, text\n _encoder:torch.nn.modules.module.Module,\n device:torch.device,\n enable_guidance_train=True,\n guidance_train_p=0.1,\n cached_text_enc=True)\n\nA special DiffusionPipeline that accounts for unitary conditions, i.e. compilation.\n\n\n\n\n Back to top" + }, + { + "objectID": "pipeline/pipeline.html", + "href": "pipeline/pipeline.html", + "title": "Pipeline", + "section": "", + "text": "Basic PyTorch pipeline for general training." + }, + { + "objectID": "pipeline/pipeline.html#helper", + "href": "pipeline/pipeline.html#helper", + "title": "Pipeline", + "section": "Helper", + "text": "Helper" + }, + { + "objectID": "pipeline/pipeline.html#pipeline", + "href": "pipeline/pipeline.html#pipeline", + "title": "Pipeline", + "section": "Pipeline", + "text": "Pipeline\nNote, uses functions that require: python>=3.9\n\nsource\n\nPipeline_IO\n\n Pipeline_IO ()\n\nA class providing basic IO functionality.\n\nsource\n\n\nPipeline\n\n Pipeline (model:torch.nn.modules.module.Module, device:torch.device)\n\nA Pipeline_IO class providing basic pytorch model training functionality." + }, + { + "objectID": "models/layers.html", + "href": "models/layers.html", + "title": "Layers", + "section": "", + "text": "Common model layers." + }, + { + "objectID": "models/layers.html#basic-scaling-blocks", + "href": "models/layers.html#basic-scaling-blocks", + "title": "Layers", + "section": "Basic scaling blocks", + "text": "Basic scaling blocks\n\nsource\n\nDownBlock2D\n\n DownBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,\n use_conv=True)\n\nA 2d down scale block.\n\nsource\n\n\nUpBlock2D\n\n UpBlock2D (in_ch, out_ch, kernel_size=2, stride=2, padding=0,\n use_conv=True)\n\nA 2d up scale block." + }, + { + "objectID": "models/layers.html#resnet-blocks", + "href": "models/layers.html#resnet-blocks", + "title": "Layers", + "section": "ResNet blocks", + "text": "ResNet blocks\n\nsource\n\nResBlock2D\n\n ResBlock2D (in_ch, out_ch, kernel_size, skip=True)\n\nA 2d residual block.\n\nsource\n\n\nResBlock2D_Conditional\n\n ResBlock2D_Conditional (in_ch, out_ch, t_emb_size, kernel_size,\n skip=True)\n\nA 2d residual block with input of a time-step \\(t\\) embedding." + }, + { + "objectID": "models/layers.html#feedforward-layer", + "href": "models/layers.html#feedforward-layer", + "title": "Layers", + "section": "FeedForward layer", + "text": "FeedForward layer\n\nsource\n\nFeedForward\n\n FeedForward (in_ch, out_ch, inner_mult=1)\n\nA small dense feed-forward network as used in transformers." + }, + { + "objectID": "models/layers.html#position-embedding-layers", + "href": "models/layers.html#position-embedding-layers", + "title": "Layers", + "section": "Position embedding layers", + "text": "Position embedding layers\nCreate sinusoidal position embeddings, same as those from the transformer:\n\n\nsource\n\nPositionalEncoding\n\n PositionalEncoding (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nAn absolute pos encoding layer.\n\nsource\n\n\nTimeEmbedding\n\n TimeEmbedding (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nA time embedding layer\n\nsource\n\n\nPositionalEncodingTransposed\n\n PositionalEncodingTransposed (d_model:int, dropout:float=0.0,\n max_len:int=5000)\n\nAn absolute pos encoding layer.\n\nsource\n\n\nPositionalEncoding2D\n\n PositionalEncoding2D (d_model:int, dropout:float=0.0, max_len:int=5000)\n\nA 2D absolute pos encoding layer.\n\na = torch.zeros((1, 4, 3, 4))\nl = PositionalEncoding2D(d_model=4) \n\nl(a)[0].shape\n\ntorch.Size([4, 3, 4])" + }, + { + "objectID": "models/unet_qc.html", + "href": "models/unet_qc.html", + "title": "Conditional qc-UNet", + "section": "", + "text": "Quantum circuit U-Net architecture predicting the noise for noisy quantum circuits." + }, + { + "objectID": "models/unet_qc.html#blocks", + "href": "models/unet_qc.html#blocks", + "title": "Conditional qc-UNet", + "section": "Blocks", + "text": "Blocks\n\nsource\n\nUNet_block\n\n UNet_block (ch_in, ch_out, t_emb_size, cond_emb_size, num_heads=8,\n num_res_blocks=1, transformer_depth=1)\n\nThe basic block of the U-Net. Is conditioned via cross-attention in SpatialTransformer and addition of the time ebedding in ResBlock2D_Conditional.\n\nsource\n\n\nEncoder\n\n Encoder (model_features, t_emb_size, cond_emb_size, num_heads,\n num_res_blocks, transformer_depths)\n\nEncoder definition of the U-Net.\n\nsource\n\n\nDecoder\n\n Decoder (model_features, t_emb_size, cond_emb_size, num_heads,\n num_res_blocks, transformer_depths)\n\nDecoder definition of the U-Net." + }, + { + "objectID": "models/unet_qc.html#model-definition", + "href": "models/unet_qc.html#model-definition", + "title": "Conditional qc-UNet", + "section": "Model definition", + "text": "Model definition\n\nsource\n\nQC_Cond_UNet_config\n\n QC_Cond_UNet_config (model_features:list[int], clr_dim:int, num_clrs:int,\n t_emb_size:int, cond_emb_size:int,\n num_heads:list[int], num_res_blocks:list[int],\n transformer_depths:list[int])\n\n\nsource\n\n\nQC_Cond_UNet\n\n QC_Cond_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,\n t_emb_size=128, cond_emb_size=512, num_heads=[8, 8, 2],\n num_res_blocks=[2, 2, 4], transformer_depths=[1, 2, 1])\n\nConditional U-Net model for quantum circuits. Implemets embedd_clrs and invert_clr functions to embed and decode color-tensors." + }, + { + "objectID": "models/unet_qc.html#unitary-compilation-extension", + "href": "models/unet_qc.html#unitary-compilation-extension", + "title": "Conditional qc-UNet", + "section": "Unitary compilation extension", + "text": "Unitary compilation extension\n\nsource\n\nQC_Compilation_UNet_config\n\n QC_Compilation_UNet_config (model_features:list[int], clr_dim:int,\n num_clrs:int, t_emb_size:int,\n cond_emb_size:int, num_heads:list[int],\n num_res_blocks:list[int],\n transformer_depths:list[int], unitary_encoder\n _config:genQC.models.unitary_encoder.Unitary_\n encoder_config)\n\n\nsource\n\n\nQC_Compilation_UNet\n\n QC_Compilation_UNet (model_features=[32, 32, 64], clr_dim=8, num_clrs=8,\n t_emb_size=128, cond_emb_size=512, num_heads=[8, 8,\n 2], num_res_blocks=[2, 2, 4], transformer_depths=[1,\n 2, 1], unitary_encoder_config=None)\n\nExtension of the QC_Cond_UNet to accept unitary conditions." + }, + { + "objectID": "models/config_model.html", + "href": "models/config_model.html", + "title": "Config model", + "section": "", + "text": "Model base class that handles loading and storing from/to config-files." + }, + { + "objectID": "models/config_model.html#model", + "href": "models/config_model.html#model", + "title": "Config model", + "section": "Model", + "text": "Model\n\nsource\n\nConfig_Model\n\n Config_Model ()\n\nA basic nn.Module with IO functionality." + } +] \ No newline at end of file diff --git a/site_libs/bootstrap/bootstrap-icons.css b/site_libs/bootstrap/bootstrap-icons.css new file mode 100644 index 0000000..94f1940 --- /dev/null +++ b/site_libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2018 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } diff --git a/site_libs/bootstrap/bootstrap-icons.woff b/site_libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..18d21d457558d4dc2e231a8f6ee585fada9c6bab GIT binary patch literal 164168 zcmZ5ncR1B;+*d-G4I^alol(fj-s=dFnS*SRbU+;5W_s3^_zxVIt%5{$Cd3i}|9?~s3>EP3 zu3QJc6gW?qV>l4H20|jhQvzBZ94lF3*s+a^wL9>l@bHA!@$g)(t9@-$vUm2g!^0DO zg?IJ3I37W#R(0^&?h9LMINnvMaxe#W;5~d=p8NO(Fo8D@G`Fm`T z&#kOO@Q~6X8NytmGN{-1UHIQ?LLA7M?ZTq2;&Dn5sNq4g*2C7BpFe;9{JA=Q?ly8b zbm-3Aqq_mLcT?{^O{1+24G|lojKF824bHS4zT#0pJ4FkBEyfnj%84h#PaF##*f(=( zYJbLXSnU*O}$41t136;734{uP?C@+>)%vJN?lkyd*|)1~USGqnAdxERjX~)j?t;acl3K;Zc--a1Cqvb< z!*275rk$L%QsSK%KFje;fq`UOzS@zA-|HXOYn*)!{0=;)*_g7czK<`3ia9DfY( zZxfwKXwM1GT2?maH~e$C)vm!X6y980FtOuo`;qfmj?2JDd;eOYx-h@N0Hrq08RSg1 zTMrYKso!Uzd8hSQ_4xH!{ChsexBi#i!48IF1H2>UPhwyd8eZHZCBvU#yBZaI`zj^) z1v%X3I%(0iyh$adh2Ci=w&{ruhJ}i0uC|4VCa|S85vlL%3I2R#yrre3g{5V5019x$ zh|)I4T)I+~(i+G2>7{n1jgEPyrADRoj`_b!y-QnhxsOV9O6zd%n@U|vn{j!SdNPJW zBhU8r0}bUyEXnlnN0=WxCDT_Nx&Oe-yhNoK<(NoU(N$dIm`PW~S^U-!onBs8T;iDC zq@rysI$ZBqm|kF4Ch1t2UbIw30ItGNmvK0P=dCp89U=B=H7#+~D;sw7$~Vm)E%kD2 zZBm~qe^?xcGxEx4GM~zOSSB@Mj&rS7p32`ed^Qq@lix@FE@U){FD@F<*^fmSZNQpG zJRRc^7OlAlr8Fb5`)Gv8hH+Jy_;3bJVE-dRwY6;8fT=WoxEpt8zvM(Ku(D0hvb1V= z3`f6T@hG>=V5W>|I3CBfU-zgu$RP5Gd{VJe0k1(LZ|Tek6Ha$O<>c9U{>6xflgoz@ z9e;*b!;z~U`?s1B1uJ@2*!J~LUIfMpR_Trwtr+Y(oV+rZ&&eAcwqLE=muz}3YivA3 zvl`=NYp!hhK4ZFmC6Wa6g>580RLMtize2DfS z^Y*-%;jI;)egBid^Vb)8!5F#GoE6=DniI|QqzlvF{Pq!|J)aZR^MnhN%lE+}MEh>0 zjch5IGwi+2COKP5pJWk)! z^81CCo_e-O{>*gL5w}mT)ABOt7#6G7axv&0evp#ht0iMFW9CYi8c~RHa86GxEKGB7 zHBC(}OmeXKo$g)Ox@z?(U8k^a^?6geYhm-Mb>)2-ZJ}S2d%}U*a=&Is@8kC~i;j~D zEB4%K7^qKPlwQ4Efe6LSX|QeWSF z$X_=+aFqJ}uEu6VLTXy4HerKOYDA}QY<$%_qIGoOL*2TwRQEvr?s`D;XTc9K>(86N z3D)(pUBuCZ2md@Tzul$hRcDse`IU#v`fRd z|9Y!;S?l1m8&fsK@5uFsr`3VqWF496;wLu_Zk%GKtaEC0C$kP{Ps^uleI}QkpBrRM z{Gs01I-oc$I`6(%OZ+t;v6i_j_-TdQGqRb@jK}zQ(o5B*d@~cDOsVOtS)Es0jXRrg zpJ=I(tknSz`({rwWuHo^8S{1CW=%6M<6k2l_2vx5W9B$P&waB%pGK!yx+ay%MyEN` zCZo!Fr@z0OyenJRW*;@_RMxG{H#NCdHm}W9y33d|jSZ5y<4@i6DWIQIY0}^1^{J;{ z>uTI~4Q=ky_NkllXc(HBHEO1xqH7qf@LZeH-n47znZmjH_cHKO_PS+4e!B5nN7dL(8)E6 zSEqk8H*F82C$}uTsv5_p=r^?wll>=K|4w^tH6Bh8Z7Lq3PR9f1WxaA52d7dt`3~z( zy8@TneB?ecP3dmhAI6-Ha0q&(^_u@Y-@I@SZVqnQ`AzTEx;st8bbhNXQD~$0sJ1Or zZj@;`{*deF&Uwj&Sa4I-?BGB9le)8si+h$obJhlTX^uz&If7B`M#pd`x;w>_sb)AoU? zL;5q7;F$LQnK|)OsdMuS*Y?htzgzo<$EW9E7cA}layX{l_|uJ`l$pOdhe9WT7gX&t z?KsO_wgYc>K$2kcwL8N-g61@Oqu}-nl~hh1@8KvB%Y8Pe&xt>ET%4vq|37_ zrgDsYl;`?M%#4~alEwPPUFwKPzK*E-B4$*T=hvpC0y+)_q;S&(%k^`!%%sK0mSM*P&{DGnz^Y@i&InUY~@^Z#Z={Rm=XNbS0<% z+U2e}PU%Y45I)(#VD0%y^bgg?H~wE+=i1zZeVL{2G7?ins(#I%tNG_U&X|2&H-cfV zg>)%953$0`#8aqyU!<{3NkXpzwPe&JHNgC#urh3b1=%j%kz1suZ6Un#Z95uqJKQ|Ip*opO4ixRg#rO_1|V`Yx54m(I5{x|V9ZobOC_dDjH4)0}o+ zd8v2rUS#Lo_IC-^cd_~NhTAxaNAKR+{QV>$s}ptS@34e`#hs#V+Lv~jcb2<5Un;lA zR>q2dGu-a_#90})Hh=O-c>1<@2?LI2zZ9XpHB>@tOP#K4S7Y)#Ieo3q(LX!OitBg( zfsRkQ)RdvS{in9ghlfRSeKQMg2N`D-7uJ_emlKz_1ES`t^&TdY>~_rinwl|$Hkq}~ z$46`SooA=iOQGGPmh-fJ2*zWrmxx`DseolH(`CO=Qk;%27d3 zTKhooJ+984mtk7{y2V^0r#SrmGTEOkPSc_}sk#+)(}eUJ)(7tXnKIMaR=OX!CUy>P zKO4zfc6~Y1gb)7mwr$~>k2l*QXK+m0LPxC^9GA7hW9`eAq}`EszP_Eq=*ec@)45R; z@$2hqo`M8hChY+6li%6Sqqd7B_y*p2{%!fhEEpRzuYK@ptatw% z!}IQO4vSmPU$Y9bK$YE+tuSd-tWw98pdS~?pO4O zEwR+~OFLU^a~<#GDVY~k8Z{Ja5Km+Z8I33RYfdBrTV&;PF#c<@h|ug}%aN+p zhP}xX(euU&i%Y9_qFkv7T7I6jlAW1$ys4sn6HE6Der7rih%RT4^o19q8?k22ycxVp zw+%*~h`v>K;d%C((ILKeasB7PUH|eao16xr@zw+7=D{|&<;SY=^8>@v^uVb$>zNO3 zlRoRs2QsH^=bwXK$kj4U>aG_Zh@Li{4+Yt_f1DY2+qiO?b^Zms!dkgW%k`>*-1B~F z=eKKHgpFTZi|Lmlnt!^+W-Ko?lU2@YoYe;vwttbE&H1N$!f?TJ`C(=?XL~RrzeCvC z@9C|FQg%qkgx*_U}fQTD2Qq?=VGn3%&O1fwa_eB$C&(xjC# zvbg7W5)k;hO|M~Oab} znEV{%cIjiS-z(IWjYM&NnxI4}8I#lMNZo-1@s;hTA?pIG-uTNSo` zaP5(uD_q`ZCjDUlyUt9~=Yv!iLs{%u=6d2`@NxUO+{H|_lr+tB?6Rp%#pQ!DT3qh2!Iyv!BHhU;Is zn5&MBq~LmA$(UPOR?@FTG@)F}GgbYN;YOR{Dy#N%om+FT+qpN z3?A&Be|3i+i3Jqm()X7*J?kc{9;QF*Y~yjUegNM-mZtOH5%DT!yN+TNs?WfO2Wu@DPShO+c|UZwJo~<|3QYFn()!^$>h&nZ?UIkM-ULUkeK>5R zAX}j{Y}i2ED-l6gq65?A8ZmJsfSF^m-!T~Ggdu0H zH^M!JtzpPn>n(6rFmZJT1)N=pqPn`AlvwPrN=b+M6z{$UY{iRBZA#FKy+jK0jI#=PV7Y8V#Ad{kr5#4(oqRh#1Tk}j!$aUq*@aY`@>jVvV`OG$#dOTwe@ z;SN|48li*}gXwCvMhxqe{8E=;^CB#l= zP8#N4Fu=9{ewYArpl+^)<0y$yYvuP6E;)y#AQ9#`7|c!0Tm`3HGKNBE;yhq(n&$F2 zhLW)agfUJ7wx!khj5<-nIl`DUTT#PYurcJx6Pzh5N8MZ%=UK9*9>}uK3A5B_ zO&d0bi6c);aVoGGwbtUH?)r+r02^WZgl^iB~$H+eBO*vsMc|RPfb}r~eUm}N* z)xznP#3N5Maru~wesfMmUK z*!m%g5zdg-q^s)@97@&pPUv#pxd+PrP$wI7XaJdj;uwr@*g9Jr?E=S8DuV@Q+{7Fe zAO{Iu>;HHi`pBzLfIM0yhRra8NE<}ctbn*cgar_Dh_C??IFw2t%N%Dis|XQRKx`nw z0*Jv7wqsC@?NF90uH__DYzL<~ge|L5W26nTExN`%5{HGMDqs+)v!w*F#hE=)qHBD@9B0PM5@)8N#+Cvb!WP7edGK%n z3k_y;zzh+X$pJIL&=PH6PynMH(|tKce38%LPn`Y%uKNXYY$M396SOllghf z6hNYv1ZMK+K&;>e4bnlK2T;cm1vIA}#Wbd4DFXfISuck+K^eppb=BXH<>tDreFbVyR6ra2?@fm0x`{YS)yy+eg( zLqjtp8)}-tLLayU0$YB({;;>LpgJ_vO_HUi$t3g&G+TazL#8ogPW@;8*9-&ZS1L?_ zB@F_d9Av(tYkyv%64LJdbpq)i zJ4jI_m(EHF5L5f6+2V2}Vq2sB!vfbkp{nvlT}#@G@|da~&S|Dl?aAirfMPbjm4 z5LrR-_2hQ{c}yr{M@74rIs*S;CMyu)KtQ!kmasMtA=O*SCpfFQ!=R!OT7 z1}?IQtnf`jLJNpnK*XcvE&ag5e*X*l9}|EG1tI|mZzK@WK>UIPREq$j4iYGN%L#3; zKoTtQhqmbgK>&%K+^QCEk1Z3pGzFWR(xOG!x4C#*aBcwe4fv`-cq#_`^n@?60_ZQY=UHHq36w9{!6XeRwf9)% zTqqKr?pcZmT^zDq2FI@dysfQr@Zv2CoBxMzXjJRdc`Vj~e;W=LO1>siOQXq3I}yVX zi2{L#1VmMlfWo3<*DKINaJXAiA{Z=NP!p+*)Og3r=3k8Ar=3vbSj1wpxh2zM*WaRT z{-end{rexyhUlIDC<>wp5arQTIZ*29fx~qZGZi3O@*h=!=qemOr^$;%`B-`o()t~8 z*rOpz{U1$$C^uqR4hQn z4OA#VB?VN#hJ8>W1Tj8{<>4=9tZF~GT{rn74(_K18^}Oh$sTj60xE2vq7N#D;EaIt z0#r#s6+8<)*c1n5J-Tz> z1pYGcA!sO4k1Ye~2c)ctndM{ZF&ZG1ffNQ(fqEJ^GCIx+A{eotC(Zf#u7UB zlYm7CtY~0y#;l2h)&npk0ESel$Dl?AxU?Tw_$FpEYSd$HEHP`4RRIPc)_w|-GBIlh z&*KJ$eZX)t_WiUrwHJxWus>j$)Lwih!>54hQtw}>Ev7S)MZ9s-u29QcMGmk-xx zVv9MEFd5!}>*p}XoUoe=GXTaKb0TIkoCO$5%n85AusK}c2TZ)<$1&E5G$cvu8ZCW9 z(_mSf57Elr?P}B$t?~S|ryRA|&6FP2W=ocsSa2ilIq#fX4Yyz1J&_YHkJO*j%#pMk z+7Mv{#04TOfS5ys4Uj;O)GM-3M-e!(tdSG5HV}b21|F%jvTTuQYn~pdjcv?;XhMV) z5GRPRL{9vD=8-Bxj_g?9W{~XDn@Q*(-N%>gW0ymBXzkpANCF@vfV87KVqYTf*~QLa ztq&xX$UT)`-?Mvr+ar|&IxuiVJW`!Jz=>YCKX#@=?%B@-5p_T;A)-yb+atGdKj%!d z@;Ep+ZA(sPDNZRN!H-RN0Y0t9FPSEOTNPN}AnOKXu>uR-f$eEQ-O~ZV!gUW3H}(QZ zCvtM_s=y*L`{;X6Q1cxtq?3VGmxM~H&<;tEQ}xs=z?0S9v2pDxdPqyAF@YZ(J(*&lI%IbTm`T|>LJ3!ZjVk_*BM~t zn#ju3)~S_{jLd{v!cduTGY>(@o=*$X9%!eY;|2CHGznI{l7j}FV5Z570wBoB)tGFi zrQ;z`@*gPZi10PO$%Grhk}?;bz~Ugt%7j0Kg+Y*zxnK;7fgl5dNC;8@c<@N}R4s^j zpe@y9AP5A|v$z1hErbw6K%fFa7X+LT6hdGJ!4d@25F|rj1i>f-4IAnSNv_h;EVu26~gxER6&LM^mF?@)HK`abn ziV#zTSO>&9AZCnCAk|bsLhv6$0anS%MVoAf1R4;i0BDTJTrd#H$`sp&6H4}^E|_|tg?qFh;D^8&f_o5{d7wFZz;~0Q zC*bSMK^i}EJgJEqBW-PzvJg^@#Rl-7)@$IrEBLAJJ{%? z1=J03q$+1QYy5P3x-{Z4ZsF(Y7*ci1Qj@VYn89yvXMf>muN!N;MUW^EWI%|cRfXEa zr4h%RJ1dI~kcb0f10-9_@fK}q(kF*m3qRYpSmQ4O#r^iS1R%izgpl9fdd0%ex-GW& z>_9ocy(J=SzPOwkW9tFS&Px3xHh)Z33y51l#G_TK0%N5SxW5ZO4H^uCth5ewnJo&)^8jRNcENo|u7d?OAm-*KX z`}bb3CgbuE9uQlQ&;^2MN1|H}-R*b&R(fDR`6`I^QVi zf#zs!pEp1;oLij4Ma zmOITCr_W9={@Ml?rMIka4I@(mGfj7D;|)|T4xDg3y+PXeeiKy=>_VpxWMW&^f9|>O z)T;hs!}c<2YobzQ(vvxb{KW(mEe;G2?0yrvtNIJJas{?vPNNrLM9hvCUXg$^2nsMtQYN3?$qWC8T9mKtLd@{`LoJowXDDW0P1&EX(_7@ z>|vjO=O|xs3VujXz9>mqolM1JB`{bJQZF5Ub#y0y_-Q){x0Q?_CS<=@=}M00ErNi7 zPRf6hNj$TjrFx&2%@nTW7$jYlEutd`(D5QZ%A^C~0}wjue_kFg3>hp@1cj8Vvdb_K z_Hxg9;-H`?WUw(4OkDv}iXcz{Q*mG_9jp{9U=EaUQIS7!|D74SH}`>nAWijGG9`wq zsDfKfSLc}lGCT8Q9E7>|MPK|*3+>Bwpn**D z|IB>I%z{h`$TZeN(u!@U%iI0BXn3WE|=D3K%RdG`trieFQ* zs}9LS@CE8b>LIn%BVou!Q3e(HrGZxx1ZfX`@$q2G)86GW*V#QnhxVnfaucKFR}CrQ z@3g84nQ0T>{RepvD}W#$f+7Gqxe#EOJ>ieuhW4RW;lya|RZ0k+Kp;jeqFOknhm;h_ z(vcV8%aWI0!tR+8qb*mpAmE3<8G?JnXp>bl2&5qhfZ!?w3dABpg)!V}K?N~905rL= zv8jRu%%abmVng932nK?l+Er7qNwEPvx=CrFG2Rg*qiDquBS?aX*m9*w?;4lKmpNHB0e<$KY`$AXGp`}dV z&(!LKnIMheS0p!^_z{bU6$t4e8wI8`<(EG0 zDHDq{6r6Hn|0K65LE4sBq^zI{ygY#^U3t6uJ;VR>tsp+zlSj&ZPHuYN`u=e$_mR5k z1M(0!TYBGG4g{6^^tSZBk?zX^!lVZX3+OOG9bw?)Kn{;`pHzg4#1aq*wOe)H z+$e=L@4b&QdH?uUoze~EzT40NH{GUH?&Aj+@heBC8Uz(ZNiI?Va)ALv2qJ}mFh!?o zUlfd=w9gFe=5ULu7V>=WL(xWyc*2w4_uWg&=RVHzi$>3wjWrsSxr>)_FN zXs@c5=scjI4}k%I?~r_l;hxB3P}Z-N6~u6xBpJR3 zV6LQJ%iElqxc8@AglDzUgbFrPRI90`p7XsFojjdx$R^+~Q>H_>RYORdMpc^*hZ|uX zQD4%BIoawIj3Q&iePB-llnP1M2#LsQcnLggNYEqch%IX?RM4kRRx*Z zc9lLNWBcw*u!@M>fyeYfU7 z7*bgXe4ZR^%;rZNYXbv(m}C6-njbN);<3WjfK;4P(pidMH}Vh(hBu(P>s&bF+x)rw zG8>z*fBV228+%t0ApEg56f>F@b}P<&erZy5r`X;UtahE`v6{-x4IvFcUlnmDB7n~tQ2tQNE(~dFO1OH0 z6Q%rNoKp}&`bYT+?Wc^Z*?|-UX&tr8JhS&&!B5^QXCdX57#g1Eo8zjtJi9e1g?(DI z0O12=$HWoMjX2Gt#Olr6n;Nwl*P3Eo3_UMO7=T^*$Skxvd&VmgXrJ^9QM zjcvNB3^%`_oLT>db-+~Pmc2lJR9$j{JULCz?4L6o!sR6jk#YZE^q0ot7}A5@nT3}s z7cB9jJ3`^;%b?z~;KT)uN_F+hg^0wx?IpjYl%)*c!87 zzk22l^Dx?FQ|n#NNMRL_5f#!l9SE|B_>g&irZ%)=zLT%kE8EkHPBt6tMI}r3#&Zhz zB{M0S4yXt5J4kXJzr-w(E_5d(iz0I#n;tw5Vs)5^IabHm&MYjd_qO%ua)w!MQHmTr z(BTL>)nNmNE9{gP`6bXE`6c*JOXO1!HLaOk1}RPwuE&R#mq{VT`N8!Dxxx@vXopF9 za*bHS5VvTDV*uj}GYu!jalrM;(DD^3g!PYTCGq{pL_7$0(&05Uj;KzHVr}ZJc5;)J z%O?2tfDlKFPY|t1%PsU|gdd0k#`+2*W>a9~-No6xj`CDUE zMNw;fJ@4IS9vcN&^ctg*NC(DlewDJ+JW5D9egwl7>|>Cc^w%%XE&|wi_TE3ceyP+H zaEE7MXan;jWs^C)?L!)+$Epr&MgN(a_0%RyxL0!uC1ThJhD8ynv7|7vhimyoQF=Jg z^DOk{V~|4eD1|m@9pdBKEMOAx!21ore%%Cx&2{$hKNHHtjUO^7r&m2O|8x$K3XB^Z z;A0_*a_0pT&%#el3{q7nL4mMU;b_JLdk8TNV%j}Auw)H`q;f+laJHxur~RXLXh~^M z|J&N4NH@4E=pa4lk3q$6C3MvVD$%tb+YGJr=O9(wE)vBMyY?8{V8Ra1X=T7SrJ#6W5^W@WP@qHG|&-y|S)_UDR`CAyFk^bjsE<>DU%{@V5KTj&mpY z7}X|}%qn!+<_kVNF?Hr+dlA&V=#)NzWHzDGLSHdI>0RN4?Y?ew%04fns>NuTue6^@ z)%=Zx#TaT`b|E?E%%3<=zC3>w{mJ6>`##@JQSR@j zyxHpd(_Y*B(K{B=_6CV2MZV<9Xc&7ojV_6i#)WLnpc)+bhZQuqZ_4Pw3SHcTM6UzL*N` zdGmVCm}Lh=>cL;hEqgJ~rHDOTV>WnZPrY(Ow#HCb+bp?=kAkuwBM%r!zz_$<6fpKd z!-s$%pgo)N-#J46^WmEIm6<9EV6*|_1Tu85%(&qJ<25h{fkCeYjO)P214aa@i}9Wg zo&P_Lq46*_H5-a|>~S&@(P9U)hL{?nDo!BMfw&7&8+DMf#rcS3i%tK$Hsq^%NBu8@ zHY+gFfI$fi1IPf4S7Z(?`Ky?13p-?&e`B)Pbf?ykFHIfxJw-ofjI3DXy_0Wd9xHct zv3a_ET#>RhA@|yTDR>;|#9-&71UMtNKD+@23>e@Kc%q6e(%w>se6TI_UiLY{!*@Dq z;a`h5vct22HFDWhn|#oVO;UP{&cnB|9{e<0!_GC1CUkgCDKYwQ*zJsy&|__coY~`B z-AVk`!?hP`Xk0nsy_(~sM>o88o;FBfZKfV3bT>_@Gp>2lfJSqV4Os)SySX(|dU~>T zp@#Dr53|iyKC`Fcb`Y_MF%=VYxXdLpZF#pMyqa+mYbC?T8Mg2HhII6=zR1(~Zph#Y z+aK2q^smOI&XRB}4kGt-^xG4*-CL7wJ z_O22B$Ptz^R@>_2e^9}+CF3kNji}D?i`ke8WHR+PZjL>;WZNnKj@zWg)cjGkTcFzR zzP#M-W(q#rCgO7cr+DykW}ebDqB;F9;d$~r8DcuOz3Jn83RR<8i$(hgQ#sk_Nm&+c zqk1T#G?GTW!SKL%)~?~#1`|sRT;%|vdR=x>bM&l4-6O_CP%X46pxah7qWH;DXbvx3 z=W{ERhgVx(S%h7}cV|7$f2Q&cuEB1z#~D?ureF9=(2uIkh8|FLRJTTJAAFWlGLE*G zeVVRuo#%mhRWUBY#-p5^M2{q)%!8pAU*T;v17}%Qt}`l4xt18IeKUN@X0V|gR$@K5 zmD7q#F0)&;E*o{Oe3)_h(Ilx%8zFI@MmD__SK%qT(|1qCJyYU|9fjt`N_}}Z-{Plb9-mCAUJbD;_IBlcM_b`rS>Kv@WUV8M1L!(%vZ)^ zc-IiYLTRgelVuDN-MRa9smC0qi~?y-$QCml@8TpovE6-$BhDvR#v@x}bGLcYlO!v% z3N=z*2FCNViyhTCIz>EbxGg<6%sb-au6Xv4tX?bO$#?i#eXh(tk*k6>OgrVVo$0e1 z`v;iszY(hSuo!EL*=V!RFE{URe?5~D{^Hur-=m;_AxqZpqfuib*uh=>GdCvnbDku1 zxqDaL{hi%RkD?#l%oIxipG|>g#5GI)qh$8dF#mTxB=2D}#$_069xi#+vDSP102^A6 zT4+!r1y7YNoBT<%9f|a1;bz1qV4+p46*6)>#YI0|VQjb0jYcoh?5q-rd@nJ+_v=YH z!Tdzz6`ipUB72#GMay@6Z{NQBcKx~o;!-W>3+>5R?t1Ut^X|ltcQjjUu0{AP>~4)jo!>x!V5GLf>CL}V>!h<>OnSISUSGj+37IQQI

^YC_to(5ZsGL}lZw<2Uym{uxOEzKJoQ=ksu;nWUqU7k-|xI% z^=^!IH!SNBb0g zLD|dgE-2plMf*jzjB^q9r&FgZ{eCUp+r_N)3`HLAi{<6pGY1WWol6g`O7`gzOScq? zkP`7udF!8RRTJNm2FP9QY~7*--Wz=jT6yFMOZ9+2sqx~lAD1k4_$=`F z$>8wWwD}6@E}O`WqxuK<0l(?+^oX%6rL_5}>C6tHZibxnwgw5xtQLOF^CZcx$r`Ww zi7=@5m(Ma{9_S}hx1{u@PjRm{{Vn=^V`l=d`pb7a_YbsLwEgm^wIRFE$NH(#AvZAW z1dduh9~Z^dK2OS*z;Vg5d<~X2?tf1=an)KnbaI*b>7~~rcDy(p${t?oaG&?8b z6>nUDqkNg}i`qrEL>x!614X<&;!mDSy=h26y&7IE^ZfCsRs(*M(#_Z65mQ0G%TUB_ zbjm3=Z{@mZT}wz7HX&nS=y;i2u033@;8mjkl5=^9E%#0u#)E43E}{M^+j9s0&pB`o zF8plqCB>t=e7pHKC@iE%jWoOst@&HOG7v?1cMa<}AC zG(dy}@%6j52T!4X&ovu38!~SN6a`!VeJ{H(Nw?Qs-Lo|l_{p0+hn_h5a=-`8(5-BJ z@fLn8W|x-CQuUm6@mi&p0&MVsFtFB+qCm}QZsXdZvmex|RLNll9fh&Mbso!$xc=+V?^=J!j z0{N0$KKDF2??zZ_2RCJl!ko&75z3f*dq)mU2aRlh9!$O~sU}*lQfQdk(lfHhCoS!Z z3zdt&*SWHym_%EuF6iU@X+%S^;kna<##^2V{i_z8)6cJcyd_+#-9MfEdUGjtYgCnQ zCxcc`Hm7=_DjxhdJy&*KWKAmiHzZu&4!1&Zxym-*`970AxJt2kdwHwhiNqo8^*-Hb z^^c|~^zEjv@)Y4*BNc?@DzbP6ds3Nzg$w`H+rcqI;XdZZfCf#B0U%jEnfng~d-+cvE-r|C@_T1KAPAui_DT1q)^Lp~Oa_L4zmm);kCP%-qn%wuA zZ2V58WI`RNSUsG6-BRkhe{P?#@-ND=U5$`2@&LinCz|&I0-m{7c{opDPJ+#<`e{De zX}pljW_MrrUSLIWsgod7eU09v#NYlgBGh)E{Y#`^OuZ_c*GcLAVMZvqVSvD&lZ)+I zSAy5|EF>}(g2_?rm71Xr#6wNoD470|e`ueuEa^+4rpTDCay&=ksISRa`0pNl2)xH( zu3WgZmyen8%XrF9qr74Gbkg6TzJ4!tr5o`h|&t~I0k=aw8Y zr@FN7#@BZZ@#Lr;xhC3-5Qy$m_EFMd_*qsy=Uh01TGsLF2&=vAW41KjuYOcCPwdfA zjqiPxqTZhJ#h07U=~8L&&mD$ovKc85j4nj2*Isd7ORUjhe`$I@^PPj!O&P^!;$MdA zZnIT%Y!AvY;SASaaM%Zk{tCD7AQM=6VVTWyyGof1BV)44Om9%&^wz-D-nf`);L*+!V#4qUp{fm5$za)rOvu$GZ*96K;6d zt5{am8&slrmZ)@9)&te@Mzn7ne@jH^6YF^%+J$nZ@QvF@)f4d$Mu{kHiGokD=fkot zc-f)ZG>MqkV+N)>0$Z(%XJc-Gy%laOBuMt%cEZ)+PvHM!dt%?|=ds@VSe+r{tNyjo zgF@pm!l?ne7o1u)8#UjqnNU4}xiC5z`6*I|mTVqZ`4nBvw!Ai7NA{P6IiGCdTyQR& zpyMf0%%RG&dgRf{I@PexZC|_bM^abHGqp}<=^oEtb^F+u|KrZg6|cMHUeOrQ{Ez|B z8|bk$dC`Otx{Z`DZuv<74^x#e*UE`Q8T;i zdk!O+$|~8mss@2-Vu@?QfvwNgV3`BIMe$>tE~DOzpSVzT4T-k!MV6HA?>t=XyVTUcwWg z_GdvhyZ9`mt>oGVA^FoF$wPVWDmF!WL-*OX2%C5HBUZsQbeni5ZYy=U;dswNKGsHU zJc0qun+Z)yL%b$5=8Krgc25+C?)`FtCs0&JtmC`VS#wkF*-uZoovhl;r&toH@ z+SkQ2^aXLHb5t_FewL$g87Dutq=;t8d#il>Hv2=Y`|MN( zIni|RveBTNv6p?xNkrr`+mNuQzOU96DFTblW}Z(S6>^^X(vYwERnuV$9Ug7(ysi`2IJA+l~qk=C9nSB^YnU%5@E1`)IW?oa(y4aZdLx`|9QO z)us2U!vrrsnVAaf-~aZM^W|XZMd+WDLXQv$y88jP+)JD6+QL|;M=c=u7lxuyEdxM`xdL>LN<2TEs8Irvgt9K{a z0d4YPOd^Kdyyx00@2P=X$o96*Uo}NUAMpKR7uKD%DwWtN$gd^Hg(=JSb#H}mvr zoi)F%|C1ix`M9fR^Z2e!OMe*W*ozF3yE*B-M09Y@t!Ae?*M9%FrvAhmzAeVPNkb+t z-54$Drst}`GEb@Tc5O8zMwZgJk)%WMPek2f{Fjb%Jr-GfjSDjdiha4BklS#Rr;9KN z?&le6HSgcg8JCsmrBq_C#Xk4E`G{FKZ0oHShps}sV(-4?_ytoTOA}*tQraY6=mOJY z1Qz>;QAB~F%Zk;-PWE!++u7N(j$*4;9{&d)rGi~4@95`XZf1JH^WPVDB@#`nTdLj` z|LN<|ZLD7yKvnzny-jx2`xnPJh9mAWRfB0dY60LF{qt1*}u$5(G2M#V+)RePw$R54ibVOSy$F_xUiSTry08{D_J3iW2lS2S|^ z#B(F^?@dXc8`Ejj|1~fB6+fBBzjwGGz)WgZ|JKn$CGMi+z_`w7480y7?HY0^_A9wv zR&3`%eSd#Ax=8CH6NIWF!Z-?iLzE6;UK_j${37V$LHV7cOqJ7(SlyIB3Hv71WH&(3 z#72Mco6K;Q+@=4KI^{6k;j@J}GY6){Aec=9WXLR#H7$d4~%>gH0T218v#>Y0F3X`B?^xgJ2UE9q= zaXu+;P4fnFW-f0;^!^t2r>sB9!3C6iZlu=G#4_!l)==U``ucX#p<+uz51Tcd!DH==zhxxc|S)lT*H z87$;Cpq!Q#+6iWf$r;plX^q;S{jiO$DLtHGrTP0fb0aU(sVjm`Y03n@Hh{`1XiDpT zBc-_iA*A^>5#gWzu-7Soq!7HL#};H)S$&7x?)OUZohM};#{<0Fi4vzBTjF)8S}rY5 zP3=8h>lSP;z7dbZZEgzA5gl?Ed=1x>5nGh%<*yvY%H9}{jm;9;ifmbUMY(PTb4nv@mK|XpAXF-nNwV*aqcUtZ=O!A>o8hxd zkY`!h!L$vW4QAa15*ARsfh7z#Xp|j8?U>8z2_QTAiH<;Lgo0j9_N!~jSYVvwU=2A> zat!MTyOACF7#=4(^16(RmK}qXMwh`tZpV-(IzZ<*|NMEV?>^3>zN&I(&~M2dsL4Sx zpiU-u(r3I(#Ns@d(lms|6i77Ssg92}emraYpA3|Q9tEl#@ zw|_|#O>0T5*y?`E_GWFz;|mrsJx??xF;$l}?&jgTEb_yUhQ1A{YAIM(KR{zS)C})2 z%LsgfGBRB=-SbC)&(yMB(fL~0Kk8|a#l*A$G@hPNWa2t4L`qUo-QPP@kptNpmpmQN zaLg&r&pQ)lu_&5~Vv5D0Inj1oh^1ug$MmW_Lv{s)*-k^x2F5HXYA>OUWgH0KuZ`sm z<83UlOwM`}`bWr8Jnb0UeJ{wyax!aTxgdF*U;H=|%LpX7NXP?fNOq2lvAUj>(!*H) zYo!)>joMh!I@zd|<-+CW7($FQu?(XkS7;s@!9>=+lCCY~KRW;4AGNQ1kD8Bj?JN5t zzUrr`9Dr68c0f@z5xp19RTsij`9+U2ub}kV*}QTJ1xqeZ?Tg0kB<;Sky4DK@UNqB; z6peeu#J*ym7`CrOOodFBV_~_N{x}~SV@)i>=*Z`*5o~1bD?>Ft$|mFcIrf!2#u~D( zjG2MRv9D}wXJ3iwG-6-v=ViaLmR5~M>?;|qD#yBV;kK1=oznMdTUpAttz_&N+u?Xv zMaosB((;v!-D4~cu|J8exLJGlssN+zlX9vx2xM;L7W||e#YtWzt&v+Ju#78mERb*F zsR0qV@j7HlDEP*aJ8z=phBs8{q@dn9awl%DHL8cS>57Wb z6j^8kZQ6pY2);COLq#PQo9U+{@fr`Aq$3C&I_rFmDE;3fcO)^CF`*p>b*B-SGcchK z3gy`W^^Vt>8<=xW4V z48{(x`XAm6T|b;h(2wQO6I%YRX+N=>qQzJqqd(;oN(JV&v=*~K$}_BotLj@pG9S@G z_qLvGK5N?az$OKjC~R94^(=iHJxNH(d;;G4Jd9hYLlr#TN~O8Pk42$_zncVsjS>bdA`7@;lTw5CB7G>vM8)A%7;8vNGqPifu zAFT}fbahQMcBShVVPsk6 zg_4e|xzJUMFPeVseZ^YQt`>i}zPD0eo?O06ws~=Ru0B^Ox0V`;vQbp^iTx9XuA6PA zM3E@sCG zM?9gzMLK@*JtgxMlJp9*^q!*s8z^UHXQ@4kDo=0(cAR^*=ojvjEa|?2UwkjUGl#lx z_;ikbmDHWVvX8cJfFKl`;hZ`(8HICcp_&}(V7~o`W85iji^01ZJAVmKPyB5frILbmQPT2_)Za-r$2<*guaN{jlMuJwLH!2EOI`6;Bwdm^Yc z>CQVP?GYf1@<+lDNKtyjFFqaDz)|kIPbP#qspr5vilPL4gP5B_V|mY;!5ZS?a>`9_ z;?qT^VE#zaPZ6EL{2t}vV2<<;g|3&rjM@%cUXO-?%bQ(+a|^xCam7Xd2<>N-9+gG7 z1SbgX0ADQ@?cz5RrT^8MVK|0IymqCisReIOnRt3p*A?@MxoWLin|u0t*X^`%;Id_V zo_(cO1QA;U4x3s=PSR;b_Q zU}*3gH|dZFx0ySD?i44XuD3@c7=^^9mk*Dt#NsAY!s)o~Bhdb-5Ks*lYwi;dk6fm& zWieXNarwqywrPB|Rl*busc3+`VFkl=j8o{Hi)-S>Bpa`AB7UzCLOCK6%f2 z{k5rbuP&T$JkKe2t^LQA3wt(KGI(ZjYuIW~TwW6g#Zi_qsLKH34*}=&2SKm96INd# zNEKtvv#fz#B3qTc#P`j~`uu7R7SD=$w~Sz&IMJ-HpIBMh+*4RS_Ofx9OW%~wpDYLcLgEU4@=(Y}jg6Wv>Hx&c<&PunUDw=9|E#FWzS-mU9@xM?s z&C;|3Y&F5VQow$oh^(Q?JmCv^!L|#A2}xPKD#E@T*QEv=u)rPQPT*RCK@z7i3@Q-E z6c~gH31lToTo76AbStV1weVXW)Iw1!WrSMSRSm0aeqvif{b05-dVyBPEILWI_U*&>ZldKv46W?E>{E1^xO|FF0QmSN8b}m z{`~;?=H~qTKA~jVE;oc@j6|}GTIsXMEIT3g8jV4-Vl@i)?Ta9qr!XJc z2B%&O+*(_Av>zOU%JjHxAGeXR+(-Nxa|Up%#U`&A3wy2APA|E&+@3HBz^SHB zDz0Cx`fi2z=If0@!O%_OB{w}{5+w!R^`)X^mkf=!y+*~V)IFQmjJ$iPey9npaD%&( zT2%lL!1-e2agSj3TXeM2A4KhN=qYQFJ5l9oggjFlVA%(9s-qi)8*-@hGeuT|I@F-S zYGqqF_wF6n0>l)*p?CG(ls+^}K@>EsU+4!R*FA%Z&sSq`el%F}{iVHgwQ99SRh*4f zVFxz%@84Wp+(d04BlB>iwU^2~nm=W4??M%q4~9i2I?By?T#Wz#7&~et7o;bm>IF(I z?ME@t744%iG(Z$jZ4l~-zhm3Q;$I{Z;+0;-ww$8w7(inmG%l;8X-2t#S2xd9;b&M= zEV*`}D2jrvsGw`PZV|6|xu9vXQ+4?F*Z(}avXPK^TdhGjl+kB+ew#3vqNo=X@xZZ9?iey?Zl~fL$NQT1(tm% zJa{ONPoeZvP%s5xYYdZ$sWwz+7KK4SQ5#0vZ`28|_y8yc`rB5;g1`SYE?BEBR^jg_ zYn@t^RI48b5eX6n4)0Hud>@EQlrHu9%QtVoJ=K;KXv>oT2gVug4JbN-G(;%~b{vS* zI#qz6c9sF;GeDu6%YQZ>IZq;-nGT;z z=5$%#emJs{WJbzkIzX(3f}BR-rl{;CX!~=`BtEG+LA4q0FNbI>)(T^Je(jXqpV@ce%8P7;N(5{Fk9ht7uR_LX?_Uz^ zAfVo|a0a0)*Vh?@4u#i#%6%dghbzKScLyA$qE(Ed=Uz0h)71!hn0YshI^mDY;KbxS zZjQ!!9houQ86EeArEQ4v(ilvf7O+hDf7uQL$$CJHr`1SB(8w!(Yq%s*&CNW^f4IJX zp7t;!878z}qkbJq2R$5DzL6^843_C?wK8v7larRomuu&;rL8j<&S<5Hl2;&N>VTv9jHTqE-+DqoJyOTLeWaL+?ye3;I|=j+ku*7H&L z!Mh+OeUGNoIK}vd>vSwIZhiu1r+0_a2LuEv2f)raktpE%IY7RDd-SI8i?X4!gLFs{ zeGDLD#6?yXanF){&|l%G4z-kM$`50wQNjhD&%(W|4VKpiYcS~WeDwD}La5!nWl@Yi z-dUaJF_g1Thz(2AWNd<$$}}pN;^DT+gq*ft<4_R zbYA3n7#k72prZRK;Z4nMNHT%@pKt;|p)A;@oQjvN1Kdm85gNODtqX7~Xh@ZVok8#5 zYvnbJehOp4$1kh-f-u{2oZhS;__fQnt3jvK)f7>a3dKO=UpYHFGg+T@oay@H%eqkhrXa<`!^i~0hiX*WQ?R+)z|hSNC0Gae4GI)N|Gbo&97 znajAUf>xi#=2R@w8FZoDLFF*E#u2hrFeVy`L^SUxItoilW5Vzc)B=I;^jw~IdmUZ~ zY6rp^Te6@MjH7|^Dip$M9Oz|TREbc~1pfJgAzGGEuuFU4r(_ol%My)$-UT$&X7~~h ze={{eMHf*)WT|0mCQk%`H`Ia-*#km(BJp1o)N)ZEg5d}WE+`+GFoM5sh!Y3p9V>m5 z4uqN5q4frx0r?WBy)`peZq2sJbMK5VWis(e~rZLv@)t<{%@ zY&yPTdc@JTR>aRGp;iJRjI}eV@Ax8Fwg?2Cliq7Y5M_@pbrO^g=fnbd|0WtUPRWJ561;8h15| z9h!O{ucF%06a_<;)C#sUSskF=LROoi!ON;tVOJ-^EA~qCY@@KzhX0>^*wXc8r)xFu zYJ{me7NzKd42tj|K9}V%WN4TeBnkG4GWH44 zN{c1$CeQBOc=Jt#oBZPRzS89>1c#|xB3x1gHyQT$5Qzef%hD8i0}&ivMF^%J5Y4vz zoBYz^Yi_#vM(ZZ8v~Rljwozm^8738-byP|wf> z83SLQ|7%eux(r<;+$-(-`5QMKcge+n*E#>(^Z!*MJXu(m#kMG)5rwv-C{kMxACd4z z`>sdgAIEi{fHArfu4`T7Cb${sH|JsOGoWyHiUea{fG*cch7&Zp+Y!>~MuyVpKQ&7w zv-mn7M}9_<9>vBj>?y^5K&3qbfXE*UD)jdj8j8#KI6fjZdYl)LA$vY$->64QH=i8d=9s+p2LY6}0XyIEGPoPGKZC zbsZm^i4W&efoh{TwKW>QFy&cNrnCkHwAYWI>h&XddS_`7l#W1Dq%bYcWl%Vwse@Kj zBI^tY1^}1Xcd*QT+%nxeX166D!G%Lx5+A`N96BU)=Y~TkxlIPA!UMx2c1sF1G&j@cfW^}glx=)c!GoU$}C%heF4b%!`{quoB$>6~I5hWOk{ z2T4q^;rbcC>NzJdJa5Kqx1R7~1S8{tK6g1_{0{63U0gs)1HK+1{$%3e6b~~Zu>%Vc6SlcpIyCCNFgjp#r-nWpwFvUu;^dk zCGuJ3bv)0kB6FE5p~Egog-;M?sIF?tZ8-e6;>3J0j$gmI%V+<Sz4 zl1hD!PdA|vY&^2LnZ%KYpdxSw8$^Xa=~qG7stiLB zm4E*Kf9N4ema{M{?h1xh%wH{KJ2>VVP6P&~#)ID3+mm`j-b~-woDjrnL7F!0bvxD@_HpN+U&H;o(AtU9hC_XsH#AEi zu_|<)V%8)CDh!2dC`3WPp5EB>?d$LX6v_ZFRA_|jtl;mn+`I0&$a00aT+|OcIrBP0 z5QN0?ZD#NZ9e!!x-wj$G&UDc7?iwyE^lRasg>h;VWaibtOVqb(f=ACYoL{zh(4YgH zSYG7Ow{iu;c+zut#U~%n5B~8 zR?ItYF)T?{)XrYXgaMLWSopkZ8zp{9o%V_~SJhmzP%PDoFmivjw5SwRMFfqA9O92( zcipp+?i4IXmTGpvE6BgTp_?$&A$xD&Wl@o=LQgg2im#WeQ`NF4TfSvms&yRNmLy8N z#9Jqw#IA(vbYzU^KsS{r`)+87Kw|`r-#y*w(w$H`IQ{IkBu&?(sl9@v=q8a(U6F*n zJ`CDOAZs%It$eiQ7_DN3C1Pa0s|_#!=RBk zvR7XH>$DWoDA&TmCB^(%f699;+9ydFj~%rcOjRvKSp%%-68tHv)8)x|zlCHs(S%7n zUX#OlqY$1Fw;%M3<0*K$3T_RA(t&MMLAUYb*;cA+;XZMmA1FCMs-A z(JK~fGdwQ|lLYSXouZ)E%Jm_*rGh^<>7rX$sq9pp&jGy!X|8TKzH3eL_-v-9uo}tE zpN&*TNYSv4BZ`QMN=(0~YMn0BYkF;{F3915Pf2StfF!s8?R#mC1_**C zk>buy&%Jvu-k=~f=rwz!Ns^!!&~#@`d&HYmAzMLohwi4w+E;+4bay-(=%uQU8-gO& z58=9nhR0P5^3dy|y%D&GX&0mNcj(%s)qrXj6s2GaFyyl>trFHE{bWkeRLk^;ZDi2< zL|AoM{2qP*eJ)f=0R2d=Ev=Rce2kI!iBRY^=RHR-Z9rb4K0F> zRqg#}A&`m4?1(1RYPN%DMI~G5I(*soF zprJ?MBWA+gkVKrG5^qq5Bv439x#-Q6&Gz1!Xlq?T>Ik*glp|JJB^$`r&@9m_O&qEV ziY^&`kvBZw0sP6rlR9x471gX+AU1U28+3J*=JO()N)@%(-5aQ_g<|oD@(y41S4)b!nqX(VoLa&m5+P0{( z6`h?qnrtQ$g!45=2~N<&Q#HM02DTNpaPL;51buO%vmuofb(1gA)np}pQ&mb*+cu#$ z?$Bd>}c@XbWQFezgEY2C4KEZ8bVOp4IS#)k$mt zN4XO)f;d;&jFNo%}`rSCSP8qsGtBwewsECn7uMkntL^`slcU0Au$o1g^-rgXRt*UMM z_VsPb?&SInIw0I)C)$pdmhiZbq4R^7UQeTR9q)XQp>-gOnkLGf61%*=0?%3Ng)b`i zvn)ytDvcU0-HAjyON|IRJ%;#KK;|3Ne{+eulIm6IJvoNcxZ-B$eis{`#Rswxb zz8G)OWqR}$h$yieah-_OC+b1{ydortUduj0+S{H8h+S2R$i$Z;`NjN#$up z!+K{@^l3>HvlU$cg)+P$ll-b zl)lmpR_KoCsFk3GEK`l^7tsH*wr0=Y(CeMtYhT$4Y6Z(G)Pk#nYN1#xRD*9-EB96_ z^|j*s>u%_+o_yVW@l|GVvh~BQ$)Xu25Qaj^u8C2odm!mgaBq{c=z3+{<*AUpmrX| z^528;$=Vt({U)xfT%isp%q5Vkw*e4na1gSAQOLp$sU_=^-4 zqDilLjij|z;|@u>!%+W72;BhD;bnzCz<`p))m2fJK%G_oc2N`;|CZS-)AeuU)juWl z(^bDdcKXZK`q#sWw4|;k*QC~&wA|Rfnkfgr%X4e^CDthK*rsMAg=^0BWIx_-kj4}2 z5LON5IjWowp_gb~vUn-69Wb&PgdqZAU%5?QG zN-@I|1#W__B+2BvJ)*WU1^rMiuKqMtUS~YQ(tNOx#|PWE(0 z4(QQcrF*m%#9IaV+S;(Toju!h1nlu-hmipE#oPeMdu%2U<1#`5D3gakUB2%ehQB@ zXpQUnUW;hM?{-$V$KR;0Vwk=zUuyF_Jfl$2h($3}M|Lg0n>)3f{Km0OOBn4Rhe*t>Oq`{wpxx?vv*rF7706W zCG?u|Jq0gue+c#gyfI+UCP;VMW7B5+K|1>*=mJMTq0&_2{MQZjJMuT#41Al__)(@V zPqC}xxGgIk^2=A1f>J4aVhhcHfKc^aET4@qfj(O)c~XaPg{QvzR|bx|uE&x!i3)-t{s&ahw(7U8Sou za5TKmUCv#{{Q&oa-0Qd>2fV*8waa!d!ET7i7~kELniNE+RO0t%=-zd7CnfeMh;mRu z_rSIOASQ5n+7ij^P4~TNZ<6jWdbgJ;w9GRZ?x7A)w18y)v#~UF)yzC7G@Fc-(rAZz=2@S)ua-a_gaKt2o_k zl}fFdedSge{o5xzhB2V{;gr40mQpqO=$=Wi|N}^St{>;Iv z56;XSY>A2@&K%xrTeF9+II_<%TvHO{C0QdfF(uQ#x7nypn#HQO<~PlvWp1_bEBI8= z}Bo4hJ5%OFvw-`MXT5IxHcK5+F)p;AcsOcm)Gy&hf3(2Jv- zP}qV9!+p9)xYcF5EK)OLxbxzO4gHmuSDP;2vFabIQe@8nwtpr>WO&*Lrl*4~JZw|| zlYq~%>G)StwD+oo!n=}J;qPqtE*!WN+{`zs2%|`@G+ml@L(fIr>J**J$in%ryAL}L zKm72A9>z4OK1|aOKa6{pg?VToPfMIfchN&%w#akx8g7GnWW1ca6Qt@Jxcj*W!WRBP z?i1Y4aF27p$bF9cJoiQJSGccmPjO!Z$=`|sm;~v6xU~$wEpOQivd?Jr2CpZNeEz9uhq5oW*$pO+oKw1ZgcL2kmr819S?@3`6xNv7|8U%*pXc{37Gz|E29QL<| zU22*`$oc=~KI%N|p8s~{^i2&-kXk+ZuAlh~vpoOTK!r!~gUpGNWC8NkbQgadnvX{4 zg-ZaMR*C(rhUdP+exh^grxYjHPjoK17f9<@a(Bn{ek=E*l;)3eAK^aEJ;wbq_ayhv zxqk`NesO8tpB_)BbeaXrfqZubgBQN+T_mBu9=4}ZN>a-0$<2=zb+JSqN7OwOewu?$ zIZV^S3(OwL-Mk2zpXPpqdmHx-?p@q_xS!xYI+n&!Xe7EmcpQz}Ax$&qFgonU>$x|jC=<2Dp9@>#mr?dsNw0KaEiv+WA3jUzw|604 zm9RCAoG++Nx~1{W5nJEm;s5#nI$q8ql|B^y|CeoABerCBOlzdnqXcf{O4`yWrMGK` zqq4UOZ4=vKdX>U8L$WuLyV%!$m{R)FJIh|TRl3mjIHphSisS#eiG<@k5Z_9G^cUgN1r?n zZ2xUKU{O=ZPyNL2{{zLz`RBIL8?tf=z3gxu*qerW5R_Aqo_LWuVh?z_9cl*3@cF_t z!g1nGxgaHC8`YujGELz_;s4fnz3?AEZ+JZVAFn)&)f>)#{U3H@R4Tsq#L}!kMrDZo zaBD+8UH4~fO4L`#+u?fn{gEg}J3LQC2T!Iy6StqOB)Ku}ZuHf6Vo$CEIjQXrcg3l^ zz8c$b)L%z!IMSp>HRt!`_0=VBdK=yM(v5j8Qhi2A@`4V8c2u8TxBvZ*gmzS#!x%JS zJ6NC|jq#51(=g8Wl4~V(&FoLn`nhDe(`cG9*)9WE#mefLr(!FYx{#{w_-N zq6GTx7Y$>d+X%!@ihjM!+l7M7m+O9fY1&J=C45q_bapz+KKcLH>Cf1SRPk6e9Lp1J zYbb~4Qt-?@Nj`8|WgnemC-#^46E4trGn27C#IkOHwTX-N!8}74*Ehl-+^jSPI^Lh3+J}JcKFH>PKC?53IQzH@5OG2<1d**} zQpi4_-4%2{yEJSH-KBx89bC)AB*e`elFf?ysZET7{#9_mc@*2+Lg?WD@V+_PW9OIgjbEm*#?xyxY9alzQ4ibnlifmIgOk6 zWm$YXmiQC`3mBBer?9ZMi}K4uW$2p6(Cg-tgzel_f;Zvyw_`Qmj*p)bW$C9Q4v_fA z!ku3t80#VZvzi*N9i&%j&g}&04O9~PzcmG-#2}=Fry#_6+{bnX5ci`B0p!DZ#~Sq0 zS5kk>VQAPytK#|0gQm}}*$yTb$N)AWcE|$llOsIvbj$+sFbBLTmjfc)DggTxBlJg# zXPlVh-9YGeE$O|6)DD#W{Ya* zN}NfebQLe~f zJCDn2@20%2(jAPHIs3pqTBiNLz6bKl-LvGx<;siBB9<-1WlQ1cz0KnI1cN{c=+X(L z-}TTZ%g;hJcuWvB_dQUB;%uCtf19qqSC-}X3Bvo}L;{}Q=PVgeOkw%s%kcN{bE3G$ zE1!`yevOAeP5z9+hx@%HzdOVEltbB;v6n|1DCz74}}Mf<0vmsoHA?7u-|bmWL^uvnj`?X{BbV3_oysGz*yv!$iT~g=^MLgE9=a}(wvsO95Dro|XiQd}`WG&c#c;MNYxRdRX@LP-Bu70Cp~~Tk zyO`U1LBBf)21}%m;i`cDfn)mdHDd#kG&B=lad zcc$0--+N>)&(8|-bsa&vNfu^#zSE&MZjyw~b+T|zv)QyKE^9U~o3J5Sx~zHdVDqx; zn$3yNvbzVlbd2d~&;fAQg?^}0^;ujAIgEec(>qw5ffq`Dk42SO>-8gD(PO@6xCm;1 zCV>H3z@XY_CQ!Pb*Dwo`;`=BdeP59Z=3kH8dGlmpV(;FG!lV-=J}wCLnPS29gNAKX z&0^E{9jiD~m+5`W@%?7etQvMB@SFnNzb5lFO{B*c(^S`a0ctrL!j7xA80^12a_2%} zPx%vW=ZAu;yCSP=3=e3V-l*?iE1l{GLlZq+FNy6YjZ25dTIPV7c0+A8qvQH*&TUV_ z|GCTEQ|{&GpG%)uPjWz%=mJiOw3D@49lCfEZfI@z+3dj26YX}K?sQJGt3>YAIG>wB zS>uLF39!M1OIrJE+lp|_t`ZHpl$lodVbeZt+89`F?I1tK^B<$D zaZ5%G+E1rulr+p2s~) z*9f*jP94JCVZum9psX?^m2nS!P*CA*L5ENGqMB95ajOGg zVm;v$&&>_j?Uom|b_#C8ape1|WZ9b(-YiUBd|lmoxm@Ss^|t>u^fAVr=nl{^&mtWw z1W}yBZscu^o0{XDE(Xhm8$q^ik2AOHQ*4Um&)L;)vv`u9VR0%?Ce?T*T+R3+8E@Vr zEUc%_0!}Jv0x7xh9{YYE4ykcrfQR_MK=>Kbwb&j$yvFtctcQg@t}MbxH@(ePklAx9 z!-46GL9#tC4N00@1j$l9LbokF!&X-+mzT(JRvVZDhU?GWl^KUnz9|#i-5)Knp*?-OOSUH;=b7)T@2}I9c_lJa5W>q0oUF z+D!RupV!dVy96z#Lf40JZIBGgV6D^b`4Tja9`3fXMg*EH)V+Ox{aERmGjIs!K3#c<)8(_`FKG=dWgn9*BaIYOf{p;ZP{Y=y=1S_XRb zx-w89z`ft-9_lcf>jjWD)LO2jDvH3v5LnU+ zF3*cv*^&)K{9Dm8TOFx=U_zNa)+V~HSIU|t^NMasCEY0r1z8mZ;A9DkDO4Z}B9dZZ zud6Gfz#FA9;2HzZ6&*toWh=0?q8%V^Dk&Wed3qT}WaxSM8t#7XN4fWMALSnB{u%dW z?sq^F{ZsBQx&OrdcVdtV*@IE!Qr&`^+8!-YHCFuY8e+#H$Y*N-y^v|T8%)p@TgZDD zT`5YZjP%2?P;m7x8+M>h5{^LD6dZ-H(8v}UuptRu4b}}&|MBzCehm z`Em{6VJU?gc6~H#b_Sg!jfL`S6MT`EJKZ1y0gEY0A=sL`YIgRjTkxGX_0AlS=<7&o_CV9?m7nvlYk(UJ&?aDgwSK^5mnqnFH?6 z0Y~wEXcySZAZy_ya0JGX=SAUIlKgS_SjM&F3i$%Tqkz}HuL(rtHGvoZBcucYFaHzI zYfzk^@xtE_NDJ^lBjUdSCcp0WSQUEW4+3NJP(D2#rWcZk=@1WaAYN1f{x9RypAf<- zfXCm#3k)X@>5s>?5y)wJWc6F%DKdF>IuN5%5Kl+g6ot={5P^97UAzz^0g`*8su2F~ zqM8u?4+$VZqzL&uk4FKo-xAh95|70x`elg3%TwuxAlv&+VEyTd%n$*vhHVj!e+x&7 zO`eZp%j5h|2hI~1Mv}#4!Qbwp0Fnh|(;BXM$9+rIR>&M==-n{mR-rz!R%kXQT@ge@ zgQ1sXmK9MiOx!)s%LM*~{SWSOHBB|3k5izgvZ9HiQP57W~4M2a>t264W)IaYUdq^x`1IXx3Qd zvDZ7oV{FzXO_FMS(Rja6c}Zql^>{7UZF!M> zEh=Mfhf*da!Mw9SClJrwPa7MJ=`0( z)7)FRcj3GP^bw$!4yfb?6{$zjom0*R?*#K@{yF41dDHq^17XqX$*_#Pj$h`?)?5KCWUvg|gh(8sbKoXA|>UVM&A{BrBc+3Wk zq+BiGjiux}j?2)z$z8*}oVyoBFz@3&0WJI2cdd23qzRp`bX|HX=jvXUn#L9Gc&cUp zBDCyXXkIUA@(wFrm!7a`{p(WGa}Rd|cZz#6_hZ~oazD>~5m#+rnD+IOrtLW8>r&Bp zS320GAbCpXo=c66Kfry8`y7m(ek-Mcz4QpWYX$65k@cDF^{^M6pxdiqp-=N-4z0h% z{q0Me(sXVNt^#I{+HWhH9*<23p^}DIbK6!I(xEgH)dWz^O z6FNoTFS3-XQ<^{jJ!plvF2~5z6x$t(4+e^Vghy`_9(^9xUc!n55v}Qppxtn+FcXNc zG+Q%OO|Q;O*HrZgAYnMiS*g;>+j`3)``(&{o z`o~ju?3XT?Uqbp~qF20`ZPdYox+tNxh=ac0zeL)izKyQd~H%7*I zq251gXa7s??_T0o_7_R@f6U=xn8L zukOG2{BdeWecv3?_j6|Dx7GMxf?TkZ%KxI1eS2O1l1$g`JU@S78vjd>%rAxc`CaJx zmw?;}t@GyQU+OaZ!qoj2ounJP)$?C`!tO@VH)1_MiHDrD^e?2M7`;^V`LOH2?Y3AT zS&OtKjh1~#XACod71b3%P9KXys7vjU4+ z&H)1H-rq_Ty^gwE#QS>pycUN3#0VzXyfFr?5{3fxa-QKm`VEbE!tRr*CT>aOK3 zCq>zzu_3g^0k|cgZkPhx4qDbk$f>GQ? z-waj(f(h6$u8Uj+nAnDv}5j;dzjA9b+c^Pp2`uF!4khA_LI# zB&7H^NL%9Lr%pK?x@@@f$Xyg+ZF=0Gwe8R&VllkYP9*?udj%;SyyJ%ik?c7r2^;(` zO}?CYWE1Z42SY606=Tn3$U{6jNCYm4!w|2LUj<&meb2Z-JOhVI3^Rf^^8{4AMPl(2 zJjPbpZoTf-o%qeS)jYYwj)d8YvB5mRqhJll~;53ac{*nm2!)2D>lj~7?pxC4DJIs zSnJ_R(k4o%?%E1&McHX}WDs(GFcY>q+}xOj6zO*2J>CXUqAQ2K6But8tq8hG15Iq= zQPOl20lvMoxV&Kds_`G@ZkwfYY5w+ESyJxUH;c5MeFZ(u-)-0i{B5z*8Dgjyr5F!S zs>X4nEO!!)=_oGTLT$fh*LY}!a5B^xQ6%WcPefg_ASt3G730JiRo5YJH9A2tFf`O7 z9zr}~tcWJJ0@CO$+)vP05kuSDbuALPi!6~m9O1g2&RP$!x#G*+P7rnkxN}*j#Xewt z2nw>m8y0Igc-$4H!I8)aa11DULQrap{Ug(uAWYkrjEr~Rz4zUB z?|t{(8`IfisuuCpvLUT7rvB*}sv_PD9llD0MSTIE!^6u%m9QJ>eWya@{YPUOVt6z5 zC+Al zNjZr*$2M>@1;Nm?iZ9DHM(=pNIiJxxN)(AlL+~(aumsownS&9(J6Ep#2^CInJjSa+ z4O2$AYl14VOl`VbuG@4`J77MFH9=A%xR&XdU!&R3S;`&Xxel$; z;44=0IIKw%yg= z5;B1NJPxR@QLwkZf^_;ySQ8X+*Q9x3@7xuCL4a5ck-%@DSmK)1T0SV=3K|_6F|yL@ z57LPJAuVT?a^^>T{C*%`BsrpMMo!4-IlG)+DBqSda%L_A)4ysurs*2DQiQiHL)Kke zQA>4uy*l&O2VNs=l+gY065g*BTlKY~owGPojx- z^jz*kM~dQT%sgfcZcP^Su;kM+`sfM?CFjv zds2{(5($>Xc#XUuER9}_MVU4`}in)JrhdgCw4~?7v)31eBSX& z?ML6q`o9INF%nC!r>O>2IXOp~v{qHXv%VrTKEs}q#h~SdQ4GuKsmov9gIkpt zZf1aTU6{LH&ON*vjvAyj@PZ5qFuTNX)*5uZR)_la)_i*etZC|U_gHm?wS<|131x9A z>ZCEu7wUz7ZrHkB)_Xp(|1Q_c&FA%nM{v@)O$~B}LavSuPb7%T^@gj(ow4`6HHS zWxEDvIdOv6%6^h8jaW6nz5H zAJrH1{Cuu;1Q7I4PS;Agf~gro?uep;W?|KAlSBwHG|d1E>OVV*NnTs8Kk&dkOH1mi zrrWFCTwa060RD1TeoL1WyC@eC7n*)=-V_meVlMYnd&zCE_EEbXGQzPCnV&&lZ8OpeJKSk!0yoUuWM3?CFZ0A&I~?TAtux>t-M z!{rDjaRy7Kzz_D&W%(G6_ne7C%=)k~#We$~+Zgk-O>ujkE*T7C^ZdeD9CZr_|5?LA zdos$mu7=wGhQH3I_^2F=kGac+diJbp>}(-0TdO0HrW$RdZWN5?_hLvn!H-?;rQF?^ zS8hMrOVSkG=u>MrauD_g-DFv!QJi}*G}>eIYD4>x()^)xGshsI4-Y#Y%jz|^)P19*F0K79)j}p zC}4&)TPAdMVXaVc`J54&?Pg1~C8n55aDf{!o(T9%5t7MIT8Gvp|l3 zFXnrCCsKP2lY7E1D7cYaEpqF0M?}o45;$}Arg7Rkni|r9vnBBQWH?(YzMsobzUf!& zfy2-6SokJ%1MOsYaKTXN-c&fW!?DRF{T3J}{7UXVoO^wb%buMYB2Jc<1JtjM?+EGs z26M#x&~7w)Rm!oEBgI41>5+Sg`C@)&Pa^)ynd-V-FQJD+mksN!==o4ylaRlGpXNU9 z!GrbG>_O*!_-``le&PYvsj6YcJG;o-IZsZ;1~I(M(k#^|)9%^N=p4h@v+ICe9qIAe zd+5GC+xHXM4w3H%V;pz!{?y6%-k&|_J&8{!lhCK)y|G0RJNcG7e{nJbC*|%<`=M;A zpSx1=aHtK9LAI@!KPi&61%JhAA0DMWD6+esDU$|IhW(jvU`6&pBkl3X^u}a+>Ed3P zX~eIDm>%JIS%{%C;SX9(>sHzRpd_}uy}UvTjN%B<`EeXWr$SBnM5=a`n1JBoXkZbSWQr0?Dn?^1Hi-LRiA7ll^rKHh$khAyI= zJH~js6!V2eaxm@UU23-Pj2vjcwHpEd*!L&x#C%DWVMmgseP7DU#)%gbsE zU+9J#!q~legW_K@bH98&^Y9%LSzUe$=%8(J2NIbtU?x15%u~E|EbSR|X zgkL6oc1gLx^og_M^kfg((uy*pypLI3%N8C({=QM2%%ss~y09-(gXP+jzy0xW_G_2!llwld|EmbFNBW~9*`e6N)1E5gkPGn>nmns(% zzQoB0g8s!B^mPu~DM3Wj^=q@~Z4Aj#mnVaG!1Z3U@tZ@pShTO;nS^)HcbHA49LL@e zMZ(BQ|DuwKpAQ`r?e}s~#$B-O#C4|AC|lQ_#6LL^E3IZk7PYg3lDHvRy|o`MqXq0T zx3lcZKp)I-0OI)={PLz@mnA(<$T0L--T}JNb$TuL;Fw8#nc1$bz_pp~&(BRX=}vC@ z?$xt#S$QJvjKQgJC9cMH>CfSg#&C_kHwX&zIc?_RzV&gd ztrRdCG_V6%Ea+i4Z|%{?&F+@p#$WWL=kkSJ5=($FbFd5s%eX zaj#3!-~2NdHBEo%yXaXAW{DYEG5@qe>qGn4kN_KD&QYIkT^CKH7)t1}*?9`u1qD~o zC|Y*5+W^%i?9Ls8E}Dr6yc`1l7y~mdRkoZ#x7XSQK@5bQ^Z1#KrMnP@h0O(usrcN+ z=)V9~@a7&|poE1Q!-{E2nU!jkM{vj`Mw@M)H9qA>v}f|oCL?m4{iF@b1zyJ1@&bNZ z=Z<5&_wl((as89wJG(R7tJ%j&;%Zke+$5~y#}b!%nA14f2dqSPKle870$Psa_oq8_ z685JXc6I1P8U6DSSUATzd{guRo%$t(e%v(nce~;%{x3k5k3y3A++-i|e@R{W2;EUW zro_dyzLpoP@C|7g*-{sSl1kUUM}==pS=vSP+O}#Odm2aQ`$9E<7Ayf^gcCGp%jT6`Hl#_d2GbQqXF+I0I!LjODB@8d*) zO5j8!i)nicF%@rf-$dO@%S-8aM`#@Pe(RIFZ zW2c2RlUhnB{u7xtpR2WN@bAe`k~kI&W@`!l49gT*b<@kG`aEuWhQkx(>FG|bcFMKR z(;)r}1()pzgL#TM4OgQ5(Y}uS!VCU-S`k-~LufrYfCwYZ27QXjRe$>d4LrLrw>k&^ zHY>BUaN=oshd-_ri`sGC$v=)*yvn|LIiU~E+W9Hb&>zs=zqu}shly*{HmQX@>SSOloAKGoV;ljV2VQ9a5>N!Jw9O(!LEJwOJJDX=u z`yKHtyl~G9cjT8JpLx}rn8E;uy5Hf=0)3vc1mg?tD(7*W@1jq4rsrCZr=S8(OE!j^ zBn4XAafvjz0#`vjbI>1nF70}OZsiGg7kk3MeqJTv8{d4Bs=C%Y`p*`gy;(D3?^UFt z1{?!FHLm?XabJD|;621GpG)jj`2mRosnZ)M>6UZ%s)q1+)llxwy~A=f zg=nWvy=n*!8xSZ-AD4ANBXst>Zb`o|^QxJzg>VTmJYu$lk+>WHS9DU7|1f^PdFs?N zKE*+sA3}Cv=JA;(qbVL@bBqG54`}V`SJU08vB0L21dk2kQcZccLGNYm&JBwR2U}wl zw_;h6x}-{$RdE&LyP4A9^)^b1nqBfmL8*R+U*i^`2PL{#kmW+rP!=+T!zGj&ooPGD zSa6QTy~cR~W!fQb4Mr$80P)oA0lb4y#LCT1E5LzoC3O34xWCp5`v-m9uCy$tS^ii% zS1RS&wVP{q;EAHEAWCz!n?K7cieH&p>|*_??&8!=VX9!4TesV}_vdiCG=9*%qGW}^ zc_P}g?Asl4ly^H=$7`LYuUd@E4Xj%_NIOIxlP&qZ64BM3p@MSV17%ryDLthJQjz6H zq=LcPH44&$^duqoS)228*Zb&pJ8YE@C#mj`KH74+S%CcAd*9nrjcr4HG=k{D_Vy4^ z<|B`=8EHF&&bC9oT_T4#gR^0-?BLEz-<5&%8Fc7|rULO2na62C-=0S+@_x;lTPZ$h z&8`*;eWT$T{Z~gD!3}3>$|>RD4~i>u)`NI>Z{KhmMqi8ed6$L8k%sWDchQf)wmd>w zAjhh>PJ!u(Xoj&BzTX|3fDgE8ek9-N)C?mJpY0i4|LuXUD(=jT(f`Ot^15E@bl@Aq zfX}`$GvlbL(NB!i9-UF{1}%z%S0b{pG%MEHqgao&lmi3faz`uJRK9@#F`<{T189Q% z0kc^FZ)~*7EnsjN=J8e8%m1UiCl`20(Ri8Q2IaOOFP&JT$pti>$h@XVe1&aE{wmYx ze+)^5*{0Nwlmz+XvQXk>Ik(x|%*pb1a+Z~ANxW#P4M|juvO$=!h!#TSxFD%&X<%@|6Mkp&-FA)TSfweV{N1D%GxCKf_`6%VFm znOEuIoGhM2y&4WR8ha+_7-+}4g3=iM)m2%18oz>rja%%C#G=PjR0b2NET~wxRmV^^ z!4+uDb_v8w@^)-&GCaJ5yL~b&G}}&mjXM?b(97&`ErMMZ&xeQL-l(pw+w-N#b*A zPEm3yeASP`RRZ|udBWd12Zts7GAPiPN1YXK|YC0 zte^Jx;9kPp!)G?Dx)DE)BE)%S>~wuryDuaN`|Kva&fu{#la4fJB*X2^V8g7o*VtKP z9a!}H6WI(R_bo0DyoC`k$I&K4>DhejK2#9CBvAzB~f*iqs&GR8nc=YoRdWzR+ zZ?F>PGpG=@pFMXUq7lp^8SoRL8IYq(6iGf_|Hj9wBGXBqRa!6qZ`Xm>vJ3Rx!0fY5 zgx7Ofc#W~}zVJ$KBe;OuOuT-2e|Y^HidW>e?bS`Pg2C^?XY*DlrL&;W2_Vj#wwG1MM2#CrwdUeVYWUg@ddRwiD*8pqoR z-2OYshato(#fdKmI?5olw_pzL52JEBEeC>{&r{F`v=Z*3Yc&XWgF?>?R~B3loMF*! zEb`pJOnG_YyUIcjpAyg1;Ff8A6GyGdg3Vk%tC)`K_WFGi+`#RN!VgpiHu83 z=WT2XG--n&I_o^l4ON&R>Yoxt=8IzgL~%z{>Vo)Pwn(6`kH>H$fv5|jvnI$&M~dFMqd(V09fTuL7S=pu$Kk7raGdu&3g1BtV2JevUFgd@YmEps}qH~0-(ZwpK3_I z8}ES~UsW6Cv-_@}&%%20LFn8H>H8aZ_s4fzEbk!Q2a735F&b_H2K=Y&m&uL35v`_a zM#p>6f=w3^g=sA+Bzpb4c{vS-SbJ*UO#0j~P9|m8H0@t^{j~Q2@7vIB$o-N2L5FUc zbLciWKY|El>ICHfRPx6H-IYjpPewd21yFVbvl46UOF71pKWDNdku#+oc z#L8)ZRRw)|G5FKquMj0zTk8$Nj)b>{Iv|mG=)iIBGnLQzNf}odM3))l%h;P)=lk#j zL98p%c|jC~PfCkt&+af_OKdr-d}~=p!|hnZhLns^}0^@H&9wm zw-f$(UFW(es7=`m@c)#ScZ~YN!Y2H4G;<=FF8Kd#`k%*kr*J%tfE*mXn7GszID~XMlb#F#j>HY|nSs4Z8h73!hu> z_qv$S)b%h@KpCv?dE$Eg=bdJ`+&qly8SkzJt5YCaa;9SD4PDZCGp{Q~&X!C*r^}LR zD)Rq;rpz6@u;dmB?z3*eP_di?v8FvZtJ?nS4mZnNQ~qk#)Z(IM5LG2+N#}W&XqusE z#MBBBsqk7=Pyn4RUX^6x{RvIk2Ty?IhVMVEn;%e(`$@hm=PFZbCDMt}7pC}`B!fM9 zP8h$`0d}8bW?XBI8r^cs!6iKECTsU>8o`8-ce9T3QgE8A$zg*=}&sX~%qlUZiOG_k9V5|dHuxZCO5n`vjV(+du&&CJfI|Q10;Q!iIv3; zTXLoa1H9H?ivjtY>D0SVMD9$@cW~yWXdkC?qV#X=-?05`y*7J+A2PNTcWBmpFJ~9K z+64`(-R2@+1p3NXsTTu4b*WDvC?ycN3Kf4L86ArZ{!g9}CHW_0NjxK{H@_tGzP`ln zgb;T=a7HqSDV^cxVh(1@yaX_jB79hp|1!wWds`|)ud-`~UY2QTqaA&FBgxL+`v%rlyxr} z(@~z^dw0w9yL(36Zv0!iTi*W`H2RTwfd2scV+{534bUSq)ywSMz@${jTSY_TEx&g~ zUNf`qrTk6HG>(6wjKRD2FUlwUOJjE_9)0=F@jDXj(L=x4jeeDnPjml*<5C%Wdkfk7 zV)xan>Tdwy7kv~zr61potJuX#Vc0E6ijl(I<1)5@X43#LY zW(Pw7U|zxHKsE@6GR=pHQBiapcHR0>K_sS7Vmb7m_hqXesLKQ{4koFfN_?$WT&~cO zHP60L6B0R$_n4w{$Q0M5Ge{WQ7oLQ{&TIXF8`TuTMDDmA;&ulcov;hoF_;P!SqYN2 zC!za|Lsi!e#<*Pq4TXq8O)gl?8*aa$*}P$)Y=ePVmv<5%PqTMCqMA}5Co0QD&oO!F zMoliX%k_;$W8;R6Isqk8S8U%Oj(v0D`X7avMkoy2od^oS1R##qT|4&jT8)>~LOfqP zzNowTOqOB} z;y&&RibK(h)*)Cxo(+yeGbT&EWEl%|al#b)lKLft=II2W{s#&_Waajs(shcz zRYZ8+wRTw2Hw2obKI1t}OW`~ghp!!P73Z1QTcdRk_WRk)HzZRgB;J?G?~r`^Rz@Du z0KZ4a!)>DFk+@7jF%pSe!?_q3-z{;sWOLmL>8!Q=%s&Ge7s}Q_0{1&@9LX5uh8HV* z^iYBsKg!FJqU3Emuc@LT5K-YvqM-1%hz2joLJ`i16h4yV(r0;v7fMql(bNT55{l(w zK|B;Ym)X}`B0owKxc2t(FpCA+(XBd&Ix@((HxlO`mda(YABzg>i_Mc$Lw80~;&qxL z7wv*dMAHBy33kOU4Btw~hB|21{cI}5j230Yd4evdGomV<_9K*JF-eF2l`TQ60!rZD zDhnxz)))f3uhNP-V_|+M2qbhNC9Xzd{`p;Chr?*3W4EC*M+EGNEUZNFxO}27D@R_9Yv4YD9vW#ahIv^e0HMom!S#e1eq7@sgeXNsfc{hp@T3wm)X~x=*Q2q z`S+#VYcL<20~79`@1^Hk=qey`keHqU1Hs^1&lr&Ld+RbU*UPeEmltq;hDq9jF9odW z!mgr>xnwq6XjPt*UrrYL0&FEaHkJ34v48unf4G&N1sX0B12FaN&qTA*ve64@D6r{$;_rB=Qo0XNoXk^C^aXRul^`hYK(UbyI{% zT;N5J#{P*MeHoko!nu7M439atkHG!*4`OCd$_jsO&!Seiz=F=Z?DG_HzO&oxD33L} zC*_7ew~vGQG3WLXm@ggl%+4qJF-{LgK(@=Q9`R@pYcZ^&HT@>WFymHqXZ+m~Ra|Q;)1Zs=vkJFPvsb<%uGwJJ^h&hjZxCm@^-1l!Rn3y-=Os&934_p9 z!+xypW$vlU(W44{>`>gsIyR==S4~nj34S{R7#uLkW)gEomF{sGjgYiCIQ0Hut1#JG zh8-5r>8AbBD8o+NnYchcU&0`vrVuBvGVjR+b zC^C_Kxi_sQFgJIj;KX)km0RG}V$ow+)E(daOwe;oD>Q)q(g;H|Dd#Xp<~}JlkzKks z#l|yJcO%v~_A2&yKfN8d7h`~#^4T}J6uTGi}*#;_Bq183!zK zBWBpHWx5GOl~&oF-IXB4rt(NqBurnsg^mUQT75l**cu_&F=z9y=s zcvceErJ^Vw$`wWFtZa$O-8z@79a~S=jtv5~%l_Edh_5%_E}7z~4z{|EO^LBpWlNOq zJ|u!70$)jI#pHS_t{pG!URT;t60NqI+3UG)BJuV$BfBK@*GK}EP%l!rzv3*4QOsl( zZD0Ib5p*c=UGUDE5pT!71#cEFN#ZTo)Jr%nsWZ=JtPH2CCq~P?^CBhDx-439=aiUO z)CJfgBHcZ_M`v}MJvs^QAeq}9Hbp~=K`~-R|~| z*7baAZJGxDuGVU+Ka8NiA1iKR;RP;)&0>{62T_R{HcQ3m+V=yLI%x@`Y3Qi{tMX)V~%G z+rnvV==cYCpUxN)S%h9;#8)gXmu>nVgk?;FmnW2po8gT&-;89XyK;Cwb-n7x;K0G* z`CD#5dT$BvPkkYI`Hz`&5AZz2eG6c!hq(*KZ9mrDUkLb3*uY~<^T_D)Pz%FY*l(ZT zDG0aRf>{yaDfsg4;N;1p`FvBb2Lk~%sbU_p^2*R%l0^jcovLS5p{3fr2V}<(?ya9f1vs{=I!MJ@f z{R2`+zA*g#@B6>+<9w@t1wi?wMFjR9}y&M)x%gAelIOYTZulH493 zh5ZcMqjTf}hIxyCH(baAu{blcEN;`Ss{c08;3`L*1O~ z#Um{v?KY-$hc@prr*P#kuBcUvYuZecjw#VhX}eZ;0Q+i2R}wFDUsf;olJq| z);Dh4sMEv$QK$PAL`l~y^D@TDHic*F{+IQQHTs<-)``%>FX0I-rdOklu#1I|Z4P9s z|6H_pYMJWM$C93Ura3!NuR6UGq^k^74++w!dg*%X7ZLtV8k!B7*d~^jm&8>}>sNRd z5B7992${;?b@3=|&-I8fr* z4DiBpmOCU*&RiFNCKe{fd9E_cUCLT6dl`k;3F*)UrH-Iq+_(x*zP*RHI-6$ zPWC2->g|XCkJ^;;pJjRCg04NB?2{GYKcY#DWn%O=haD@!f7r1!ZEm?P+QgQS$D>R; zswzGnRWABo`Uq|_Rm04O^Z>?ptgKRPf-&t^Bmc}KLwAS{_g)tr(%aO-qR#8?cyzfZ zquTU%1lk^|?kp$g;hJADV~^_72SC4!veaiLpkr30>WSv&w9I(NSQ2?}nXwYA$`pbM zMQ8?Kb*SFJqlsszsXt1FXGxQv#&u3oF7c+&%F&F@k}&NONs*i)kpzl8XN0)V6f(C7 zf+)Q4xXeo%xLzP0+7d)bxc|5yuzVS5e!u&=_Snvv133V;A6XJ)VIrM$M8)HWClYHhorF~*=j?+}ye8-fu_gkT!K=_Z*#oMn zun`M%O27b+F@9v@t<%HY2=Q)ssWd}$G)m|L75$ux?=-^wn51YLJZOWa^`V3n!OBmn zvLtHQHw|7O>Xvy0!G!~`qFF4On)Lpd`5;rfC+No#=g}JQm~*}CCJ_x{B1mrA59Ct3 zJ8UtvAJcGB>k!X~vJ`d*fILk>1YqMGV|V=3>VLvYMdRr3OGPI-r%J2zl~EUQ?NJu5 z;5$Bmrv5q(Oksvc+gD1^>SmZ#&Rz$-QkFtwLd5N!F{wDp@EMPq4@H*1R%9P+`6j_; zEXQ>~-&b&N;NE^fG#-hExD$MG%0D{F7My?sp4b~Pd<-wWT`E3Pn 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%0Aub6*Q4?Lh?RzF3+=+IGMyc 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

    V5sL;~RGzKe44( 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࿣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

    E0Q>dwTHGr5Eml?v4A4cqksyc*{&0*B}<_UWD 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 N7Xi?h+IjWj{{hmn!3F>T literal 0 HcmV?d00001 diff --git a/site_libs/bootstrap/bootstrap.min.css b/site_libs/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..18a3918 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap";:root{--bs-blue: #007bff;--bs-indigo: #6610f2;--bs-purple: #9b479f;--bs-pink: #e83e8c;--bs-red: #d9230f;--bs-orange: #d9831f;--bs-yellow: #ffc107;--bs-green: #469408;--bs-teal: #20c997;--bs-cyan: #029acf;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #373a3c;--bs-gray-100: #f8f9fa;--bs-gray-200: #ddd;--bs-gray-300: #dee2e6;--bs-gray-400: #bbb;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #444;--bs-gray-800: #373a3c;--bs-gray-900: #212529;--bs-default: #fff;--bs-primary: #d9230f;--bs-secondary: #fff;--bs-success: #469408;--bs-info: #029acf;--bs-warning: #d9831f;--bs-danger: #9b479f;--bs-light: #fff;--bs-dark: #373a3c;--bs-default-rgb: 255, 255, 255;--bs-primary-rgb: 217, 35, 15;--bs-secondary-rgb: 255, 255, 255;--bs-success-rgb: 70, 148, 8;--bs-info-rgb: 2, 154, 207;--bs-warning-rgb: 217, 131, 31;--bs-danger-rgb: 155, 71, 159;--bs-light-rgb: 255, 255, 255;--bs-dark-rgb: 55, 58, 60;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg-rgb: 252, 252, 252;--bs-font-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-bg: #fcfcfc}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #ddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#d9230f;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#ae1c0c}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f3f3f4;padding:.5rem;border:1px solid #dee2e6;border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:#9753b8;background-color:#f3f3f4;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fcfcfc;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #9ba5ae}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #f7d3cf;--bs-table-striped-bg: #ebc8c5;--bs-table-striped-color: #000;--bs-table-active-bg: #debeba;--bs-table-active-color: #000;--bs-table-hover-bg: #e4c3bf;--bs-table-hover-color: #000;color:#000;border-color:#debeba}.table-secondary{--bs-table-bg: white;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-success{--bs-table-bg: #daeace;--bs-table-striped-bg: #cfdec4;--bs-table-striped-color: #000;--bs-table-active-bg: #c4d3b9;--bs-table-active-color: #000;--bs-table-hover-bg: #cad8bf;--bs-table-hover-color: #000;color:#000;border-color:#c4d3b9}.table-info{--bs-table-bg: #ccebf5;--bs-table-striped-bg: #c2dfe9;--bs-table-striped-color: #000;--bs-table-active-bg: #b8d4dd;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd9e3;--bs-table-hover-color: #000;color:#000;border-color:#b8d4dd}.table-warning{--bs-table-bg: #f7e6d2;--bs-table-striped-bg: #ebdbc8;--bs-table-striped-color: #000;--bs-table-active-bg: #decfbd;--bs-table-active-color: #000;--bs-table-hover-bg: #e4d5c2;--bs-table-hover-color: #000;color:#000;border-color:#decfbd}.table-danger{--bs-table-bg: #ebdaec;--bs-table-striped-bg: #dfcfe0;--bs-table-striped-color: #000;--bs-table-active-bg: #d4c4d4;--bs-table-active-color: #000;--bs-table-hover-bg: #d9cada;--bs-table-hover-color: #000;color:#000;border-color:#d4c4d4}.table-light{--bs-table-bg: #fff;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-dark{--bs-table-bg: #373a3c;--bs-table-striped-bg: #414446;--bs-table-striped-color: #fff;--bs-table-active-bg: #4b4e50;--bs-table-active-color: #fff;--bs-table-hover-bg: #46494b;--bs-table-hover-color: #fff;color:#fff;border-color:#4b4e50}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fcfcfc;background-clip:padding-box;border:1px solid #bbb;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fcfcfc;border-color:#ec9187;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,35,15,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#ddd;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ddd;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#d2d2d2}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ddd;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#d2d2d2}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fcfcfc;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #bbb;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#ec9187;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,35,15,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ddd}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fcfcfc;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#ec9187;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#d9230f;border-color:#d9230f}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#d9230f;border-color:#d9230f;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ec9187'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fcfcfc,0 0 0 .25rem rgba(217,35,15,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fcfcfc,0 0 0 .25rem rgba(217,35,15,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#d9230f;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#f4bdb7}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#d9230f;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#f4bdb7}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#ddd;border:1px solid #bbb;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#469408}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(70,148,8,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#469408;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23469408' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#469408;box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#469408}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23469408' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#469408;box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#469408}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#469408}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(70,148,8,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#469408}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#9b479f}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(155,71,159,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#9b479f;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%239b479f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%239b479f' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#9b479f;box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#9b479f}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23373a3c' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%239b479f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%239b479f' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#9b479f;box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#9b479f}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#9b479f}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(155,71,159,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#9b479f}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus{box-shadow:0 0 0 .25rem rgba(217,35,15,.25),inset 0 3px 5px rgba(0,0,0,.125)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65;box-shadow:none}.btn-default{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-primary{color:#fff;background-color:#d9230f;border-color:#d9230f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-primary:hover{color:#fff;background-color:#b81e0d;border-color:#ae1c0c}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#b81e0d;border-color:#ae1c0c;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(223,68,51,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#ae1c0c;border-color:#a31a0b}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(223,68,51,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-secondary{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-success{color:#fff;background-color:#469408;border-color:#469408;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-success:hover{color:#fff;background-color:#3c7e07;border-color:#387606}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#3c7e07;border-color:#387606;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(98,164,45,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#387606;border-color:#356f06}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(98,164,45,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#469408;border-color:#469408}.btn-info{color:#fff;background-color:#029acf;border-color:#029acf;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-info:hover{color:#fff;background-color:#0283b0;border-color:#027ba6}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#0283b0;border-color:#027ba6;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(40,169,214,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#027ba6;border-color:#02749b}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(40,169,214,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#029acf;border-color:#029acf}.btn-warning{color:#fff;background-color:#d9831f;border-color:#d9831f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-warning:hover{color:#fff;background-color:#b86f1a;border-color:#ae6919}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#b86f1a;border-color:#ae6919;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(223,150,65,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ae6919;border-color:#a36217}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(223,150,65,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-danger{color:#fff;background-color:#9b479f;border-color:#9b479f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger:hover{color:#fff;background-color:#843c87;border-color:#7c397f}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#843c87;border-color:#7c397f;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(170,99,173,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#7c397f;border-color:#743577}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(170,99,173,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-light{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,217,217,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-dark{color:#fff;background-color:#373a3c;border-color:#373a3c;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-dark:hover{color:#fff;background-color:#2f3133;border-color:#2c2e30}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#2f3133;border-color:#2c2e30;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(85,88,89,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2c2e30;border-color:#292c2d}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(85,88,89,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-outline-default{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#d9230f;border-color:#d9230f;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(217,35,15,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#d9230f;border-color:#d9230f}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,35,15,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#d9230f;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#469408;border-color:#469408;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#469408;border-color:#469408}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(70,148,8,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#469408;border-color:#469408}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(70,148,8,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#469408;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#029acf;border-color:#029acf;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#029acf;border-color:#029acf}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(2,154,207,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#029acf;border-color:#029acf}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(2,154,207,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#029acf;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#d9831f;border-color:#d9831f;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(217,131,31,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#d9831f;border-color:#d9831f}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(217,131,31,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#d9831f;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#9b479f;border-color:#9b479f;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(155,71,159,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#9b479f;border-color:#9b479f}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(155,71,159,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#9b479f;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#373a3c;border-color:#373a3c;background-color:rgba(0,0,0,0)}.btn-outline-dark:hover{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(55,58,60,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#373a3c;border-color:#373a3c}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(55,58,60,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#373a3c;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#d9230f;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#ae1c0c}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#fff;background-color:#d9230f}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#d9230f}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#373a3c;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#d9230f}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.9rem 1rem;color:#d9230f;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#ae1c0c}.nav-link.disabled{color:#bbb;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #eee}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0);border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#ddd #ddd #eee;isolation:isolate}.nav-tabs .nav-link.disabled{color:#bbb;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#444;background-color:#fcfcfc;border-color:#eee #eee rgba(0,0,0,0)}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#d9230f}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.7125rem;padding-bottom:.7125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.9rem;padding-bottom:.9rem}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:.25 0;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#5cb4c1}.navbar-light .navbar-brand{color:rgba(0,0,0,.6)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#3d0a04}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(61,10,4,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#3d0a04}.navbar-light .navbar-toggler{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.6)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#3d0a04}.navbar-dark{background-color:#5cb4c1}.navbar-dark .navbar-brand{color:rgba(0,0,0,.6)}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#3d0a04}.navbar-dark .navbar-nav .nav-link{color:rgba(0,0,0,.6)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(61,10,4,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#3d0a04}.navbar-dark .navbar-toggler{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,0)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(0,0,0,.6)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#3d0a04}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid #eee;border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:#adb5bd;border-bottom:1px solid #eee}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:#adb5bd;border-top:1px solid #eee}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-tabs .nav-link.active{background-color:#fff;border-bottom-color:#fff}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fcfcfc;border:0;border-radius:0;overflow-anchor: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,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#c3200e;background-color:#fbe9e7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23c3200e'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#ec9187;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fcfcfc;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:.375rem .75rem;margin-bottom:1rem;list-style:none;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#d9230f;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #eee;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#fff;background-color:#d9230f;border-color:#d9230f}.page-link:focus{z-index:3;color:#ae1c0c;background-color:#ddd;outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#d9230f;border-color:#d9230f}.page-item.disabled .page-link{color:#bbb;pointer-events:none;background-color:#fff;border-color:#eee}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#999;background-color:#fff;border-color:#fff}.alert-default .alert-link{color:#7a7a7a}.alert-primary{color:#821509;background-color:#f7d3cf;border-color:#f4bdb7}.alert-primary .alert-link{color:#681107}.alert-secondary{color:#999;background-color:#fff;border-color:#fff}.alert-secondary .alert-link{color:#7a7a7a}.alert-success{color:#2a5905;background-color:#daeace;border-color:#c8dfb5}.alert-success .alert-link{color:#224704}.alert-info{color:#015c7c;background-color:#ccebf5;border-color:#b3e1f1}.alert-info .alert-link{color:#014a63}.alert-warning{color:#824f13;background-color:#f7e6d2;border-color:#f4dabc}.alert-warning .alert-link{color:#683f0f}.alert-danger{color:#5d2b5f;background-color:#ebdaec;border-color:#e1c8e2}.alert-danger .alert-link{color:#4a224c}.alert-light{color:#999;background-color:#fff;border-color:#fff}.alert-light .alert-link{color:#7a7a7a}.alert-dark{color:#212324;background-color:#d7d8d8;border-color:#c3c4c5}.alert-dark .alert-link{color:#1a1c1d}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;display:-webkit-flex;height:1rem;overflow:hidden;font-size:0.75rem;background-color:#ddd;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#d9230f;text-align:center;white-space:nowrap;background-color:#d9230f;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#444;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#444;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#ddd}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #eee}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#eee}.list-group-item.active{z-index:2;color:#fff;background-color:#d9230f;border-color:#d9230f}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#999;background-color:#fff}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-primary{color:#821509;background-color:#f7d3cf}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#821509;background-color:#debeba}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#821509;border-color:#821509}.list-group-item-secondary{color:#999;background-color:#fff}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-success{color:#2a5905;background-color:#daeace}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#2a5905;background-color:#c4d3b9}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2a5905;border-color:#2a5905}.list-group-item-info{color:#015c7c;background-color:#ccebf5}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#015c7c;background-color:#b8d4dd}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#015c7c;border-color:#015c7c}.list-group-item-warning{color:#824f13;background-color:#f7e6d2}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#824f13;background-color:#decfbd}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#824f13;border-color:#824f13}.list-group-item-danger{color:#5d2b5f;background-color:#ebdaec}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#5d2b5f;background-color:#d4c4d4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#5d2b5f;border-color:#5d2b5f}.list-group-item-light{color:#999;background-color:#fff}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-dark{color:#212324;background-color:#d7d8d8}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#212324;background-color:#c2c2c2}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#212324;border-color:#212324}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid #eee;border-radius:.3rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #eee;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #eee;border-bottom-right-radius:calc(0.3rem - 1px);border-bottom-left-radius:calc(0.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-content{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fcfcfc;background-clip:padding-box;border:1px solid #eee;border-radius:.3rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:#eee}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fcfcfc}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:#eee}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fcfcfc}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:#eee}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fcfcfc}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #ededed}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:#eee}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fcfcfc}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#ededed;border-bottom:1px solid #eee;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid #eee;transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid #eee;transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid #eee;transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid #eee;transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#fff}.link-default:hover,.link-default:focus{color:#fff}.link-primary{color:#d9230f}.link-primary:hover,.link-primary:focus{color:#ae1c0c}.link-secondary{color:#fff}.link-secondary:hover,.link-secondary:focus{color:#fff}.link-success{color:#469408}.link-success:hover,.link-success:focus{color:#387606}.link-info{color:#029acf}.link-info:hover,.link-info:focus{color:#027ba6}.link-warning{color:#d9831f}.link-warning:hover,.link-warning:focus{color:#ae6919}.link-danger{color:#9b479f}.link-danger:hover,.link-danger:focus{color:#7c397f}.link-light{color:#fff}.link-light:hover,.link-light:focus{color:#fff}.link-dark{color:#373a3c}.link-dark:hover,.link-dark:focus{color:#2c2e30}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#fff !important}.border-primary{border-color:#d9230f !important}.border-secondary{border-color:#fff !important}.border-success{border-color:#469408 !important}.border-info{border-color:#029acf !important}.border-warning{border-color:#d9831f !important}.border-danger{border-color:#9b479f !important}.border-light{border-color:#fff !important}.border-dark{border-color:#373a3c !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#000}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:rgba(0,0,0,.6)}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#3d0a04}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid rgba(128,128,128,.6) 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#674ea7}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#674ea7;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#674ea7}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#674ea7}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(148,24,10,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#a190cb}div.sidebar-item-container{color:#674ea7}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(148,24,10,.8)}div.sidebar-item-container.disabled{color:rgba(103,78,167,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#94180a}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#dde8ea}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#dde8ea;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#ae1c0c}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#ae1c0c}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fcfcfc}body.nav-fixed{padding-top:80px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#747474}.nav-footer a{color:#747474}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:rgba(0,0,0,.6);border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#674ea7;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fcfcfc;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fcfcfc;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:rgba(0,0,0,.6);opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:rgba(0,0,0,.6);opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fcfcfc;border:1px solid #bbb;border-radius:.25rem;color:#212529;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(217,35,15,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#212529;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#212529;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#212529;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#212529;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#212529;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #bbb 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#efefef;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#d9230f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#d9230f}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#f03621}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fcfcfc}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#212529}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#fbc9c3}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fcfcfc;color:#212529}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fcfcfc;border-color:#bbb;color:#212529}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #bbb}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:rgba(0,0,0,.6)}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#674ea7}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(252,252,252,.65);width:90%;bottom:0;box-shadow:rgba(187,187,187,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fcfcfc;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fcfcfc;border-bottom:1px solid #bbb;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#212529;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(217,35,15,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(33,37,41,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#212529;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#212529;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:var(--bs-font-sans-serif);flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#d9230f}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#d9230f}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#d9230f}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#d9230f}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#4e5862;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#d9230f}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fcfcfc;border:solid 1px #dee2e6;border-radius:.25rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fcfcfc}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fcfcfc}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fcfcfc;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fcfcfc}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fcfcfc;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre-wrap}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fcfcfc;--quarto-body-color: #212529;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:absolute;right:.5em;left:inherit;background-color:rgba(0,0,0,0)}:root{--mermaid-bg-color: #fcfcfc;--mermaid-edge-color: #fff;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: Open Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fcfcfc;--mermaid-label-fg-color: #d9230f;--mermaid-node-bg-color: rgba(217, 35, 15, 0.1);--mermaid-node-fg-color: #212529}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 49px [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 49px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1150px - 3em )) [body-content-end] 3em [body-end] 70px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(70px, 140px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 245px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 245px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(35px, 70px) [page-start-inset] minmax(70px, 210px) [body-start-outset] minmax(35px, 70px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 70px [page-start-inset] minmax(70px, 210px) [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(70px, 140px) [page-start-inset] 70px [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 70px [page-start-inset] minmax(70px, 210px) [body-start-outset] 70px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(35px, 70px) [page-start-inset] minmax(70px, 210px) [body-start-outset] minmax(35px, 70px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc( 1550px - 3em )) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 203px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 49px [page-start-inset] minmax(0px, 203px) [body-start-outset] 49px [body-start] 1.5em [body-content-start] minmax(450px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1300px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1100px - 3em )) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc( 1050px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#fcfcfc}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#fcfcfc}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#fcfcfc}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#fcfcfc}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#fcfcfc}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#fcfcfc}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#fcfcfc}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#fcfcfc}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#fcfcfc}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fcfcfc}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fcfcfc}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fcfcfc}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#fff;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{opacity:.9;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:.9rem}.panel-caption,.figure-caption,figcaption{color:#5a6570}.table-caption,caption{color:#212529}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#eee 1px solid;border-right:#eee 1px solid;border-bottom:#eee 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(221,221,221,.65);border:1px solid rgba(221,221,221,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f3f3f4;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#d9230f}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.sidebar .quarto-alternate-formats a,.sidebar .quarto-alternate-notebooks a{text-decoration:none}.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#d9230f}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2{margin-top:1rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ddd;padding-left:.6rem}.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul,.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #d9230f;color:#d9230f !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#d9230f !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>thead{border-top-width:1px;border-top-color:#dee2e6;border-bottom:1px solid #9ba5ae}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-titled .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#007bff}div.callout-note.callout-style-default>.callout-header{background-color:#e6f2ff}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#469408}div.callout-tip.callout-style-default>.callout-header{background-color:#edf4e6}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ffc107}div.callout-warning.callout-style-default>.callout-header{background-color:#fff9e6}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#d9831f}div.callout-caution.callout-style-default>.callout-header{background-color:#fbf3e9}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#d9230f}div.callout-important.callout-style-default>.callout-header{background-color:#fbe9e7}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#f7f7f7}#quarto-content .quarto-sidebar-toggle-title{color:#212529}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fcfcfc;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fcfcfc;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#595959;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#595959;background-color:#fff;border-color:#fff}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#595959;background-color:#fff;border-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075),0 0 0 .25rem rgba(230,230,230,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:inset 0 3px 5px rgba(0,0,0,.125),0 0 0 .25rem rgba(230,230,230,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#000;background-color:#fff;border-color:#fff}nav.quarto-secondary-nav.color-navbar{background-color:#5cb4c1;color:rgba(0,0,0,.6)}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:rgba(0,0,0,.6)}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fcfcfc}.code-annotation-gutter{background-color:rgba(221,221,221,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:var(--bs-font-monospace);color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fcfcfc;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#ddd;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:var(--bs-font-monospace);color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fcfcfc}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fcfcfc}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fcfcfc}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#fff;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table>thead{border-top-width:0}.table>:not(caption)>*:not(:last-child)>*{border-bottom-color:#d3d8dc;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #9ba5ae;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#9ba5ae}a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file,.code-with-filename .code-with-filename-file pre{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file,.quarto-dark .code-with-filename .code-with-filename-file pre{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:rgba(0,0,0,.6);background:#5cb4c1}.quarto-title-banner .code-tools-button{color:rgba(51,51,51,.6)}.quarto-title-banner .code-tools-button:hover{color:rgba(0,0,0,.6)}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#212529}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}.navbar{border-width:1px;border-style:solid;border-color:#509da8}.navbar-fixed-top{border-width:0 0 1px}.navbar-fixed-bottom{border-top-width:1px 0 0 0;border-style:solid}.navbar.bg-primary{background-color:#d9230f !important;border-color:#bd1e0d !important}.navbar.bg-dark{border-color:#303234 !important}.navbar.bg-light{border-color:#dedede}.btn-primary,.btn-primary:hover{background-image:linear-gradient(#db301d, #d9230f 6%, #cc210e);filter:none;border:1px solid #bd1e0d}.btn-secondary,.btn-secondary:hover{background-image:linear-gradient(white, #fff 6%, #f0f0f0);filter:none;border:1px solid #dedede}.btn-secondary:focus,.btn-secondary:not([disabled]):not(.disabled):active,.btn-secondary:not([disabled]):not(.disabled).active{box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-success,.btn-success:hover{background-image:linear-gradient(#519a17, #469408 6%, #428b08);filter:none;border:1px solid #3d8107}.btn-info,.btn-info:hover{background-image:linear-gradient(#11a0d2, #029acf 6%, #0291c3);filter:none;border:1px solid #0286b4}.btn-warning,.btn-warning:hover{background-image:linear-gradient(#db8a2c, #d9831f 6%, #cc7b1d);filter:none;border:1px solid #bd721b}.btn-danger,.btn-danger:hover{background-image:linear-gradient(#a152a5, #9b479f 6%, #924395);filter:none;border:1px solid #873e8a}.btn-dark,.btn-dark:hover{background-image:linear-gradient(#434648, #373a3c 6%, #343738);filter:none;border:1px solid #303234}.btn-light,.btn-light:hover{background-image:linear-gradient(white, #fff 6%, #f0f0f0);filter:none;border:1px solid #dedede}.btn-outline-secondary{border-color:#bbb;color:#bbb}.btn-outline-secondary:hover{background-color:#bbb;color:#fff}.text-secondary{color:#6c757d !important}.breadcrumb{border:1px solid #dedede}.pagination .page-link:hover{text-decoration:none}.badge.bg-secondary,.badge.bg-light{color:#373a3c}/*# sourceMappingURL=9161419e6f82ea4435380a70856fa72b.css.map */ diff --git a/site_libs/bootstrap/bootstrap.min.js b/site_libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..cc0a255 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=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},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=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?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();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?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(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})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=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 L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),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(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(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.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").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(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.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)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{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=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={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;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;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=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={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];zt(s)&&Rt(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}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(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 Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(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 ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,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)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={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:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(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,de(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 fe={passive:!0};const pe={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=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(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 Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={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=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(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})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(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 Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))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){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_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"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.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(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_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)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_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}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||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,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_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(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.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)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'

    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],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:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),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=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_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"function"==typeof t?t.call(this._element):t}_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:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(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()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_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(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/site_libs/clipboard/clipboard.min.js b/site_libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..1103f81 --- /dev/null +++ b/site_libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); +// @license-end \ No newline at end of file diff --git a/site_libs/quarto-html/popper.min.js b/site_libs/quarto-html/popper.min.js new file mode 100644 index 0000000..2269d66 --- /dev/null +++ b/site_libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.4 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-html/quarto-syntax-highlighting.css b/site_libs/quarto-html/quarto-syntax-highlighting.css new file mode 100644 index 0000000..d9fd98f --- /dev/null +++ b/site_libs/quarto-html/quarto-syntax-highlighting.css @@ -0,0 +1,203 @@ +/* quarto syntax highlight colors */ +:root { + --quarto-hl-ot-color: #003B4F; + --quarto-hl-at-color: #657422; + --quarto-hl-ss-color: #20794D; + --quarto-hl-an-color: #5E5E5E; + --quarto-hl-fu-color: #4758AB; + --quarto-hl-st-color: #20794D; + --quarto-hl-cf-color: #003B4F; + --quarto-hl-op-color: #5E5E5E; + --quarto-hl-er-color: #AD0000; + --quarto-hl-bn-color: #AD0000; + --quarto-hl-al-color: #AD0000; + --quarto-hl-va-color: #111111; + --quarto-hl-bu-color: inherit; + --quarto-hl-ex-color: inherit; + --quarto-hl-pp-color: #AD0000; + --quarto-hl-in-color: #5E5E5E; + --quarto-hl-vs-color: #20794D; + --quarto-hl-wa-color: #5E5E5E; + --quarto-hl-do-color: #5E5E5E; + --quarto-hl-im-color: #00769E; + --quarto-hl-ch-color: #20794D; + --quarto-hl-dt-color: #AD0000; + --quarto-hl-fl-color: #AD0000; + --quarto-hl-co-color: #5E5E5E; + --quarto-hl-cv-color: #5E5E5E; + --quarto-hl-cn-color: #8f5902; + --quarto-hl-sc-color: #5E5E5E; + --quarto-hl-dv-color: #AD0000; + --quarto-hl-kw-color: #003B4F; +} + +/* other quarto variables */ +:root { + --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +pre > code.sourceCode > span { + color: #003B4F; +} + +code span { + color: #003B4F; +} + +code.sourceCode > span { + color: #003B4F; +} + +div.sourceCode, +div.sourceCode pre.sourceCode { + color: #003B4F; +} + +code span.ot { + color: #003B4F; + font-style: inherit; +} + +code span.at { + color: #657422; + font-style: inherit; +} + +code span.ss { + color: #20794D; + font-style: inherit; +} + +code span.an { + color: #5E5E5E; + font-style: inherit; +} + +code span.fu { + color: #4758AB; + font-style: inherit; +} + +code span.st { + color: #20794D; + font-style: inherit; +} + +code span.cf { + color: #003B4F; + font-style: inherit; +} + +code span.op { + color: #5E5E5E; + font-style: inherit; +} + +code span.er { + color: #AD0000; + font-style: inherit; +} + +code span.bn { + color: #AD0000; + font-style: inherit; +} + +code span.al { + color: #AD0000; + font-style: inherit; +} + +code span.va { + color: #111111; + font-style: inherit; +} + +code span.bu { + font-style: inherit; +} + +code span.ex { + font-style: inherit; +} + +code span.pp { + color: #AD0000; + font-style: inherit; +} + +code span.in { + color: #5E5E5E; + font-style: inherit; +} + +code span.vs { + color: #20794D; + font-style: inherit; +} + +code span.wa { + color: #5E5E5E; + font-style: italic; +} + +code span.do { + color: #5E5E5E; + font-style: italic; +} + +code span.im { + color: #00769E; + font-style: inherit; +} + +code span.ch { + color: #20794D; + font-style: inherit; +} + +code span.dt { + color: #AD0000; + font-style: inherit; +} + +code span.fl { + color: #AD0000; + font-style: inherit; +} + +code span.co { + color: #5E5E5E; + font-style: inherit; +} + +code span.cv { + color: #5E5E5E; + font-style: italic; +} + +code span.cn { + color: #8f5902; + font-style: inherit; +} + +code span.sc { + color: #5E5E5E; + font-style: inherit; +} + +code span.dv { + color: #AD0000; + font-style: inherit; +} + +code span.kw { + color: #003B4F; + font-style: inherit; +} + +.prevent-inlining { + content: " { + // Find any conflicting margin elements and add margins to the + // top to prevent overlap + const marginChildren = window.document.querySelectorAll( + ".column-margin.column-container > * " + ); + + let lastBottom = 0; + for (const marginChild of marginChildren) { + if (marginChild.offsetParent !== null) { + // clear the top margin so we recompute it + marginChild.style.marginTop = null; + const top = marginChild.getBoundingClientRect().top + window.scrollY; + console.log({ + childtop: marginChild.getBoundingClientRect().top, + scroll: window.scrollY, + top, + lastBottom, + }); + if (top < lastBottom) { + const margin = lastBottom - top; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["marginTop"]); + + console.log({ + top, + height: marginChild.getBoundingClientRect().height, + marginTop, + total: top + marginChild.getBoundingClientRect().height + marginTop, + }); + lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; + } + } +}; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Recompute the position of margin elements anytime the body size changes + if (window.ResizeObserver) { + const resizeObserver = new window.ResizeObserver( + throttle(layoutMarginEls, 50) + ); + resizeObserver.observe(window.document.body); + } + + const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); + const sidebarEl = window.document.getElementById("quarto-sidebar"); + const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); + const marginSidebarEl = window.document.getElementById( + "quarto-margin-sidebar" + ); + // function to determine whether the element has a previous sibling that is active + const prevSiblingIsActiveLink = (el) => { + const sibling = el.previousElementSibling; + if (sibling && sibling.tagName === "A") { + return sibling.classList.contains("active"); + } else { + return false; + } + }; + + // fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior) + function fireSlideEnter(e) { + const event = window.document.createEvent("Event"); + event.initEvent("slideenter", true, true); + window.document.dispatchEvent(event); + } + const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); + tabs.forEach((tab) => { + tab.addEventListener("shown.bs.tab", fireSlideEnter); + }); + + // fire slideEnter for tabby tab activations (for htmlwidget resize behavior) + document.addEventListener("tabby", fireSlideEnter, false); + + // Track scrolling and mark TOC links as active + // get table of contents and sidebar (bail if we don't have at least one) + const tocLinks = tocEl + ? [...tocEl.querySelectorAll("a[data-scroll-target]")] + : []; + const makeActive = (link) => tocLinks[link].classList.add("active"); + const removeActive = (link) => tocLinks[link].classList.remove("active"); + const removeAllActive = () => + [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); + + // activate the anchor for a section associated with this TOC entry + tocLinks.forEach((link) => { + link.addEventListener("click", () => { + if (link.href.indexOf("#") !== -1) { + const anchor = link.href.split("#")[1]; + const heading = window.document.querySelector( + `[data-anchor-id=${anchor}]` + ); + if (heading) { + // Add the class + heading.classList.add("reveal-anchorjs-link"); + + // function to show the anchor + const handleMouseout = () => { + heading.classList.remove("reveal-anchorjs-link"); + heading.removeEventListener("mouseout", handleMouseout); + }; + + // add a function to clear the anchor when the user mouses out of it + heading.addEventListener("mouseout", handleMouseout); + } + } + }); + }); + + const sections = tocLinks.map((link) => { + const target = link.getAttribute("data-scroll-target"); + if (target.startsWith("#")) { + return window.document.getElementById(decodeURI(`${target.slice(1)}`)); + } else { + return window.document.querySelector(decodeURI(`${target}`)); + } + }); + + const sectionMargin = 200; + let currentActive = 0; + // track whether we've initialized state the first time + let init = false; + + const updateActiveLink = () => { + // The index from bottom to top (e.g. reversed list) + let sectionIndex = -1; + if ( + window.innerHeight + window.pageYOffset >= + window.document.body.offsetHeight + ) { + sectionIndex = 0; + } else { + sectionIndex = [...sections].reverse().findIndex((section) => { + if (section) { + return window.pageYOffset >= section.offsetTop - sectionMargin; + } else { + return false; + } + }); + } + if (sectionIndex > -1) { + const current = sections.length - sectionIndex - 1; + if (current !== currentActive) { + removeAllActive(); + currentActive = current; + makeActive(current); + if (init) { + window.dispatchEvent(sectionChanged); + } + init = true; + } + } + }; + + const inHiddenRegion = (top, bottom, hiddenRegions) => { + for (const region of hiddenRegions) { + if (top <= region.bottom && bottom >= region.top) { + return true; + } + } + return false; + }; + + const categorySelector = "header.quarto-title-block .quarto-category"; + const activateCategories = (href) => { + // Find any categories + // Surround them with a link pointing back to: + // #category=Authoring + try { + const categoryEls = window.document.querySelectorAll(categorySelector); + for (const categoryEl of categoryEls) { + const categoryText = categoryEl.textContent; + if (categoryText) { + const link = `${href}#category=${encodeURIComponent(categoryText)}`; + const linkEl = window.document.createElement("a"); + linkEl.setAttribute("href", link); + for (const child of categoryEl.childNodes) { + linkEl.append(child); + } + categoryEl.appendChild(linkEl); + } + } + } catch { + // Ignore errors + } + }; + function hasTitleCategories() { + return window.document.querySelector(categorySelector) !== null; + } + + function offsetRelativeUrl(url) { + const offset = getMeta("quarto:offset"); + return offset ? offset + url : url; + } + + function offsetAbsoluteUrl(url) { + const offset = getMeta("quarto:offset"); + const baseUrl = new URL(offset, window.location); + + const projRelativeUrl = url.replace(baseUrl, ""); + if (projRelativeUrl.startsWith("/")) { + return projRelativeUrl; + } else { + return "/" + projRelativeUrl; + } + } + + // read a meta tag value + function getMeta(metaName) { + const metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; + } + + async function findAndActivateCategories() { + const currentPagePath = offsetAbsoluteUrl(window.location.href); + const response = await fetch(offsetRelativeUrl("listings.json")); + if (response.status == 200) { + return response.json().then(function (listingPaths) { + const listingHrefs = []; + for (const listingPath of listingPaths) { + const pathWithoutLeadingSlash = listingPath.listing.substring(1); + for (const item of listingPath.items) { + if ( + item === currentPagePath || + item === currentPagePath + "index.html" + ) { + // Resolve this path against the offset to be sure + // we already are using the correct path to the listing + // (this adjusts the listing urls to be rooted against + // whatever root the page is actually running against) + const relative = offsetRelativeUrl(pathWithoutLeadingSlash); + const baseUrl = window.location; + const resolvedPath = new URL(relative, baseUrl); + listingHrefs.push(resolvedPath.pathname); + break; + } + } + } + + // Look up the tree for a nearby linting and use that if we find one + const nearestListing = findNearestParentListing( + offsetAbsoluteUrl(window.location.pathname), + listingHrefs + ); + if (nearestListing) { + activateCategories(nearestListing); + } else { + // See if the referrer is a listing page for this item + const referredRelativePath = offsetAbsoluteUrl(document.referrer); + const referrerListing = listingHrefs.find((listingHref) => { + const isListingReferrer = + listingHref === referredRelativePath || + listingHref === referredRelativePath + "index.html"; + return isListingReferrer; + }); + + if (referrerListing) { + // Try to use the referrer if possible + activateCategories(referrerListing); + } else if (listingHrefs.length > 0) { + // Otherwise, just fall back to the first listing + activateCategories(listingHrefs[0]); + } + } + }); + } + } + if (hasTitleCategories()) { + findAndActivateCategories(); + } + + const findNearestParentListing = (href, listingHrefs) => { + if (!href || !listingHrefs) { + return undefined; + } + // Look up the tree for a nearby linting and use that if we find one + const relativeParts = href.substring(1).split("/"); + while (relativeParts.length > 0) { + const path = relativeParts.join("/"); + for (const listingHref of listingHrefs) { + if (listingHref.startsWith(path)) { + return listingHref; + } + } + relativeParts.pop(); + } + + return undefined; + }; + + const manageSidebarVisiblity = (el, placeholderDescriptor) => { + let isVisible = true; + let elRect; + + return (hiddenRegions) => { + if (el === null) { + return; + } + + // Find the last element of the TOC + const lastChildEl = el.lastElementChild; + + if (lastChildEl) { + // Converts the sidebar to a menu + const convertToMenu = () => { + for (const child of el.children) { + child.style.opacity = 0; + child.style.overflow = "hidden"; + } + + nexttick(() => { + const toggleContainer = window.document.createElement("div"); + toggleContainer.style.width = "100%"; + toggleContainer.classList.add("zindex-over-content"); + toggleContainer.classList.add("quarto-sidebar-toggle"); + toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom + toggleContainer.id = placeholderDescriptor.id; + toggleContainer.style.position = "fixed"; + + const toggleIcon = window.document.createElement("i"); + toggleIcon.classList.add("quarto-sidebar-toggle-icon"); + toggleIcon.classList.add("bi"); + toggleIcon.classList.add("bi-caret-down-fill"); + + const toggleTitle = window.document.createElement("div"); + const titleEl = window.document.body.querySelector( + placeholderDescriptor.titleSelector + ); + if (titleEl) { + toggleTitle.append( + titleEl.textContent || titleEl.innerText, + toggleIcon + ); + } + toggleTitle.classList.add("zindex-over-content"); + toggleTitle.classList.add("quarto-sidebar-toggle-title"); + toggleContainer.append(toggleTitle); + + const toggleContents = window.document.createElement("div"); + toggleContents.classList = el.classList; + toggleContents.classList.add("zindex-over-content"); + toggleContents.classList.add("quarto-sidebar-toggle-contents"); + for (const child of el.children) { + if (child.id === "toc-title") { + continue; + } + + const clone = child.cloneNode(true); + clone.style.opacity = 1; + clone.style.display = null; + toggleContents.append(clone); + } + toggleContents.style.height = "0px"; + const positionToggle = () => { + // position the element (top left of parent, same width as parent) + if (!elRect) { + elRect = el.getBoundingClientRect(); + } + toggleContainer.style.left = `${elRect.left}px`; + toggleContainer.style.top = `${elRect.top}px`; + toggleContainer.style.width = `${elRect.width}px`; + }; + positionToggle(); + + toggleContainer.append(toggleContents); + el.parentElement.prepend(toggleContainer); + + // Process clicks + let tocShowing = false; + // Allow the caller to control whether this is dismissed + // when it is clicked (e.g. sidebar navigation supports + // opening and closing the nav tree, so don't dismiss on click) + const clickEl = placeholderDescriptor.dismissOnClick + ? toggleContainer + : toggleTitle; + + const closeToggle = () => { + if (tocShowing) { + toggleContainer.classList.remove("expanded"); + toggleContents.style.height = "0px"; + tocShowing = false; + } + }; + + // Get rid of any expanded toggle if the user scrolls + window.document.addEventListener( + "scroll", + throttle(() => { + closeToggle(); + }, 50) + ); + + // Handle positioning of the toggle + window.addEventListener( + "resize", + throttle(() => { + elRect = undefined; + positionToggle(); + }, 50) + ); + + window.addEventListener("quarto-hrChanged", () => { + elRect = undefined; + }); + + // Process the click + clickEl.onclick = () => { + if (!tocShowing) { + toggleContainer.classList.add("expanded"); + toggleContents.style.height = null; + tocShowing = true; + } else { + closeToggle(); + } + }; + }); + }; + + // Converts a sidebar from a menu back to a sidebar + const convertToSidebar = () => { + for (const child of el.children) { + child.style.opacity = 1; + child.style.overflow = null; + } + + const placeholderEl = window.document.getElementById( + placeholderDescriptor.id + ); + if (placeholderEl) { + placeholderEl.remove(); + } + + el.classList.remove("rollup"); + }; + + if (isReaderMode()) { + convertToMenu(); + isVisible = false; + } else { + // Find the top and bottom o the element that is being managed + const elTop = el.offsetTop; + const elBottom = + elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; + + if (!isVisible) { + // If the element is current not visible reveal if there are + // no conflicts with overlay regions + if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToSidebar(); + isVisible = true; + } + } else { + // If the element is visible, hide it if it conflicts with overlay regions + // and insert a placeholder toggle (or if we're in reader mode) + if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToMenu(); + isVisible = false; + } + } + } + } + }; + }; + + const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); + for (const tabEl of tabEls) { + const id = tabEl.getAttribute("data-bs-target"); + if (id) { + const columnEl = document.querySelector( + `${id} .column-margin, .tabset-margin-content` + ); + if (columnEl) + tabEl.addEventListener("shown.bs.tab", function (event) { + const el = event.srcElement; + if (el) { + const visibleCls = `${el.id}-margin-content`; + // walk up until we find a parent tabset + let panelTabsetEl = el.parentElement; + while (panelTabsetEl) { + if (panelTabsetEl.classList.contains("panel-tabset")) { + break; + } + panelTabsetEl = panelTabsetEl.parentElement; + } + + if (panelTabsetEl) { + const prevSib = panelTabsetEl.previousElementSibling; + if ( + prevSib && + prevSib.classList.contains("tabset-margin-container") + ) { + const childNodes = prevSib.querySelectorAll( + ".tabset-margin-content" + ); + for (const childEl of childNodes) { + if (childEl.classList.contains(visibleCls)) { + childEl.classList.remove("collapse"); + } else { + childEl.classList.add("collapse"); + } + } + } + } + } + + layoutMarginEls(); + }); + } + } + + // Manage the visibility of the toc and the sidebar + const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { + id: "quarto-toc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { + id: "quarto-sidebarnav-toggle", + titleSelector: ".title", + dismissOnClick: false, + }); + let tocLeftScrollVisibility; + if (leftTocEl) { + tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { + id: "quarto-lefttoc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + } + + // Find the first element that uses formatting in special columns + const conflictingEls = window.document.body.querySelectorAll( + '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' + ); + + // Filter all the possibly conflicting elements into ones + // the do conflict on the left or ride side + const arrConflictingEls = Array.from(conflictingEls); + const leftSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return false; + } + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + className.startsWith("column-") && + !className.endsWith("right") && + !className.endsWith("container") && + className !== "column-margin" + ); + }); + }); + const rightSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return true; + } + + const hasMarginCaption = Array.from(el.classList).find((className) => { + return className == "margin-caption"; + }); + if (hasMarginCaption) { + return true; + } + + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + !className.endsWith("container") && + className.startsWith("column-") && + !className.endsWith("left") + ); + }); + }); + + const kOverlapPaddingSize = 10; + function toRegions(els) { + return els.map((el) => { + const boundRect = el.getBoundingClientRect(); + const top = + boundRect.top + + document.documentElement.scrollTop - + kOverlapPaddingSize; + return { + top, + bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, + }; + }); + } + + let hasObserved = false; + const visibleItemObserver = (els) => { + let visibleElements = [...els]; + const intersectionObserver = new IntersectionObserver( + (entries, _observer) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + if (visibleElements.indexOf(entry.target) === -1) { + visibleElements.push(entry.target); + } + } else { + visibleElements = visibleElements.filter((visibleEntry) => { + return visibleEntry !== entry; + }); + } + }); + + if (!hasObserved) { + hideOverlappedSidebars(); + } + hasObserved = true; + }, + {} + ); + els.forEach((el) => { + intersectionObserver.observe(el); + }); + + return { + getVisibleEntries: () => { + return visibleElements; + }, + }; + }; + + const rightElementObserver = visibleItemObserver(rightSideConflictEls); + const leftElementObserver = visibleItemObserver(leftSideConflictEls); + + const hideOverlappedSidebars = () => { + marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); + sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); + if (tocLeftScrollVisibility) { + tocLeftScrollVisibility( + toRegions(leftElementObserver.getVisibleEntries()) + ); + } + }; + + window.quartoToggleReader = () => { + // Applies a slow class (or removes it) + // to update the transition speed + const slowTransition = (slow) => { + const manageTransition = (id, slow) => { + const el = document.getElementById(id); + if (el) { + if (slow) { + el.classList.add("slow"); + } else { + el.classList.remove("slow"); + } + } + }; + + manageTransition("TOC", slow); + manageTransition("quarto-sidebar", slow); + }; + const readerMode = !isReaderMode(); + setReaderModeValue(readerMode); + + // If we're entering reader mode, slow the transition + if (readerMode) { + slowTransition(readerMode); + } + highlightReaderToggle(readerMode); + hideOverlappedSidebars(); + + // If we're exiting reader mode, restore the non-slow transition + if (!readerMode) { + slowTransition(!readerMode); + } + }; + + const highlightReaderToggle = (readerMode) => { + const els = document.querySelectorAll(".quarto-reader-toggle"); + if (els) { + els.forEach((el) => { + if (readerMode) { + el.classList.add("reader"); + } else { + el.classList.remove("reader"); + } + }); + } + }; + + const setReaderModeValue = (val) => { + if (window.location.protocol !== "file:") { + window.localStorage.setItem("quarto-reader-mode", val); + } else { + localReaderMode = val; + } + }; + + const isReaderMode = () => { + if (window.location.protocol !== "file:") { + return window.localStorage.getItem("quarto-reader-mode") === "true"; + } else { + return localReaderMode; + } + }; + let localReaderMode = null; + + const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); + const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; + + // Walk the TOC and collapse/expand nodes + // Nodes are expanded if: + // - they are top level + // - they have children that are 'active' links + // - they are directly below an link that is 'active' + const walk = (el, depth) => { + // Tick depth when we enter a UL + if (el.tagName === "UL") { + depth = depth + 1; + } + + // It this is active link + let isActiveNode = false; + if (el.tagName === "A" && el.classList.contains("active")) { + isActiveNode = true; + } + + // See if there is an active child to this element + let hasActiveChild = false; + for (child of el.children) { + hasActiveChild = walk(child, depth) || hasActiveChild; + } + + // Process the collapse state if this is an UL + if (el.tagName === "UL") { + if (tocOpenDepth === -1 && depth > 1) { + el.classList.add("collapse"); + } else if ( + depth <= tocOpenDepth || + hasActiveChild || + prevSiblingIsActiveLink(el) + ) { + el.classList.remove("collapse"); + } else { + el.classList.add("collapse"); + } + + // untick depth when we leave a UL + depth = depth - 1; + } + return hasActiveChild || isActiveNode; + }; + + // walk the TOC and expand / collapse any items that should be shown + + if (tocEl) { + walk(tocEl, 0); + updateActiveLink(); + } + + // Throttle the scroll event and walk peridiocally + window.document.addEventListener( + "scroll", + throttle(() => { + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 5) + ); + window.addEventListener( + "resize", + throttle(() => { + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 10) + ); + hideOverlappedSidebars(); + highlightReaderToggle(isReaderMode()); +}); + +// grouped tabsets +window.addEventListener("pageshow", (_event) => { + function getTabSettings() { + const data = localStorage.getItem("quarto-persistent-tabsets-data"); + if (!data) { + localStorage.setItem("quarto-persistent-tabsets-data", "{}"); + return {}; + } + if (data) { + return JSON.parse(data); + } + } + + function setTabSettings(data) { + localStorage.setItem( + "quarto-persistent-tabsets-data", + JSON.stringify(data) + ); + } + + function setTabState(groupName, groupValue) { + const data = getTabSettings(); + data[groupName] = groupValue; + setTabSettings(data); + } + + function toggleTab(tab, active) { + const tabPanelId = tab.getAttribute("aria-controls"); + const tabPanel = document.getElementById(tabPanelId); + if (active) { + tab.classList.add("active"); + tabPanel.classList.add("active"); + } else { + tab.classList.remove("active"); + tabPanel.classList.remove("active"); + } + } + + function toggleAll(selectedGroup, selectorsToSync) { + for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { + const active = selectedGroup === thisGroup; + for (const tab of tabs) { + toggleTab(tab, active); + } + } + } + + function findSelectorsToSyncByLanguage() { + const result = {}; + const tabs = Array.from( + document.querySelectorAll(`div[data-group] a[id^='tabset-']`) + ); + for (const item of tabs) { + const div = item.parentElement.parentElement.parentElement; + const group = div.getAttribute("data-group"); + if (!result[group]) { + result[group] = {}; + } + const selectorsToSync = result[group]; + const value = item.innerHTML; + if (!selectorsToSync[value]) { + selectorsToSync[value] = []; + } + selectorsToSync[value].push(item); + } + return result; + } + + function setupSelectorSync() { + const selectorsToSync = findSelectorsToSyncByLanguage(); + Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { + Object.entries(tabSetsByValue).forEach(([value, items]) => { + items.forEach((item) => { + item.addEventListener("click", (_event) => { + setTabState(group, value); + toggleAll(value, selectorsToSync[group]); + }); + }); + }); + }); + return selectorsToSync; + } + + const selectorsToSync = setupSelectorSync(); + for (const [group, selectedName] of Object.entries(getTabSettings())) { + const selectors = selectorsToSync[group]; + // it's possible that stale state gives us empty selections, so we explicitly check here. + if (selectors) { + toggleAll(selectedName, selectors); + } + } +}); + +function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; +} + +function nexttick(func) { + return setTimeout(func, 0); +} diff --git a/site_libs/quarto-html/tippy.css b/site_libs/quarto-html/tippy.css new file mode 100644 index 0000000..e6ae635 --- /dev/null +++ b/site_libs/quarto-html/tippy.css @@ -0,0 +1 @@ +.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/site_libs/quarto-html/tippy.umd.min.js b/site_libs/quarto-html/tippy.umd.min.js new file mode 100644 index 0000000..ca292be --- /dev/null +++ b/site_libs/quarto-html/tippy.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); + diff --git a/site_libs/quarto-nav/headroom.min.js b/site_libs/quarto-nav/headroom.min.js new file mode 100644 index 0000000..b08f1df --- /dev/null +++ b/site_libs/quarto-nav/headroom.min.js @@ -0,0 +1,7 @@ +/*! + * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it + * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js + * License: MIT + */ + +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=ls.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); diff --git a/site_libs/quarto-nav/quarto-nav.js b/site_libs/quarto-nav/quarto-nav.js new file mode 100644 index 0000000..3b21201 --- /dev/null +++ b/site_libs/quarto-nav/quarto-nav.js @@ -0,0 +1,277 @@ +const headroomChanged = new CustomEvent("quarto-hrChanged", { + detail: {}, + bubbles: true, + cancelable: false, + composed: false, +}); + +window.document.addEventListener("DOMContentLoaded", function () { + let init = false; + + // Manage the back to top button, if one is present. + let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop; + const scrollDownBuffer = 5; + const scrollUpBuffer = 35; + const btn = document.getElementById("quarto-back-to-top"); + const hideBackToTop = () => { + btn.style.display = "none"; + }; + const showBackToTop = () => { + btn.style.display = "inline-block"; + }; + if (btn) { + window.document.addEventListener( + "scroll", + function () { + const currentScrollTop = + window.pageYOffset || document.documentElement.scrollTop; + + // Shows and hides the button 'intelligently' as the user scrolls + if (currentScrollTop - scrollDownBuffer > lastScrollTop) { + hideBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { + showBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } + + // Show the button at the bottom, hides it at the top + if (currentScrollTop <= 0) { + hideBackToTop(); + } else if ( + window.innerHeight + currentScrollTop >= + document.body.offsetHeight + ) { + showBackToTop(); + } + }, + false + ); + } + + function throttle(func, wait) { + var timeout; + return function () { + const context = this; + const args = arguments; + const later = function () { + clearTimeout(timeout); + timeout = null; + func.apply(context, args); + }; + + if (!timeout) { + timeout = setTimeout(later, wait); + } + }; + } + + function headerOffset() { + // Set an offset if there is are fixed top navbar + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl) { + return headerEl.clientHeight; + } else { + return 0; + } + } + + function footerOffset() { + const footerEl = window.document.querySelector("footer.footer"); + if (footerEl) { + return footerEl.clientHeight; + } else { + return 0; + } + } + + function updateDocumentOffsetWithoutAnimation() { + updateDocumentOffset(false); + } + + function updateDocumentOffset(animated) { + // set body offset + const topOffset = headerOffset(); + const bodyOffset = topOffset + footerOffset(); + const bodyEl = window.document.body; + bodyEl.setAttribute("data-bs-offset", topOffset); + bodyEl.style.paddingTop = topOffset + "px"; + + // deal with sidebar offsets + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + if (!animated) { + sidebar.classList.add("notransition"); + // Remove the no transition class after the animation has time to complete + setTimeout(function () { + sidebar.classList.remove("notransition"); + }, 201); + } + + if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { + sidebar.style.top = "0"; + sidebar.style.maxHeight = "100vh"; + } else { + sidebar.style.top = topOffset + "px"; + sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; + } + }); + + // allow space for footer + const mainContainer = window.document.querySelector(".quarto-container"); + if (mainContainer) { + mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; + } + + // link offset + let linkStyle = window.document.querySelector("#quarto-target-style"); + if (!linkStyle) { + linkStyle = window.document.createElement("style"); + linkStyle.setAttribute("id", "quarto-target-style"); + window.document.head.appendChild(linkStyle); + } + while (linkStyle.firstChild) { + linkStyle.removeChild(linkStyle.firstChild); + } + if (topOffset > 0) { + linkStyle.appendChild( + window.document.createTextNode(` + section:target::before { + content: ""; + display: block; + height: ${topOffset}px; + margin: -${topOffset}px 0 0; + }`) + ); + } + if (init) { + window.dispatchEvent(headroomChanged); + } + init = true; + } + + // initialize headroom + var header = window.document.querySelector("#quarto-header"); + if (header && window.Headroom) { + const headroom = new window.Headroom(header, { + tolerance: 5, + onPin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.remove("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + onUnpin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.add("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + }); + headroom.init(); + + let frozen = false; + window.quartoToggleHeadroom = function () { + if (frozen) { + headroom.unfreeze(); + frozen = false; + } else { + headroom.freeze(); + frozen = true; + } + }; + } + + window.addEventListener( + "hashchange", + function (e) { + if ( + getComputedStyle(document.documentElement).scrollBehavior !== "smooth" + ) { + window.scrollTo(0, window.pageYOffset - headerOffset()); + } + }, + false + ); + + // Observe size changed for the header + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl && window.ResizeObserver) { + const observer = new window.ResizeObserver( + updateDocumentOffsetWithoutAnimation + ); + observer.observe(headerEl, { + attributes: true, + childList: true, + characterData: true, + }); + } else { + window.addEventListener( + "resize", + throttle(updateDocumentOffsetWithoutAnimation, 50) + ); + } + setTimeout(updateDocumentOffsetWithoutAnimation, 250); + + // fixup index.html links if we aren't on the filesystem + if (window.location.protocol !== "file:") { + const links = window.document.querySelectorAll("a"); + for (let i = 0; i < links.length; i++) { + if (links[i].href) { + links[i].href = links[i].href.replace(/\/index\.html/, "/"); + } + } + + // Fixup any sharing links that require urls + // Append url to any sharing urls + const sharingLinks = window.document.querySelectorAll( + "a.sidebar-tools-main-item" + ); + for (let i = 0; i < sharingLinks.length; i++) { + const sharingLink = sharingLinks[i]; + const href = sharingLink.getAttribute("href"); + if (href) { + sharingLink.setAttribute( + "href", + href.replace("|url|", window.location.href) + ); + } + } + + // Scroll the active navigation item into view, if necessary + const navSidebar = window.document.querySelector("nav#quarto-sidebar"); + if (navSidebar) { + // Find the active item + const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); + if (activeItem) { + // Wait for the scroll height and height to resolve by observing size changes on the + // nav element that is scrollable + const resizeObserver = new ResizeObserver((_entries) => { + // The bottom of the element + const elBottom = activeItem.offsetTop; + const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; + + // The element height and scroll height are the same, then we are still loading + if (viewBottom !== navSidebar.scrollHeight) { + // Determine if the item isn't visible and scroll to it + if (elBottom >= viewBottom) { + navSidebar.scrollTop = elBottom; + } + + // stop observing now since we've completed the scroll + resizeObserver.unobserve(navSidebar); + } + }); + resizeObserver.observe(navSidebar); + } + } + } +}); diff --git a/site_libs/quarto-search/autocomplete.umd.js b/site_libs/quarto-search/autocomplete.umd.js new file mode 100644 index 0000000..619c57c --- /dev/null +++ b/site_libs/quarto-search/autocomplete.umd.js @@ -0,0 +1,3 @@ +/*! @algolia/autocomplete-js 1.7.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],u=!0,a=!1;try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=n?null===r?null:0:o}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ae,ce,le,se=null,pe=(ae=-1,ce=-1,le=void 0,function(e){var t=++ae;return Promise.resolve(e).then((function(e){return le&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ye=["props","refresh","store"],be=["inputElement","formElement","panelElement"],Oe=["inputElement"],_e=["inputElement","maxLength"],Pe=["item","source"];function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function we(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ee(e){var t=e.props,n=e.refresh,r=e.store,o=Ie(e,ye);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return we({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Ie(e,be))},getRootProps:function(e){return we({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,we({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(we({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},Ie(e,Oe))},getLabelProps:function(e){return we({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&fe(we({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var c=a.maxLength,l=void 0===c?512:c,s=Ie(a,_e),p=A(r.getState()),f=function(e){return Boolean(e&&e.match(C))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),d=null!=p&&p.itemUrl&&!f?"go":"search";return we({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){fe(we({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=ge(e,de);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},a=function(){var e=A(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,c=e.source;c.onActive(ve({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:c,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?fe(ve({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var c=A(o.getState()),l=c.item,s=c.itemInputValue,p=c.itemUrl,f=c.source;if(t.metaKey||t.ctrlKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:p,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==p&&(f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:p,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==p)return f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i)),void n.navigator.navigate({itemUrl:p,item:l,state:o.getState()});fe(ve({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){f.onSelect(ve({event:t,item:l,itemInputValue:s,itemUrl:p,refresh:r,source:f,state:o.getState()},i))}))}}}(we({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:y,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return we({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return we({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var i=e.item,u=e.source,a=Ie(e,Pe);return we({id:"".concat(t.id,"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=A(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,c=t.itemUrl,l=t.source;l.onActive(we({event:e,item:u,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),c=u.getItemUrl({item:i,state:r.getState()});(c?Promise.resolve():fe(we({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(we({event:e,item:i,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ce(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:v(),plugins:o,initialState:H({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(F(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return E(e,n)}))).then((function(e){return d(e)})).then((function(e){return e.map((function(e){return H(H({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:H({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=R(Te,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(Be({prevState:t,state:r,refresh:u},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return L(L({},e),{},{items:d(e.items).map((function(e){return L(L({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=Ee(Be({props:n,refresh:u,store:r},o));function u(){return fe(Be({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:u,store:r},o))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,Be(Be({},o),{},{refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var i=o.document.createElement("meta"),u=o.document.querySelector("head");i.name="algolia:metadata",setTimeout((function(){i.content=JSON.stringify(r),u.appendChild(i)}),0)}}({metadata:ke({plugins:n.plugins,options:e}),environment:n.environment}),Be(Be({refresh:u},i),o)}var Ue=function(e,t,n,r){var o;t[0]=0;for(var i=1;i=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},c=0;c"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[c][l+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var We=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function Qe(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function $e(){for(var e=arguments.length,t=new Array(e),n=0;n2&&(u.children=arguments.length>3?lt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return _t(e,u,r,o,null)}function _t(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++pt:o};return null==o&&null!=st.vnode&&st.vnode(i),i}function Pt(e){return e.children}function jt(e,t){this.props=e,this.context=t}function wt(e,t){if(null==t)return e.__?wt(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?_t(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=g[s])||f&&d.key==f.key&&d.type===f.type)g[s]=void 0;else for(p=0;p0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Ht);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Wt(e){return function(e){if(Array.isArray(e))return Qt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Qt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qt(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Gt=new RegExp(/\w/i),Kt=/&(amp|quot|lt|gt|#39);/g,Jt=RegExp(Kt.source);function Yt(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Gt.test((o=i.value)&&Jt.test(o)?o.replace(Kt,(function(e){return zt[e]})):o)||a!==u?i.isHighlighted:a}function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function mn(e){return function(e){if(Array.isArray(e))return vn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return vn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(h.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Sn,options:e}}))})),j=p(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),w={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},S={setActiveItemId:P.value.setActiveItemId,setQuery:P.value.setQuery,setCollections:P.value.setCollections,setIsOpen:P.value.setIsOpen,setStatus:P.value.setStatus,setContext:P.value.setContext,refresh:P.value.refresh},I=d((function(){return Ve.bind(O.value.renderer.renderer.createElement)})),E=d((function(){return ct({autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:w,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function A(){tt(E.value.panel,{style:_.value?{}:wn({panelPlacement:O.value.renderer.panelPlacement,container:E.value.root,form:E.value.form,environment:O.value.core.environment})})}function C(e){j.current=e;var t={autocomplete:P.value,autocompleteScopeApi:S,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:E.value,panelContainer:_.value?E.value.detachedContainer:O.value.renderer.panelContainer,propGetters:w,state:j.current,renderer:O.value.renderer.renderer},r=!g(e)&&!h.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;nt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),nt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),tt(o.label,{hidden:"stalled"===u.status}),tt(o.loadingIndicator,{hidden:"stalled"!==u.status}),tt(o.clearButton,{hidden:!u.query})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,c=t.dom,l=t.panelContainer,s=t.propGetters,p=t.state,f=t.components,d=t.renderer;if(p.isOpen){l.contains(c.panel)||"loading"===p.status||l.appendChild(c.panel),c.panel.classList.toggle("aa-Panel--stalled","stalled"===p.status);var m=p.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var c=e.source,l=e.items;return d.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":c.sourceId},c.templates.header&&d.createElement("div",{className:u.sourceHeader},c.templates.header({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})),c.templates.noResults&&0===l.length?d.createElement("div",{className:u.sourceNoResults},c.templates.noResults({components:f,createElement:d.createElement,Fragment:d.Fragment,source:c,state:p,html:a})):d.createElement("ul",i({className:u.list},s.getListProps(n({state:p,props:r.getListProps({})},o))),l.map((function(e){var t=r.getItemProps({item:e,source:c});return d.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:p,props:t},o))),c.templates.item({components:f,createElement:d.createElement,Fragment:d.Fragment,item:e,state:p,html:a}))}))),c.templates.footer&&d.createElement("div",{className:u.sourceFooter},c.templates.footer({components:f,createElement:d.createElement,Fragment:d.Fragment,items:l,source:c,state:p,html:a})))})),v=d.createElement(d.Fragment,null,d.createElement("div",{className:u.panelLayout},m),d.createElement("div",{className:"aa-GradientBottom"})),h=m.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:v,state:p,sections:m,elements:h},d),{},{components:f,html:a},o),c.panel)}else l.contains(c.panel)&&l.removeChild(c.panel)}(r,t)}function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c();var t=O.value.renderer,n=t.components,r=u(t,In);y.current=Ge(r,O.value.core,{components:Ke(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),m(),l(),P.value.refresh().then((function(){C(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(E.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),E.value.input.focus()):(O.value.core.environment.document.body.removeChild(E.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached"),P.value.setQuery(""),P.value.refresh()))}))}return a((function(){var e=P.value.getEnvironmentProps({formElement:E.value.form,panelElement:E.value.panel,inputElement:E.value.input});return tt(O.value.core.environment,e),function(){tt(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?E.value.detachedOverlay:E.value.panel;return _.value&&j.current.isOpen&&k(!0),C(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(E.value.root),function(){e.removeChild(E.value.root)}})),a((function(){var e=f((function(e){C(e.state)}),0);return b.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||A(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){b.current=void 0}})),a((function(){var e=f((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?D({}):requestAnimationFrame(A)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!_.value)return function(){};function e(e){E.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(A),function(){}})),n(n({},S),{},{update:D,destroy:function(){c()}})},e.getAlgoliaFacets=function(e){var t=En({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=An,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-search/fuse.min.js b/site_libs/quarto-search/fuse.min.js new file mode 100644 index 0000000..adc2835 --- /dev/null +++ b/site_libs/quarto-search/fuse.min.js @@ -0,0 +1,9 @@ +/** + * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2022 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/site_libs/quarto-search/quarto-search.js b/site_libs/quarto-search/quarto-search.js new file mode 100644 index 0000000..f5d852d --- /dev/null +++ b/site_libs/quarto-search/quarto-search.js @@ -0,0 +1,1140 @@ +const kQueryArg = "q"; +const kResultsArg = "show-results"; + +// If items don't provide a URL, then both the navigator and the onSelect +// function aren't called (and therefore, the default implementation is used) +// +// We're using this sentinel URL to signal to those handlers that this +// item is a more item (along with the type) and can be handled appropriately +const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05"; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Ensure that search is available on this page. If it isn't, + // should return early and not do anything + var searchEl = window.document.getElementById("quarto-search"); + if (!searchEl) return; + + const { autocomplete } = window["@algolia/autocomplete-js"]; + + let quartoSearchOptions = {}; + let language = {}; + const searchOptionEl = window.document.getElementById( + "quarto-search-options" + ); + if (searchOptionEl) { + const jsonStr = searchOptionEl.textContent; + quartoSearchOptions = JSON.parse(jsonStr); + language = quartoSearchOptions.language; + } + + // note the search mode + if (quartoSearchOptions.type === "overlay") { + searchEl.classList.add("type-overlay"); + } else { + searchEl.classList.add("type-textbox"); + } + + // Used to determine highlighting behavior for this page + // A `q` query param is expected when the user follows a search + // to this page + const currentUrl = new URL(window.location); + const query = currentUrl.searchParams.get(kQueryArg); + const showSearchResults = currentUrl.searchParams.get(kResultsArg); + const mainEl = window.document.querySelector("main"); + + // highlight matches on the page + if (query !== null && mainEl) { + // perform any highlighting + highlight(escapeRegExp(query), mainEl); + + // fix up the URL to remove the q query param + const replacementUrl = new URL(window.location); + replacementUrl.searchParams.delete(kQueryArg); + window.history.replaceState({}, "", replacementUrl); + } + + // function to clear highlighting on the page when the search query changes + // (e.g. if the user edits the query or clears it) + let highlighting = true; + const resetHighlighting = (searchTerm) => { + if (mainEl && highlighting && query !== null && searchTerm !== query) { + clearHighlight(query, mainEl); + highlighting = false; + } + }; + + // Clear search highlighting when the user scrolls sufficiently + const resetFn = () => { + resetHighlighting(""); + window.removeEventListener("quarto-hrChanged", resetFn); + window.removeEventListener("quarto-sectionChanged", resetFn); + }; + + // Register this event after the initial scrolling and settling of events + // on the page + window.addEventListener("quarto-hrChanged", resetFn); + window.addEventListener("quarto-sectionChanged", resetFn); + + // Responsively switch to overlay mode if the search is present on the navbar + // Note that switching the sidebar to overlay mode requires more coordinate (not just + // the media query since we generate different HTML for sidebar overlays than we do + // for sidebar input UI) + const detachedMediaQuery = + quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)"; + + // If configured, include the analytics client to send insights + const plugins = configurePlugins(quartoSearchOptions); + + let lastState = null; + const { setIsOpen, setQuery, setCollections } = autocomplete({ + container: searchEl, + detachedMediaQuery: detachedMediaQuery, + defaultActiveItemId: 0, + panelContainer: "#quarto-search-results", + panelPlacement: quartoSearchOptions["panel-placement"], + debug: false, + openOnFocus: true, + plugins, + classNames: { + form: "d-flex", + }, + translations: { + clearButtonTitle: language["search-clear-button-title"], + detachedCancelButtonText: language["search-detached-cancel-button-title"], + submitButtonTitle: language["search-submit-button-title"], + }, + initialState: { + query, + }, + getItemUrl({ item }) { + return item.href; + }, + onStateChange({ state }) { + // Perhaps reset highlighting + resetHighlighting(state.query); + + // If the panel just opened, ensure the panel is positioned properly + if (state.isOpen) { + if (lastState && !lastState.isOpen) { + setTimeout(() => { + positionPanel(quartoSearchOptions["panel-placement"]); + }, 150); + } + } + + // Perhaps show the copy link + showCopyLink(state.query, quartoSearchOptions); + + lastState = state; + }, + reshape({ sources, state }) { + return sources.map((source) => { + try { + const items = source.getItems(); + + // Validate the items + validateItems(items); + + // group the items by document + const groupedItems = new Map(); + items.forEach((item) => { + const hrefParts = item.href.split("#"); + const baseHref = hrefParts[0]; + const isDocumentItem = hrefParts.length === 1; + + const items = groupedItems.get(baseHref); + if (!items) { + groupedItems.set(baseHref, [item]); + } else { + // If the href for this item matches the document + // exactly, place this item first as it is the item that represents + // the document itself + if (isDocumentItem) { + items.unshift(item); + } else { + items.push(item); + } + groupedItems.set(baseHref, items); + } + }); + + const reshapedItems = []; + let count = 1; + for (const [_key, value] of groupedItems) { + const firstItem = value[0]; + reshapedItems.push({ + ...firstItem, + type: kItemTypeDoc, + }); + + const collapseMatches = quartoSearchOptions["collapse-after"]; + const collapseCount = + typeof collapseMatches === "number" ? collapseMatches : 1; + + if (value.length > 1) { + const target = `search-more-${count}`; + const isExpanded = + state.context.expanded && + state.context.expanded.includes(target); + + const remainingCount = value.length - collapseCount; + + for (let i = 1; i < value.length; i++) { + if (collapseMatches && i === collapseCount) { + reshapedItems.push({ + target, + title: isExpanded + ? language["search-hide-matches-text"] + : remainingCount === 1 + ? `${remainingCount} ${language["search-more-match-text"]}` + : `${remainingCount} ${language["search-more-matches-text"]}`, + type: kItemTypeMore, + href: kItemTypeMoreHref, + }); + } + + if (isExpanded || !collapseMatches || i < collapseCount) { + reshapedItems.push({ + ...value[i], + type: kItemTypeItem, + target, + }); + } + } + } + count += 1; + } + + return { + ...source, + getItems() { + return reshapedItems; + }, + }; + } catch (error) { + // Some form of error occurred + return { + ...source, + getItems() { + return [ + { + title: error.name || "An Error Occurred While Searching", + text: + error.message || + "An unknown error occurred while attempting to perform the requested search.", + type: kItemTypeError, + }, + ]; + }, + }; + } + }); + }, + navigator: { + navigate({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.location.assign(itemUrl); + } + }, + navigateNewTab({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + const windowReference = window.open(itemUrl, "_blank", "noopener"); + if (windowReference) { + windowReference.focus(); + } + } + }, + navigateNewWindow({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.open(itemUrl, "_blank", "noopener"); + } + }, + }, + getSources({ state, setContext, setActiveItemId, refresh }) { + return [ + { + sourceId: "documents", + getItemUrl({ item }) { + if (item.href) { + return offsetURL(item.href); + } else { + return undefined; + } + }, + onSelect({ + item, + state, + setContext, + setIsOpen, + setActiveItemId, + refresh, + }) { + if (item.type === kItemTypeMore) { + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + + // Toggle more + setIsOpen(true); + } + }, + getItems({ query }) { + if (query === null || query === "") { + return []; + } + + const limit = quartoSearchOptions.limit; + if (quartoSearchOptions.algolia) { + return algoliaSearch(query, limit, quartoSearchOptions.algolia); + } else { + // Fuse search options + const fuseSearchOptions = { + isCaseSensitive: false, + shouldSort: true, + minMatchCharLength: 2, + limit: limit, + }; + + return readSearchData().then(function (fuse) { + return fuseSearch(query, fuse, fuseSearchOptions); + }); + } + }, + templates: { + noResults({ createElement }) { + const hasQuery = lastState.query; + + return createElement( + "div", + { + class: `quarto-search-no-results${ + hasQuery ? "" : " no-query" + }`, + }, + language["search-no-results-text"] + ); + }, + header({ items, createElement }) { + // count the documents + const count = items.filter((item) => { + return item.type === kItemTypeDoc; + }).length; + + if (count > 0) { + return createElement( + "div", + { class: "search-result-header" }, + `${count} ${language["search-matching-documents-text"]}` + ); + } else { + return createElement( + "div", + { class: "search-result-header-no-results" }, + `` + ); + } + }, + footer({ _items, createElement }) { + if ( + quartoSearchOptions.algolia && + quartoSearchOptions.algolia["show-logo"] + ) { + const libDir = quartoSearchOptions.algolia["libDir"]; + const logo = createElement("img", { + src: offsetURL( + `${libDir}/quarto-search/search-by-algolia.svg` + ), + class: "algolia-search-logo", + }); + return createElement( + "a", + { href: "http://www.algolia.com/" }, + logo + ); + } + }, + + item({ item, createElement }) { + return renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh + ); + }, + }, + }, + ]; + }, + }); + + window.quartoOpenSearch = () => { + setIsOpen(false); + setIsOpen(true); + focusSearchInput(); + }; + + // Remove the labeleledby attribute since it is pointing + // to a non-existent label + if (quartoSearchOptions.type === "overlay") { + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + if (inputEl) { + inputEl.removeAttribute("aria-labelledby"); + } + } + + // If the main document scrolls dismiss the search results + // (otherwise, since they're floating in the document they can scroll with the document) + window.document.body.onscroll = () => { + setIsOpen(false); + }; + + if (showSearchResults) { + setIsOpen(true); + focusSearchInput(); + } +}); + +function configurePlugins(quartoSearchOptions) { + const autocompletePlugins = []; + const algoliaOptions = quartoSearchOptions.algolia; + if ( + algoliaOptions && + algoliaOptions["analytics-events"] && + algoliaOptions["search-only-api-key"] && + algoliaOptions["application-id"] + ) { + const apiKey = algoliaOptions["search-only-api-key"]; + const appId = algoliaOptions["application-id"]; + + // Aloglia insights may not be loaded because they require cookie consent + // Use deferred loading so events will start being recorded when/if consent + // is granted. + const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => { + if ( + window.aa && + window["@algolia/autocomplete-plugin-algolia-insights"] + ) { + window.aa("init", { + appId, + apiKey, + useCookie: true, + }); + + const { createAlgoliaInsightsPlugin } = + window["@algolia/autocomplete-plugin-algolia-insights"]; + // Register the insights client + const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({ + insightsClient: window.aa, + onItemsChange({ insights, insightsEvents }) { + const events = insightsEvents.map((event) => { + const maxEvents = event.objectIDs.slice(0, 20); + return { + ...event, + objectIDs: maxEvents, + }; + }); + + insights.viewedObjectIDs(...events); + }, + }); + return algoliaInsightsPlugin; + } + }); + + // Add the plugin + autocompletePlugins.push(algoliaInsightsDeferredPlugin); + return autocompletePlugins; + } +} + +// For plugins that may not load immediately, create a wrapper +// plugin and forward events and plugin data once the plugin +// is initialized. This is useful for cases like cookie consent +// which may prevent the analytics insights event plugin from initializing +// immediately. +function deferredLoadPlugin(createPlugin) { + let plugin = undefined; + let subscribeObj = undefined; + const wrappedPlugin = () => { + if (!plugin && subscribeObj) { + plugin = createPlugin(); + if (plugin && plugin.subscribe) { + plugin.subscribe(subscribeObj); + } + } + return plugin; + }; + + return { + subscribe: (obj) => { + subscribeObj = obj; + }, + onStateChange: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onStateChange) { + plugin.onStateChange(obj); + } + }, + onSubmit: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onSubmit) { + plugin.onSubmit(obj); + } + }, + onReset: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onReset) { + plugin.onReset(obj); + } + }, + getSources: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.getSources) { + return plugin.getSources(obj); + } else { + return Promise.resolve([]); + } + }, + data: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.data) { + plugin.data(obj); + } + }, + }; +} + +function validateItems(items) { + // Validate the first item + if (items.length > 0) { + const item = items[0]; + const missingFields = []; + if (item.href == undefined) { + missingFields.push("href"); + } + if (!item.title == undefined) { + missingFields.push("title"); + } + if (!item.text == undefined) { + missingFields.push("text"); + } + + if (missingFields.length === 1) { + throw { + name: `Error: Search index is missing the ${missingFields[0]} field.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the ${missingFields[0]} field or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } else if (missingFields.length > 1) { + const missingFieldList = missingFields + .map((field) => { + return `${field}`; + }) + .join(", "); + + throw { + name: `Error: Search index is missing the following fields: ${missingFieldList}.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } + } +} + +let lastQuery = null; +function showCopyLink(query, options) { + const language = options.language; + lastQuery = query; + // Insert share icon + const inputSuffixEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix" + ); + + if (inputSuffixEl) { + let copyButtonEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix .aa-CopyButton" + ); + + if (copyButtonEl === null) { + copyButtonEl = window.document.createElement("button"); + copyButtonEl.setAttribute("class", "aa-CopyButton"); + copyButtonEl.setAttribute("type", "button"); + copyButtonEl.setAttribute("title", language["search-copy-link-title"]); + copyButtonEl.onmousedown = (e) => { + e.preventDefault(); + e.stopPropagation(); + }; + + const linkIcon = "bi-clipboard"; + const checkIcon = "bi-check2"; + + const shareIconEl = window.document.createElement("i"); + shareIconEl.setAttribute("class", `bi ${linkIcon}`); + copyButtonEl.appendChild(shareIconEl); + inputSuffixEl.prepend(copyButtonEl); + + const clipboard = new window.ClipboardJS(".aa-CopyButton", { + text: function (_trigger) { + const copyUrl = new URL(window.location); + copyUrl.searchParams.set(kQueryArg, lastQuery); + copyUrl.searchParams.set(kResultsArg, "1"); + return copyUrl.toString(); + }, + }); + clipboard.on("success", function (e) { + // Focus the input + + // button target + const button = e.trigger; + const icon = button.querySelector("i.bi"); + + // flash "checked" + icon.classList.add(checkIcon); + icon.classList.remove(linkIcon); + setTimeout(function () { + icon.classList.remove(checkIcon); + icon.classList.add(linkIcon); + }, 1000); + }); + } + + // If there is a query, show the link icon + if (copyButtonEl) { + if (lastQuery && options["copy-button"]) { + copyButtonEl.style.display = "flex"; + } else { + copyButtonEl.style.display = "none"; + } + } + } +} + +/* Search Index Handling */ +// create the index +var fuseIndex = undefined; +async function readSearchData() { + // Initialize the search index on demand + if (fuseIndex === undefined) { + // create fuse index + const options = { + keys: [ + { name: "title", weight: 20 }, + { name: "section", weight: 20 }, + { name: "text", weight: 10 }, + ], + ignoreLocation: true, + threshold: 0.1, + }; + const fuse = new window.Fuse([], options); + + // fetch the main search.json + const response = await fetch(offsetURL("search.json")); + if (response.status == 200) { + return response.json().then(function (searchDocs) { + searchDocs.forEach(function (searchDoc) { + fuse.add(searchDoc); + }); + fuseIndex = fuse; + return fuseIndex; + }); + } else { + return Promise.reject( + new Error( + "Unexpected status from search index request: " + response.status + ) + ); + } + } + return fuseIndex; +} + +function inputElement() { + return window.document.body.querySelector(".aa-Form .aa-Input"); +} + +function focusSearchInput() { + setTimeout(() => { + const inputEl = inputElement(); + if (inputEl) { + inputEl.focus(); + } + }, 50); +} + +/* Panels */ +const kItemTypeDoc = "document"; +const kItemTypeMore = "document-more"; +const kItemTypeItem = "document-item"; +const kItemTypeError = "error"; + +function renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh +) { + switch (item.type) { + case kItemTypeDoc: + return createDocumentCard( + createElement, + "file-richtext", + item.title, + item.section, + item.text, + item.href + ); + case kItemTypeMore: + return createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh + ); + case kItemTypeItem: + return createSectionCard( + createElement, + item.section, + item.text, + item.href + ); + case kItemTypeError: + return createErrorCard(createElement, item.title, item.text); + default: + return undefined; + } +} + +function createDocumentCard(createElement, icon, title, section, text, href) { + const iconEl = createElement("i", { + class: `bi bi-${icon} search-result-icon`, + }); + const titleEl = createElement("p", { class: "search-result-title" }, title); + const titleContainerEl = createElement( + "div", + { class: "search-result-title-container" }, + [iconEl, titleEl] + ); + + const textEls = []; + if (section) { + const sectionEl = createElement( + "p", + { class: "search-result-section" }, + section + ); + textEls.push(sectionEl); + } + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + textEls.push(descEl); + + const textContainerEl = createElement( + "div", + { class: "search-result-text-container" }, + textEls + ); + + const containerEl = createElement( + "div", + { + class: "search-result-container", + }, + [titleContainerEl, textContainerEl] + ); + + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + containerEl + ); + + const classes = ["search-result-doc", "search-item"]; + if (!section) { + classes.push("document-selectable"); + } + + return createElement( + "div", + { + class: classes.join(" "), + }, + linkEl + ); +} + +function createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh +) { + const moreCardEl = createElement( + "div", + { + class: "search-result-more search-item", + onClick: (e) => { + // Handle expanding the sections by adding the expanded + // section to the list of expanded sections + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + e.stopPropagation(); + }, + }, + item.title + ); + + return moreCardEl; +} + +function toggleExpanded(item, state, setContext, setActiveItemId, refresh) { + const expanded = state.context.expanded || []; + if (expanded.includes(item.target)) { + setContext({ + expanded: expanded.filter((target) => target !== item.target), + }); + } else { + setContext({ expanded: [...expanded, item.target] }); + } + + refresh(); + setActiveItemId(item.__autocomplete_id); +} + +function createSectionCard(createElement, section, text, href) { + const sectionEl = createSection(createElement, section, text, href); + return createElement( + "div", + { + class: "search-result-doc-section search-item", + }, + sectionEl + ); +} + +function createSection(createElement, title, text, href) { + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { class: "search-result-section" }, title); + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + [titleEl, descEl] + ); + return linkEl; +} + +function createErrorCard(createElement, title, text) { + const descEl = createElement("p", { + class: "search-error-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { + class: "search-error-title", + dangerouslySetInnerHTML: { + __html: ` ${title}`, + }, + }); + const errorEl = createElement("div", { class: "search-error" }, [ + titleEl, + descEl, + ]); + return errorEl; +} + +function positionPanel(pos) { + const panelEl = window.document.querySelector( + "#quarto-search-results .aa-Panel" + ); + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + + if (panelEl && inputEl) { + panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`; + if (pos === "start") { + panelEl.style.left = `${Math.round(inputEl.left)}px`; + } else { + panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`; + } + } +} + +/* Highlighting */ +// highlighting functions +function highlightMatch(query, text) { + if (text) { + const start = text.toLowerCase().indexOf(query.toLowerCase()); + if (start !== -1) { + const startMark = ""; + const endMark = ""; + + const end = start + query.length; + text = + text.slice(0, start) + + startMark + + text.slice(start, end) + + endMark + + text.slice(end); + const startInfo = clipStart(text, start); + const endInfo = clipEnd( + text, + startInfo.position + startMark.length + endMark.length + ); + text = + startInfo.prefix + + text.slice(startInfo.position, endInfo.position) + + endInfo.suffix; + + return text; + } else { + return text; + } + } else { + return text; + } +} + +function clipStart(text, pos) { + const clipStart = pos - 50; + if (clipStart < 0) { + // This will just return the start of the string + return { + position: 0, + prefix: "", + }; + } else { + // We're clipping before the start of the string, walk backwards to the first space. + const spacePos = findSpace(text, pos, -1); + return { + position: spacePos.position, + prefix: "", + }; + } +} + +function clipEnd(text, pos) { + const clipEnd = pos + 200; + if (clipEnd > text.length) { + return { + position: text.length, + suffix: "", + }; + } else { + const spacePos = findSpace(text, clipEnd, 1); + return { + position: spacePos.position, + suffix: spacePos.clipped ? "…" : "", + }; + } +} + +function findSpace(text, start, step) { + let stepPos = start; + while (stepPos > -1 && stepPos < text.length) { + const char = text[stepPos]; + if (char === " " || char === "," || char === ":") { + return { + position: step === 1 ? stepPos : stepPos - step, + clipped: stepPos > 1 && stepPos < text.length, + }; + } + stepPos = stepPos + step; + } + + return { + position: stepPos - step, + clipped: false, + }; +} + +// removes highlighting as implemented by the mark tag +function clearHighlight(searchterm, el) { + const childNodes = el.childNodes; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + if (node.nodeType === Node.ELEMENT_NODE) { + if ( + node.tagName === "MARK" && + node.innerText.toLowerCase() === searchterm.toLowerCase() + ) { + el.replaceChild(document.createTextNode(node.innerText), node); + } else { + clearHighlight(searchterm, node); + } + } + } +} + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} + +// highlight matches +function highlight(term, el) { + const termRegex = new RegExp(term, "ig"); + const childNodes = el.childNodes; + + // walk back to front avoid mutating elements in front of us + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + if (node.nodeType === Node.TEXT_NODE) { + // Search text nodes for text to highlight + const text = node.nodeValue; + + let startIndex = 0; + let matchIndex = text.search(termRegex); + if (matchIndex > -1) { + const markFragment = document.createDocumentFragment(); + while (matchIndex > -1) { + const prefix = text.slice(startIndex, matchIndex); + markFragment.appendChild(document.createTextNode(prefix)); + + const mark = document.createElement("mark"); + mark.appendChild( + document.createTextNode( + text.slice(matchIndex, matchIndex + term.length) + ) + ); + markFragment.appendChild(mark); + + startIndex = matchIndex + term.length; + matchIndex = text.slice(startIndex).search(new RegExp(term, "ig")); + if (matchIndex > -1) { + matchIndex = startIndex + matchIndex; + } + } + if (startIndex < text.length) { + markFragment.appendChild( + document.createTextNode(text.slice(startIndex, text.length)) + ); + } + + el.replaceChild(markFragment, node); + } + } else if (node.nodeType === Node.ELEMENT_NODE) { + // recurse through elements + highlight(term, node); + } + } +} + +/* Link Handling */ +// get the offset from this page for a given site root relative url +function offsetURL(url) { + var offset = getMeta("quarto:offset"); + return offset ? offset + url : url; +} + +// read a meta tag value +function getMeta(metaName) { + var metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; +} + +function algoliaSearch(query, limit, algoliaOptions) { + const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"]; + + const applicationId = algoliaOptions["application-id"]; + const searchOnlyApiKey = algoliaOptions["search-only-api-key"]; + const indexName = algoliaOptions["index-name"]; + const indexFields = algoliaOptions["index-fields"]; + const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey); + const searchParams = algoliaOptions["params"]; + const searchAnalytics = !!algoliaOptions["analytics-events"]; + + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName: indexName, + query, + params: { + hitsPerPage: limit, + clickAnalytics: searchAnalytics, + ...searchParams, + }, + }, + ], + transformResponse: (response) => { + if (!indexFields) { + return response.hits.map((hit) => { + return hit.map((item) => { + return { + ...item, + text: highlightMatch(query, item.text), + }; + }); + }); + } else { + const remappedHits = response.hits.map((hit) => { + return hit.map((item) => { + const newItem = { ...item }; + ["href", "section", "title", "text"].forEach((keyName) => { + const mappedName = indexFields[keyName]; + if ( + mappedName && + item[mappedName] !== undefined && + mappedName !== keyName + ) { + newItem[keyName] = item[mappedName]; + delete newItem[mappedName]; + } + }); + newItem.text = highlightMatch(query, newItem.text); + return newItem; + }); + }); + return remappedHits; + } + }, + }); +} + +function fuseSearch(query, fuse, fuseOptions) { + return fuse.search(query, fuseOptions).map((result) => { + const addParam = (url, name, value) => { + const anchorParts = url.split("#"); + const baseUrl = anchorParts[0]; + const sep = baseUrl.search("\\?") > 0 ? "&" : "?"; + anchorParts[0] = baseUrl + sep + name + "=" + value; + return anchorParts.join("#"); + }; + + return { + title: result.item.title, + section: result.item.section, + href: addParam(result.item.href, kQueryArg, query), + text: highlightMatch(query, result.item.text), + }; + }); +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..106b1b7 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,147 @@ + + + + https://FlorianFuerrutter.github.io/genQC/models/frozen_open_clip.html + 2023-12-08T17:48:14.603Z + + + https://FlorianFuerrutter.github.io/genQC/models/unitary_encoder.html + 2023-12-08T17:48:14.031Z + + + https://FlorianFuerrutter.github.io/genQC/models/transformers.html + 2023-12-08T17:48:13.479Z + + + https://FlorianFuerrutter.github.io/genQC/index.html + 2023-12-08T17:48:12.895Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline.html + 2023-12-08T17:48:12.079Z + + + https://FlorianFuerrutter.github.io/genQC/config_loader.html + 2023-12-08T17:48:11.523Z + + + https://FlorianFuerrutter.github.io/genQC/platform/simulation/qcircuit_sim.html + 2023-12-08T17:48:10.963Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_dataset_construction.html + 2023-12-08T17:48:10.359Z + + + https://FlorianFuerrutter.github.io/genQC/metrics.html + 2023-12-08T17:48:09.763Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddpm.html + 2023-12-08T17:48:09.175Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddim.html + 2023-12-08T17:48:08.643Z + + + https://FlorianFuerrutter.github.io/genQC/RELEASES.html + 2023-12-08T17:48:08.071Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/cached_qc_dataset.html + 2023-12-08T17:48:07.323Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/config_dataset.html + 2023-12-08T17:48:06.783Z + + + https://FlorianFuerrutter.github.io/genQC/examples/unitary_compilation.html + 2023-12-08T17:48:06.179Z + + + https://FlorianFuerrutter.github.io/genQC/examples/hello_circuit.html + 2023-12-08T17:48:05.251Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_srv.html + 2023-12-08T17:48:04.423Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_misc.html + 2023-12-08T17:48:03.819Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_compilation.html + 2023-12-08T17:48:03.263Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_gate_hist.html + 2023-12-08T17:48:04.111Z + + + https://FlorianFuerrutter.github.io/genQC/examples/editing_and_masking.html + 2023-12-08T17:48:04.839Z + + + https://FlorianFuerrutter.github.io/genQC/examples/dataset_and_finetune.html + 2023-12-08T17:48:05.767Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/dataset_helper.html + 2023-12-08T17:48:06.491Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/mixed_cached_qc_dataset.html + 2023-12-08T17:48:07.059Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/qc_dataset.html + 2023-12-08T17:48:07.599Z + + + https://FlorianFuerrutter.github.io/genQC/util.html + 2023-12-08T17:48:08.379Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler.html + 2023-12-08T17:48:08.907Z + + + https://FlorianFuerrutter.github.io/genQC/printing.html + 2023-12-08T17:48:09.483Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_metrics.html + 2023-12-08T17:48:10.039Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_evaluation.html + 2023-12-08T17:48:10.623Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_util.html + 2023-12-08T17:48:11.235Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline_special.html + 2023-12-08T17:48:11.807Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/pipeline.html + 2023-12-08T17:48:12.343Z + + + https://FlorianFuerrutter.github.io/genQC/models/layers.html + 2023-12-08T17:48:13.199Z + + + https://FlorianFuerrutter.github.io/genQC/models/unet_qc.html + 2023-12-08T17:48:13.767Z + + + https://FlorianFuerrutter.github.io/genQC/models/config_model.html + 2023-12-08T17:48:14.295Z + + diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..66ccc49 --- /dev/null +++ b/styles.css @@ -0,0 +1,37 @@ +.cell { + margin-bottom: 1rem; +} + +.cell > .sourceCode { + margin-bottom: 0; +} + +.cell-output > pre { + margin-bottom: 0; +} + +.cell-output > pre, .cell-output > .sourceCode > pre, .cell-output-stdout > pre { + margin-left: 0.8rem; + margin-top: 0; + background: none; + border-left: 2px solid lightsalmon; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.cell-output > .sourceCode { + border: none; +} + +.cell-output > .sourceCode { + background: none; + margin-top: 0; +} + +div.description { + padding-left: 2px; + padding-top: 5px; + font-style: italic; + font-size: 135%; + opacity: 70%; +} diff --git a/util.html b/util.html new file mode 100644 index 0000000..b3f2e1a --- /dev/null +++ b/util.html @@ -0,0 +1,956 @@ + + + + + + + + + +genQC - Util + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + + +
    + + + +
    + +
    +
    +

    Util

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

    Miscellaneous util code.

    +
    +

    Memory utils

    +
    +

    source

    +
    +

    MemoryCleaner

    +
    +
     MemoryCleaner ()
    +
    +

    CLass with static methods to clean (gpu) memory.

    +
    +
    +
    +

    Python utils

    +
    +

    source

    +
    +

    virtual

    +
    +
     virtual (f:<built-infunctioncallable>)
    +
    +

    Decorator to enfore subclass method implementations and raises error at method calls.

    +
    +
    class A():
    +    def p1(self, x): print("A p1", x)
    +    
    +    @virtual
    +    def p2(self, x): pass
    + 
    +class B(A):
    +    def p3(self, x): print("B p2", x)
    +    
    +b = B()
    +b.p1(1)
    +try:
    +    b.p2(1)
    +except BaseException as e:
    +    print("Exception that would be raised: ", e)
    +
    +
    A p1 1
    +Exception that would be raised:  Virtual method p2 needs to be implemented by subclass B.
    +
    +
    +
    +
    +
    +

    Torch utils

    +
    +

    source

    +
    +

    DataLoaders

    +
    +
     DataLoaders (*dls:list[torch.utils.data.dataloader.DataLoader])
    +
    +

    Combines train and valid DataLoader.

    +
    +

    source

    +
    +
    +

    infer_torch_device

    +
    +
     infer_torch_device ()
    +
    +
    +
    infer_torch_device()
    +
    +
    [INFO]: Cuda device has a capability of 8.6 (>= 8), allowing tf32 matmul.
    +
    +
    +
    device(type='cuda')
    +
    +
    +
    +

    source

    +
    +
    +

    number_of_paramters

    +
    +
     number_of_paramters (model:torch.nn.modules.module.Module)
    +
    +
    +

    source

    +
    +
    +

    scale_tensor

    +
    +
     scale_tensor (t:torch.Tensor)
    +
    +

    [-1,1] to [0,1]

    +
    +

    source

    +
    +
    +

    normalize_tensor

    +
    +
     normalize_tensor (t:torch.Tensor)
    +
    +

    [0,1] to [-1,1]

    +
    +
    +
    +

    Plot utils

    +
    +

    source

    +
    +

    saveSvg

    +
    +
     saveSvg (filename)
    +
    +
    +

    source

    +
    +
    +

    savePng

    +
    +
     savePng (filename)
    +
    +
    +

    source

    +
    +
    +

    savePdf

    +
    +
     savePdf (filename)
    +
    +
    +

    source

    +
    +
    +

    plot_image_grid

    +
    +
     plot_image_grid (imgs:Union[list,<built-infunctionarray>,torch.Tensor],
    +                  labels:list=None, labels_fs='medium', figsize=(16, 4),
    +                  cols=8, cmap='Greys', show_colorbar=False,
    +                  **imshow_kwargs)
    +
    +
    +
    n = 6
    +plot_image_grid(torch.randn((n,28,28,1)), [f"label {i}" for i in range(n)])
    +
    +

    +
    +
    +
    +

    source

    +
    +
    +

    latents_to_pil

    +
    +
     latents_to_pil (latents:torch.Tensor, channels=None)
    +
    + + +
    +
    + + Back to top
    + + +
    + + + + \ No newline at end of file diff --git a/util_files/figure-html/cell-15-output-1.png b/util_files/figure-html/cell-15-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..89279760bdee42f418ae97e00f46fcde6dc616f9 GIT binary patch literal 26947 zcmc(Ic~sNqwzjQpt+m$ETJ=~Q>V)C|)krKFz&Z~EYjHvuT1|qQAZkPiV{NO}Dk`%f z8fw*8D+UcJgwZ-6Q%DshMj2EzQ9%YHAToW=e$(D{&bQY6<6HNheqHOVb1Vo+e($^Y zv!7v~Jzu)d@B7{-@Ac@>qwm56bH3`)rVfDDH*S$BQWz%=>ngNmncJUl9J4s#{K13&uwT)mBXM5TCqiA4W7@C3j@$dwPnz;GYwk7V zb$9t4c>Deb9RIshPp?T=Kh`M>TOSt*9mVD6n`*9i8`r&&F`Iw*^Bc2f%}SA)OCwvx z^{D@B-Szz!4jw!h*|wzguv2&4xklG->D73qiK3e8jAgHzYyA|{0xp&wnX$%Pdc^wDDyV`Zw(g_|c9-#h!wm6Xj7E=RU}-lP7@;)F?QO6SnK_=5lQyBAiZtePyo zck#?n*N6`Nu)dduj`qzBYk77$_3qsZV*h&={aXq~9k?^<0B^0utnW^n-*fYBr?6LN zb6!2%Tb|;X<{J8OkDy-*3KlG0wCJ@t@}vI!yX&Iq^~HSpSwu%Ly~nw8=B#>fdFS)r zdksJDanil>!zo@=;{rWxp2``}6{R3GZ<-L0ZU7QhkCL^Tzw@Uod7mtfu z1M=SawnREsJz&SoO9LHzB%v*J=S(_9cXU9%nYJ0R<$FfV-nHuY@7_M+n-?K(I`c-s zoS>Vlx3s+wPFVWO4+AEwD5=NQzo(V@iNf|~l)cp$=`N8-zP^8HM|$ULoVK2#ff?JL ze)Z`;-hC^<-usi!(k@-y)4$tz{P^*=E?>U=nF*7fs^UVWz0(se`c$Pgq zHGKN1hRj&QPdJplaDfKA+qZAuM+MQNJ`

    (3i7r^ed74q+3CKh;-Yr$34W77b z?T$SJ>KVc#pKreZ?NFDnJJYw3ELwFMplXqbrmO&)RE0UBs=9Y-{id zeeRgG?P*N->!&BX5BI&4T;uLJp=(0=rb^B8d+GNogQ|~gNZm7|r(#U^^#Kk(6&gSN zrcv|vpC79XzP!Ee&NnD*rIE%D22Z*A!mJP2`Q8A{O5gC??|nS(>mxIQxSX^^pOC^& zxRUjHo@JkN%bj%z6IR+UUa;Wo&OU?gnv)~zlZ3dQ18r=?S9bSH|6u6!JGhemIAJZi zY1M-A^gj2iH;+Bjf5V0i2?q~0>bu)tHPz5LD?Tz~n&Pud$#w3lCsajthlkcgO_N;y zq4x?j#2K;|$K^)X?v!DdlFjt>&<1BJ=<#+Q`D)+1O;S_IIW(<%iM|nX&uaT`Bd;9M zxIZe9m;JWl%xi~k@2YH>uB59hvfus4YI=}0%{F)g!s3JrxV86o506;CXU`tIl>@@^ z^u06Q>UPCrr89eO-SxY1b{;9X*Idb+&)RXsx{9~sNpm;fpLyEjb+O^SdNG-PhzvtH^vfB~wEXca)rak>C)5uiSk&m(@4o;~qu&DuU_a|WGrwGy z_SRp2c*~LdKl(zS=3Nt3q#V>eDvT9+WNiM%(2g#{=MJ5|?Vt{g^HYUZYR(j`KEFO% z;(lcM7{$@qyNgUEa*kS#7Glhb z?5#Q({^aOx!8*~!u(qwn;QiC|=ayZRc@4^C!F?p zZ{Wmnitl^%%k-(m8`88L=zi7D=#{bg3+{}d`fa*p=hn`}52}tHHNQxOE~l1@^vX$! zVa_21A{-P=(~v}wC?}*jhVSK7;h)Fdcxzl+!{S8yNebMb;(Re~4!)-w_eI^>-qqe9 ztg)SyFdw7YAC?P!gJM1K- zFQexb4C<%YKxsb=kb4} zwXjATRCnjxF-fV?xi)D7YP`lXYx^0=u*i-r#*gj3y6PBf_AEh(5T=DRZ#16YP?nE> zGhLUqBDj2+J||Ni(7CZPv)Mnd<>q3C!pH_~b$7GDSGdm9UZ*;FvN&HF;GG*LGq@?u zvy_I+ur`e(+i+G{`?+51xT#_l7pP{7?$-GY9>!p0T1fdv4V6py-KS4~J?Hu6Uw`=S6UG1N3p+!ul$~5stO6$2 z7<0q3YCCa}Mkpq%R2PVVOEku;pj5G{zA~%W^vBWJnl?I8X<~!D!3~}Eu%zonVqSsi z`+hD5b+~L^oSi@XP+$U3)Y$pvW=nwjYm%Pcm_IyT_tSt0g4npY(TX%beWoZA4M+0A zq?=%)Z+eN&7cx)txHvH@bKek`uvJ{(3XOz1cjLtFFOSXZYs5kQimP0AwItoA{PfBt zT%}_(Zs2y^$M3#1<#FeWM}?yl=(U-m7bzCJnZziw*TI;Whl30E4|7hkYe)~Mb}^PH zo$oo8srU+kwCUko<5YSMM~~(fzp2mcKWI?Uy;O`m%e&gYd%I7O?eyuZaf&&jl7oEt z6rn)c)gd#YQsi@D!U143o*A2uN_ggv8r;y>6Lml;;}wSv{nJ>Ihx;s$KD^r77&mU|$THCjuj{gMb<6X6S)xxkqJ5HE&3=IGkHsB8 z>9~kj6!NHlPR5m$Rla+4`}3$Mela&XI$G0q zue!^WWH)*8Qm%LAwrE|p%p$1K?&5ITA1C?>JgBz(uzPp0YWe9EYB|sFJ*s=O4n|o6!af3V2ll?+Nm_nUZzZyCGVB(U!yl)lvzxgro#bvF@2O$ z;rH+K71YRbMW)b!sLzv(!KSYItOhTRtW<|7jH*~jgDcPQTIu%>w6~Zjvs@|n?CNOq zK62SN;je4+?a%q5-hch!-Hnp}y)PWC+DtY06xzMyr;qI(hUCSLT~b7!xMm@rAFl)M z@!~kH|6?Y%&mj9a9Zrg%|A!wwNZJ5gta)0MlO?%{PeO`!W^k(xvqVYW`C!O61wMkp zd`r6{ryWn&R)M+I`0{DleD1yUfFNC*QfaTyDW(;xX7Bz$Bj?F9VwKIbO&OW{c$hXd zZ8%fH{y-HWd6=DxRru62Mof2-(qz|$!G(CZwu-?VQ9-^m%(d}SPqkd_lapkpJH9Yh z(0}OA=Sim)#gEr$w?9vk@WdV%6udcOY;B87M|Tg4(P4BK#yW~u7~B9W5_EVG!Wt(f zFL?kbZHUv>jLdsZAuoT$WikEnWwmghIeX2|Gv6>yTyxQlTOHY*<2U*q%8MkT{rNQG z)oa%ZP3TU|`vk6?FJmPb$OIl3sg3wtt~e4`Af)4=_;A#`0+Z1%8Q+J#pP)m%7f3My z8taT{*B#67GOTr`WctcO^2+emO11r{M0@WTzJlv7-~`os8QL+Euj1|eD=f+x-1QqWLEl#pBNr4%OkUN30zotm)bywY(@{63W$uOK4-lSm)5~1~&lc z_$YJOp_rJF3QShGjBBsGXLOTKnadrsDDEKt)K@3ySO)%it0uiF9GhH_pS1#0-DFf|b8l1RA{6^7=d!o%e0H`2G52H-4Gx&3Rs(SAE;AL-?P$Q~&MtJX+OwZIExA z4nu*^(s-p`R#ij%N}p){>eWdS44)$vZ}%C9!daCQTC4(!W;c)zBFUTMO;Cm1Knz*d zGvM6$vdr4xJP0HL$>%$k0n-a`cSb2N^Av~*W5%fE0M4To_*=z8Hgf09@Q&I8x& zeL7g3ubX4pqi>kDy>6B9uxq3b7j#IB?t<7bq`#c6Jlo>ag17zMpJkEz0=DaY}5y!p1E#ygKrf})?xtC?J7gFnUx zwfycy|JrApPJ*G(6dsw8j!S3Hscz`TM!*K*Ae=XYH{A{@~xO@+;cCiTGsEn@Dnw7CSk0s7y6a)nFLo0df^4~Xt zJM>_PQ1{@+;GVp_=ZzdS3P0K$Yygj1USLYEj)>J^h@7OLiX@sYdm&Iw9ky`c zLbZDC-hrA^7|Vd{_Mcpmyd4-3RlDKre zS_f1Wdfj@8{f`_zTsOEdQ0;-K4p*r2q&cvp<9&Jn>!(VO_NV;usUx>;Iq*Rj7DE@ z@dY)0iZfwdJ4HZV=L#+^wOURE{@JFnkzE~VP}SM3O<+MZO%;)$YCGQb3vy4K1z{Q? z<6vd)!_xzcfFg(8mIgd`iqs#OVQ};~HZMw0m>WP)^FmV+UMfbSD-kPB}4|BmU#(9g_V+oJJ}D zgo;!PV{P$rc&?>|v15x(x$X7RoN8P$p$A~Ev7^JH*VwH(`?FZ(68^ftgwn0?%-nWL zveBS^p0t6mx}A6Cc?o8;QJ4qBB5ptx&sY)J-KjBVY&j;`YA$`A^i-WyAHxSD?426_ zp}s^}Q!WO-qA_O6(j;J7AB5xqo)-hpaW$t_U-(VJOCG~X!(A$(@lErz{ER~KPTx-+ z4K4%|@u}k0t!2jdhkX7e7nGS)_cGrmpg`32;;}|6v#9=TgM>yExX`GM9lLh#4xP8P zlLy)~{9fu%=a6Mxq5A3PKsy)@$wA(rRaSLA-0OfTDMc=40~GZF9m=PG^Yx`3=mdm0 z8JInK^e8JT&ZCT1`ngV2BurXUBxQE!59I}aiNWk zA>Rz3dgI67P_0FeTBY%2ozVk5W)LS0-KN0QbbYwKu~un$%xXb%t)V!-SepAXr4nFs zOHQ)6O8eD`ML7TcWyyVlOA~v2FytWrz%XY48=ni)xF}_dxPXEQQRYJ&PH6k{bWCER zM&91cEj7Eus<5^fg(~nP_z7zs>yxWFG2-yj^{SvM+5E0{s1e3sb)v2WgMqLtD=5H< zdX@TUxsgyvjdm=mLcAnfA7$%)c$@;bphyJRr)k4y=FM?#dlZX1s&H-{ho>5d&voSo z)WE0(M43Ia)X4b(&ZDrXvzin!^4c zeFWUt(Pk;O^(#HBDNJ%aEy?X{Sz~bHCryp!fBKJue3Wq^4JP^p+g~+)V~m@y(w&R3 zK87z49QPX?3jRlEDdFe~Ob@T^)ht}FV6$%7sjtQuvs zh5SW??8T!kI=ljVPQDgS7&>cD8!kZ#+vTXsgT+%Qk>)2B~08>(}2P_f0~_;s3vfI(4y-ds+f zzPA(gc>aKGe)36cxCS@Ssxdm?Edt>qY#Q2(p}OP`^-ktCGw280XRn57py7;Hm`Sie1s)e~BX5xY+`UsCV~xQsV?`o-(5aI52H8)v(m?BP{GyDO zKt2IG(<^KHbIc`ofaWp#3TTisx*h&}DKKGAkqErj=D@)a3-(IB^6)?}otMoM|Lo_? zU$}5fjxUHTp|taLAnw8vXY(>n+V3rtTx{N9SuRe-|xscD(&1&6;F~1 zrDyU85T|%)zv7}k0-lZIME?_-N>|$#w;pel!)9lGFRdg(Izywfpyb7y?r`Sf+IXi5s=%K@8|&~ zQkdp{k82d@mEK%Ks&5cJd3hoZ-<8zr%)rID`RJj-w2imNqqjJ2ytRM}aTbr{p9_~P z3DTXHn%#}J&a7F<-8;x3LC4YaYLYg9y3(8iTP%TQVyE!V+U{gKk>%MC`a%xw#~P{nZdp$in-PF?0Z-9)H#!1!gGb#eH|j^pTmcNrV( z#Hv9)!C!Epn&PIdPDSZa%dK?JIW2Y3;L@zBRxx-NFL}qwJc$crC!@oSo*jLzw|x zz4T4(kc$gMxDT3BU@gTeM%pNoA1`*uVPNui5S?j%0Jz+X@JFS5Q9T^+f{UA#5GD5{ z$hYycP0Zd*VNxS<)P7Te()WbNa!@lL4VJk``62e21l}lFm3DOMaJx| z*R|@_y-`u|ItZ7e6oe&+-&V^>k0KZXhJXg}u9oyXttjOFj$Q&*_8#dJE4jeOP5T6e zg@qcp8R8{8*YAJ$;VpyPjT<*KPJz$jBy4Ord-gMf8y#3lZkx%*IOOxqGr3jOAZFXV zyyvmP2o76xccOA#D~361`2^RGK?XRN5irK7bR8Kj{}S3-k!su1n<(GuxM7$f`Z>Qm zD4DnKpCc3~u!X7x(IWvEQ06riM3 z-S{28MQ;K8(`>kN_NYV|^32ZQcKyKcM4fj~<(NMi9cPJYh7v@db7)JP4#J2RN4N_j z8}Qz+j+bRiyc^7(9w-99;ak?6STw-k26{Gu0ERAR%wmD{xM7Bl5#KZ;ZBcTHOFk6tZ-0|QgJcI#X&&O)N@qW?XC6q2#QtuiYpG0Ly9 zImH6xh#^ttlSW-7xLlM9`leX5;>>FN?3F%YO>+%y7#-tukkf@6n!UkwhR%C^MZD85 zr#U5B>DNajf+iDh?Lb;}OIVjK%&=Km`(UEy%kFv?TU(;}UCO2Vg6kF8hSzzWEecFv zJ3!eL<%gHr zAL|T0Y4!QdIn@}~#uMLBKsZ_>YccwHbBNSt z-!`~GJ&I=}QD#tsy&|YO9D^x6JtrTt1nHTz&AvS`9`#zkU*fWO*)0Y25N11 z_{(V4{fNNRRt0o-b!tv|XI+#)C&oxVd4p*C%O^{ToSV;u!{wlr&Hzj2&ZYZ{-nT@R zyFE;8ZQ{?&Mz_n12YWl;NR`l->@zarMS!Mv0h$$g(V zF5)tt9&9MyX!*CFIBvuxv7fji<&ao~g9q$1tT81XdA@k`gM$Buo~eQC7D&Zn$~X(F3qgkOub*DFutUu#p@WtDpoHnSk_} z_(J96!Jz^PXeNw@D=$clBzu&WVCEKSoVM2;lKk?^FM^t!mW?3iPZ$5_H?%RuTj@7U zBudSF{o7w~5x2se1pK%d*W${AWxsxE(-1fpKT;?qgj@kiRQ|$8BpM#pxI@A-JOQ81 z21MQ{t;+;uO`+7w1=p3>hONZuM)~pm%T!Tf6{ag~=Dj8_bBMAx*lc{*;JIV@Fv|!a zmHg8fZ0JoTYlisl`BM@QGWeu_Id)7ah1`d}J2b}}pm#oJ4t~Kq{lcYx<2Eop_}MxP zz-PrOn&tB?p%6Y~^+$9at#*G8B81uJ+p!feWJm^1T0L5U#}HaoTAu3bpm_Bv*f@I3 zm_l24SeTBSV8=P~`IcE+NDOLu!bH!JjHR-2cBoZe#DMy8aXb?FK-a=pOhaG+)?NRA zctl$dA2aBBP=|OL3S68*6ZK=TU|V#{jxYGo*wLICscWpI0Y3FcUSy;Z)|4-RhN#R- zB3?b{Wf0o|K?ephc;t8H4$&aInrGw^pRbH~y@B}ZYmOdZLxi9NQh`bU%U)E^pF03hfkBGgT+xVAC{(1&Bnf^1{?2hy|`EeeI5;2M(dIrpnznT3unAT*W1}PsHy3zFu4UJ(Yo&i6ahF;y+ zcr!Dalr;A@G*y? zw}VI(#&Z1Jjja7Pb-0(55L&R&H(ZnQw-~&Gw4xUsyxYxYV1mbDkTPGex)3FA2#dZE z_=hV#>iOJ3_Fj$q1ccf6q((^@V;WH<%B^jnQnV~()lx3N$e-Fh_~HUKQZYmycktk+ z3OuDEHncT$MCig==RljlKN=V;t%E z6BK`Z86J!ySKwF%aKw4sNma;$fg5UkQRenqBGBx8bL)~e5ahHU#SR$Ipn!;fLwj>W zwJ#CHaZJzRtiAfKegT*8#LFi)W<&B2;t+w(Bju^a$$e4WxDkq)>jxmw0II06lg-kv z&VK!c!L8Pin#fX5|VE8|lIm@%y=6UGGmo%E2>C1~0>Luek`0@EQu2{>?_65m$V z9HDH;L5;As(T_g*h#Ie-QtA$tUl_}D?UoqX%X&_nu zOhD78!I+?# z%pvEegt6$<1Z~HUFLEpcjvi;D_uB+R5jvBHTpl&V3B4&Wm+UQCI5=rgy6)TkdZlqH z4S~wgcQ|SI0N{lf!q6Y#axr1GLdHk|uq{fM_!N~W6wV9(UB1bfqQjzKODiVq~XQ1;{u!m*Cm!J|2r zo&x$y8<%6_5|$y!KQP=ufgW67f?NfC5r#7W{8*rxMO?^rmVJVC`TL?7h-D@c)Xz-O zZ#3t_X!ofCX4s;9OO9MVX6#tt2yGUVO<{S+6otGf91B{D!B~f!moXAk=@C>K+|*(f z>Dr7Y!?ApvWJh%u_$^k43N#+Z6gU(HE?BrQT1Om+2fNZZ{;_<(9>7l-xdl`IW%n$D1~XDKMd`d;1_a1n?^HtnG`-?gIiw5 zi@g#hY_oXh#TWxK;H6kuPa2z2y2CtVy=g|je2{ZiMGbZmI_1UI^1qbf;X>Gx)IrW1 zSv^!R@n?mUKy-llhQ*64~B}@Z)Q@J{EWY_!`_8BL`Xu6JTIHm^m*_4n}jd z^!ypy>u}{Spt=}*BPS_HB{0#niK*^@ScOUhMmDd;GstjejX4Q))Cv@a>p$$=DZI;S zcHxtxKcwMzb3%iRSFc_z$S;9hDAmB_5DmR=AnT4radspCJ=dxZO%J3BVp*!^IOsEP z!4P6_Bf^WHCenc`sVXCw=a1%wcDFvRmwsl7RKi3^8*s(D(Ol`ern7-N5g2?SswSq%Oh zZW$#&vu;hBZ2p`%5J;)j!3#b@LA6o^9tfo#sH+m zOm)UN4D-QcV&fcgUINoDmHc`DA-sg-rVVAPLKVnH&0yDvY_ST*z1RdFY36eSjoxhy z7#Sxh@T-dOsA-^K+`CnD4Y6vNCun}d-mXt77>KS2~?cl7l;vYL*(lCx2+_Iie>H6G#{3 z)=UAb$7L+u)~y;GtxT$O#xU}45n)UJ24@%6Fnj9Vq4SCw4_o>H*B#W6M+}oP{Ae(m z>B}$=k5xd7){5Ti*DsOp=C)75P&`PW4AD<}_r~(^#vxKh<8v=$j!gq-S-I8!h^8+r zss(OqgM|``hf5aSa!`~sA%8IB^G_874)ZNW&+J@)LDFD4k4*_Q))vp2%*cmJ6pXu z2#d_+hPKwnNBM2icPix#A$O!c?}1L$fiT3WQp$qs9cIs(C8!Cnf9%9{Hh-pXGg@X$ zwm8pj;Ck zMY>Onw^BSkxYGiv;&kA;okwXS+|jEN_{)|tU<^fD5Y+_2UDbkk&N|GBhb|`DI@PY2%6DH2^^MBFtK6NgG zn?vraUnHOxT&!d=PA3?0Sca_F=lBZDwRz^r)C(#^Hfo=Ut z4ngN8r-`kzvo{VSIFgn0zJ`NyKd4*c+Bw=PGL+#W3(|rb=!A^|$ZgptfFzbj{!0{C zZK3q=Avw}Fenm{7@Pte%R>4dAB^R-;I6iVf5_csJV2rG_D-%D|%g*BPfyY~UsBM3M zKB?m8FM1kBj~$yOf)$nATt(1D3r$RQy9I^BnBtoUXeRw4dgNR$j(ni()KjW{~qzAe0J(Poo3^lo}ULx`(>%TsNl zoGt@M@dpr;bY~IQz%VnE2csJPj-A~?*0TAF7X2haJE=)JMgA9~Rtk7{-2>XQmvwAc z`uW3fwNmW`<1Go_$m5J}y!;kEWu>VItYF-Rvp z(e7#Q`-N@sdn7R%r)9-i6>f4+CLvG&xi*M&42q6JxAES70!1#znqwLGIbj*-Z7>|5MqX5h!kwg36z7-F!6E;*Kh190Aj}(v zIc=ST&U6TcR4bY;HSLoCYeMX-K>I_jApyfHCuBKS9=LxRCyV^uJj0v#q0*e>>zH1I zWdJak%JcBsz=AQ8(3Fpc4xL0=9Z=JOwWfBjkn%#S@#4T*Q436L1JtH64y@pmGCq@nyJ_ zA(3mI;)U$;bp>e{7IpRN93lyHB^tqvZiR>5G0iO1Kw!X{-5H4j%9eBpirF3ERy?>zqaYN;T2?o zEaaVh!Rz1X;`*|pmby361hs9I3i-~RJ7HM_?*Q`)Od^|gA5&a{yhQmHO9X%&ZIm$)b&8!Hux%Os$Rrp%qz_D;1XCZ zN7|v-*4B0&*Urw)N?R-FgtFuX0=QYg4alo7nipgiBrPQ1kl%ol3=_tsZ{N@irdcXG zc?Y})OPI5T*ml+!3~tc$W0|l+b+@MT{e3pm+_`M3BCaJ3Or^oiQ}d+rHFAvwjGiP$ z(Qh>Ju`yO(ujdkKg9bM;ntSGiT#ziH*a@0(rf4HL-_uz`_2+V^K7;?d0T#pZH7u-F zWgArj93%X&*1X3=stPzy(6={LPA7xF6pyM@Bz@I#Hq8Tj6{{HTQwA}m7UVu3HmNBv z+5wAJR}-&Q;}l7n0J^}`Tj7c=Yn0*>Pyvky)m(3mV2UXS8e0X~6KrAZRm;f(YqWZA ztIwDt^d)t8Hi?YEt8p6iF|uur9^iw7X`}*gtGlz5cs}dd#6hfJ9Vc**3@*RR}qbR=`sOHwx4cf6TETAm8Mg7=Ip(%+$OBtaLat>6q=q?Me5har2OpC+v^}8GThmq%0{d5WxCGfo z6tI0BDz`0ek3!wI;PMvRQih;PoXT`{jEh81#+g_DUJ^7USe?U51+AMTEbZJq_+PKx zkpEd02sozrBJFpO4^j*h_Wo*8c}BzUZdC%v zn{PqrNBF84Sh2|PE7>rBh7eo8vnnkV!GfWYF|`_=bp3)AxiCaBqbwr4(K-}0Q_?9A z*cxLV@ENc6K3GTm8pfHycO4(qD)pq680;b?dF<(}Q?X)IPH1Zpo4h>9AVzAi5inFx zhQEtuhVJ#EdJs|UM03MLz#eDfY^9!j!JxbWZH1Q0eH;pyA$G%!Uv`RB0Z28m|m2lui%7^!q0@pt6kFMwFWVS)#Roos}kC!x4!Ku+{E~k=M?}M`2z!Hsl{!d&_o^O*LSLA z=;C2Y460)|)vF(PDv*#I0b2boXq3ZOkaTcRux!tW5x-B4ZWvZ(30qG#nkJXBrPtFF z&0ax`_rEZRk4z67?*Yy+hvQd@zZf=fN@m_O#M(Prm9-liLTY6$uVIlXVri)+mj)(u zB4h-%$Z@AxmMAw8d0rz^*UD_~Yt>UZ6FfDz`QlAPK4Q{?9W^kgR;Dz2_RP`0W$Sk6 zPbC1APlHMQN3n{5u&Y0QsQFKYDgTu@yzoa!*g0|@z}r*Uyqb)9Eb!Ey1rjPmBE(D& z>hM@NLKSLhrij9yB-9H%kg_$x4RMVVbB5eqXjmG%H5XGP*cJeJ3651ES*MI~V3w`s zX%$VTRHEWo6bu@!t_1hsG0XsMofyM?xUen+MY zCLkNKF9t5nV6gqQ7vfO&GN=s;yms{}9JW(8#87$-h5j9$K?aHI!TjOjqpjXzOPeF}QbW8o zTOPF?CO@XSbqyI;A$6gIWlIK5Tm=gs4Pb5X+cL;SbK@;e3^VJ4oCZ@H)QXFeDM})L zB!KN$1?bjd6Fxk&M}r2w%LEFGV_%`a_N zByKqdR{NafH}u-;79+;77#+ZnHwVJ^9PSe5<~RxK;}zh3)ksX-ee`UTnL%_yjzo3A zIzZaF%p~^{Fz?3k6DMG66GM8I%-cW2PC-`k{Ls7%#QgU<3(ZEK6k;`;Wo?hwA^L%s-~>#PkCN;NzM_fh<613; z%_SvFLPXGfF;`jh6wehNdkhXV0i?uIB9rXO-VM_bVz)ktA z2US2IeSX&wjb^BBP#Xtz zz=$l%<;#q!ISCKFvw%?`sR3=jgG8Qn=r@%uam8Ejx|wE5YBTiTnfISsd-UI|R+@Cn zMoFnE|GVc4<1n?Z$qmz51xpgSL=cSNR!Y49s>yhZ?j8mfwVcFKqCpC5M~}vE-=Hf= zp$S9&**D)wlBNaND^Ras)?0dPp4Cnb7w$gEZ3Uum6T%&GFMSCEM3jr6BT=6O5As@==gF}L`0^QN zF-c97!crhkRZOWFwVWx(IOWB($wAYk><6i63=20gMsW77_hGz0bm$2(NQ(z{=G`u! zs!Y!QkUR&94Jnh4`aR!x^Y|XIZ9jdhxy?yt*aPyoPy~+$?L&y+L--?n7EdfA$%6^B zQsF*|x{}7oj7Mum-f0QnlQZcqK+_V;lm} z;lI%|BN8Lk8dmrd-lRLehdZ@DF;v$OHc9@Y;(h( zDxbY~=4j-*Qp_1sIWUa|1`Z|%HykjPC?cfXMzmDaIwQ!%R0pw&MQ#aI(dGr>h7h@x z+@Yk+TJlKjIdFhn*ps z#OnQK?eEqxuKG}$@=DIjoA6mx95Z8mh@%JDaCv%X=hPbSv4{lXHHSR&tjWpCVq|FN zw`L1PL=A3Rwrl~J(Ti8B!~6n>PL`n>?aCaW0Yx%4CRQ>H`H>rw*u2U?=81#5^%sP3aL+KxDf@ zLVb_os&R>L$jFr z!1f%_svk!WBAI|R*CR0^8EEhI42%RJqF&XX-i zmhftYph<}xW%M5nhr0etcq0@{2q2|2$}ha?+`8ScFiaQaCYPbGSTnD|^%F`;Sg3$V zToZv>+4BnqFAh_vwcTCqKnjqf9*KiXPq8YQeZ)`IyT5G#8hNFo2dSJjo_(ARuc>BY zFTw?JBFnHqfp0~5$Y3unh1BIxOxnLgK08{6B{!IYC;N$LUy1b`Qa2$K z=uMWV{M*9OB+~+wLLIdDv%L-sahjfYYFp1kL zt74zm@In*gr?J719P*fsi@lCK^it(DX`v=z5<5NP653wLxi;U z5t{JFDF}etf;e+513@v7?V`$;>Vn~dx0)O=1#P7b9Ki>mEgZlWALK}9a$()UiAfWP zR*+PWA$$>*!rYYBPq7>cau)w)_EBT@RLkiMD=19I)(!31yBB6J;&b^T?^>{gx4<|k z$5D_OJRio*DVEAs`1+=K_?)x~?|Cy$;GX084aqT_g_MEcdHA7c4OAH~4%S<)vg*UQ zUsE2_asZ5a;A$Sp>^EDzz6{1N$_TeC3rN!Ui7X<9%rcl;vqXy!s^kNEplxod&PIGoCMMgPDjNiI#hnEFD*UZcUkMzmDTvFSkT0M`L zeIi&!mT2M{t;;kHBzvVKqO*CW@%?{(Hj`!zVmT-D-0>}l7+<~YQprRoC*$AK!~ShA z4lQ}R-y1aGI0d?GF+Cz>dK#f4RdCZo4e-Z7J}Ra+2h7@XE^1AjRn1kk_LWc^!`(21kUW zyUAa;l%6PLS$!hrSuijwsG()wBkMUQmYyP7*z?s{>npTixoS~9CkVJ)tfB<03dO>@ zzzMEk1e9rvWPS{a?pqLqhL{2~ttXcdIyGZh>cOgwRqWfZrAVVShdz~9Es=;h)JO|L zCbke{4hp08A#KTO8gdUB!k?ZGEEe=&O$JR;?8RZ$KR>+^12pdm!7dhxPtAVu6M4jh zWpMu++{m~DlF!`c+4Af*mP#>Li_JHJSItz=;f!w}%5}0O+{DY9rk6d8o#r7;2g&GK}Qb?Gcv*huO0+u=UUNra@>R=w5D0;<`$>J zzC02>w&?Yj(zvu(5WOdP=bbxu-p{K#v3OA1CzL_Z!L)_7cP)R+?uQ3811r>ySjFg5 z>@s?V{uXE~3CcsUq#Rtznsj#()4*e_hU`ZC7@ryOu@DTl<(nlb0oA$IfD0QlP$1Do zhAvUI&Y&sWIxdqJq3}u7C8=wjHoc`H2p(jTFp0My!yWFQX$q$nf(hFK2)d)h!qb-(!9Poo3hq1hKoJ|AA_5cQA&LMAjjxWLmW$(6iXhM#P{=Z zp_a9MLK{(xWC|}S0U#fvXl&eUd`TX8rGAgxlbOt2Pm!)K%;P!^9NeaL<>?<3huzH^}uUI-2a_oG@9v>F+AV7^xa%)XlyTTvG zuM`krhzsMx<mRIkb3EWg(YE)jMPZl z<3rFG&wlg0B$r~G<&IgRc#t3Lr@|$F!Rv}ufmNW5<5@Qv(?wU4i zn8k}Dsu5cVGucKR1!75H&B!RCqTmp0Q-vZJWbkxCE39!fdo+{d`j`;3lytPDnrJ5h^AxZu>=UfjK|(pN`5Qm5rbnN+qDo(E3_ru z9sG2{pAt7Bu^MWL5|&59ebkDcVPe7OK<+rU?I1X!TqI&E+$gU}_H#&YIKk??8Z6hS z@$3cC4}vM}d?NFqH6PduK~U;cb`(_jX^?|GjmNmf75#%F@+fS8NFfMe$itGVFbkhq znrS^HxG9Qv(n2BZ(t&fE^EjMRY>@34u_3K$s^}MdAf0S(`O-+XjfA#4p!b>MD3yYZ zKh0GQA>}G^KN>g?_5wT)wfo=Ht^P^Jm0GCk>)*dqw}uj3 z#FU%!BIMBMVP*C_w>#tCXo+Le`RcA0EZdFaCMfYMA3x2^rA8%c=!9q?< z1fun;!MW*#%|+wAGR~5YiItz2be>r^CJvq=Sg^~t8XsL)6oE()_yA24+b>E-&!(Y? zlwRzb8B4x+s!1@=?ixMQlwK>-{dT?)NmfA^vcXe9=M=A`pg5 z-&Wx0fn_n)#Q@BY1Q}L75m2^9*RkOT~=gwmsNrw+AddLNJFLqTRYKc`ud43ZYZ-gPV~wEaV^~$q#{qA z2}m#6O6`GGg(Qy#M@e8lk{0O_WYHeLHru-WzjonNB`?9`D70V%#m~&cu2b{iLIk)c zDA-~O>xPcIxBi^}QhH+OMfa#pk`JI64(yBu3SAmS*zON5eBJVV0?WPTrxBtpz$y!u zWt21*B1SS8%)2a1C)8k@&k1F zVX!hD!$`NYD)c(m8(5uqO2ogVezN*~tl0@#b2V#r`0hrw`*QGLJH~-n z`E|BQmu|C&EGTWozFk;#1Twh(*%Ugl#)+%XFW`b+3d~9N8;Z`l+bRHn#lV6gS|Mt6 zu2IO5RtsPaHZ643pR*zFEApBdqTguWA2Yt70Tx@mx?bXI7;q*j$fe4b&cuRbBVCp< zOxDG{9z<+bKBwKawv#6DxsxYPMzLW%mg*^kRS0Bka}%&_1HkcKY#9tF%Aaw-3Z%-$ zumDhlYB{MgR(q1NHVqdRi^H>n&q;=bJQ+c@vPHBEF-W)Ur29~72!YvbY2PKTYxR*# z+b)#;$KvxWnJ*6Jq+t#IEGEu_1Tp38YCi1YY$%~^8^{KR(!Sr|)Fp8!ZyD3|j&l+Ux81t!&io!H4U?9zsGWtnzDqotjnKmj18-n%W zN#?2@e}{ZL3;*XG_w~d6Yi;&@{ok?-_+J;7wsiNH6jpj@&S&Kjw0L;oT=zNZSzmwm Fe*ksA*Uta| literal 0 HcmV?d00001

    + + +
+ + +