From 8bcab33e0673753657259e0abf2a74a3dca68f26 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:46:35 +0000 Subject: [PATCH] deploy: 3e47ff7f87bb1ef339f1190d29dc9cc72855340b --- .nojekyll | 0 RELEASES.html | 974 ++++++++ assets/logo.png | Bin 0 -> 36089 bytes config_loader.html | 1063 +++++++++ dataset/cached_qc_dataset.html | 939 ++++++++ dataset/config_dataset.html | 947 ++++++++ dataset/dataset_helper.html | 1055 +++++++++ dataset/mixed_cached_qc_dataset.html | 955 ++++++++ dataset/qc_dataset.html | 1001 ++++++++ .../figure-html/cell-17-output-1.png | Bin 0 -> 62636 bytes .../figure-html/cell-12-output-2.png | Bin 0 -> 8375 bytes .../figure-html/cell-13-output-2.png | Bin 0 -> 15884 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 48520 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 -> 13359 bytes .../figure-html/cell-24-output-1.png | Bin 0 -> 20149 bytes .../figure-html/cell-7-output-2.png | Bin 0 -> 8375 bytes .../figure-html/cell-12-output-1.png | Bin 0 -> 32952 bytes .../figure-html/cell-14-output-1.png | Bin 0 -> 32220 bytes .../figure-html/cell-16-output-1.png | Bin 0 -> 30256 bytes .../figure-html/cell-17-output-1.png | Bin 0 -> 7257 bytes .../figure-html/cell-20-output-1.png | Bin 0 -> 29164 bytes .../figure-html/cell-20-output-2.png | Bin 0 -> 21057 bytes .../figure-html/cell-20-output-3.png | Bin 0 -> 19525 bytes .../figure-html/cell-20-output-4.png | Bin 0 -> 21225 bytes .../figure-html/cell-20-output-5.png | Bin 0 -> 28380 bytes .../figure-html/cell-15-output-2.png | Bin 0 -> 22124 bytes .../figure-html/cell-18-output-1.png | Bin 0 -> 17227 bytes .../figure-html/cell-21-output-52.png | Bin 0 -> 60800 bytes examples/dataset_and_finetune.html | 1577 +++++++++++++ examples/editing_and_masking.html | 1298 ++++++++++ examples/hello_circuit.html | 1121 +++++++++ examples/unitary_compilation.html | 1254 ++++++++++ index.html | 1099 +++++++++ index_files/figure-html/cell-3-output-2.png | Bin 0 -> 12490 bytes inference/infer_compilation.html | 1194 ++++++++++ inference/infer_gate_hist.html | 952 ++++++++ inference/infer_misc.html | 958 ++++++++ inference/infer_srv.html | 1138 +++++++++ metrics.html | 1012 ++++++++ models/config_model.html | 944 ++++++++ models/frozen_open_clip.html | 1118 +++++++++ models/layers.html | 1120 +++++++++ ...1-a31f2432-fbf6-4ef8-b023-91ea2bfb84ca.png | Bin 0 -> 47605 bytes models/transformers.html | 979 ++++++++ models/unet_qc.html | 1031 ++++++++ models/unitary_encoder.html | 955 ++++++++ pipeline/diffusion_pipeline.html | 941 ++++++++ pipeline/diffusion_pipeline_special.html | 961 ++++++++ pipeline/pipeline.html | 959 ++++++++ platform/qcircuit_dataset_construction.html | 1178 ++++++++++ .../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 | 970 ++++++++ platform/qcircuit_metrics.html | 988 ++++++++ platform/qcircuit_util.html | 998 ++++++++ platform/simulation/qcircuit_sim.html | 1203 ++++++++++ .../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 | 1130 +++++++++ robots.txt | 1 + scheduler/scheduler.html | 938 ++++++++ scheduler/scheduler_ddim.html | 952 ++++++++ scheduler/scheduler_ddpm.html | 952 ++++++++ search.json | 1247 ++++++++++ site_libs/bootstrap/bootstrap-icons.css | 2078 +++++++++++++++++ site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 176200 bytes site_libs/bootstrap/bootstrap.min.css | 12 + 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 | 899 +++++++ 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 | 289 +++ site_libs/quarto-search/autocomplete.umd.js | 3 + site_libs/quarto-search/fuse.min.js | 9 + site_libs/quarto-search/quarto-search.js | 1286 ++++++++++ sitemap.xml | 147 ++ styles.css | 37 + util.html | 1143 +++++++++ util_files/figure-html/cell-15-output-1.png | Bin 0 -> 26947 bytes 87 files changed, 44247 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-2.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-18-output-1.png create mode 100644 examples/3_dataset_and_fineTune_files/figure-html/cell-21-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..62e3de9 --- /dev/null +++ b/RELEASES.html @@ -0,0 +1,974 @@ + + + + + + + + + +genQC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ + + + +
+

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 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 V5OZsotc3so002ovPDHLkV1iZ)*2e$< literal 0 HcmV?d00001 diff --git a/config_loader.html b/config_loader.html new file mode 100644 index 0000000..75835d7 --- /dev/null +++ b/config_loader.html @@ -0,0 +1,1063 @@ + + + + + + + + + +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..bff39ed --- /dev/null +++ b/dataset/cached_qc_dataset.html @@ -0,0 +1,939 @@ + + + + + + + + + +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..f9c1d7e --- /dev/null +++ b/dataset/config_dataset.html @@ -0,0 +1,947 @@ + + + + + + + + + +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..463ea51 --- /dev/null +++ b/dataset/dataset_helper.html @@ -0,0 +1,1055 @@ + + + + + + + + + +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..00c7c41 --- /dev/null +++ b/dataset/mixed_cached_qc_dataset.html @@ -0,0 +1,955 @@ + + + + + + + + + +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..4645b90 --- /dev/null +++ b/dataset/qc_dataset.html @@ -0,0 +1,1001 @@ + + + + + + + + + +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..b56e6e93d71e27096544c06966cfa8b6f6b6f280 GIT binary patch literal 62636 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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..1cab373a62b30ee9769cb2ce357e0bea509ee165 GIT binary patch literal 48520 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𝔣0(p%%HKE|)3basrS?{g5! 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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..3511e5ba639f1ab595f364fc5b65f0bbe2dabae5 GIT binary patch literal 13359 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 Z9{QXvwO$yz6-r4O?7pUAp1j4g{|1pWXkGvS 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..c4d3d25ef82155a943292322b0921ed4e2c4532b GIT binary patch literal 20149 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 aC5^eVKFmWay%LC!Qz5u`IG61WO8FOzGT4Fu literal 0 HcmV?d00001 diff --git a/examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png b/examples/1_editing_and_masking_files/figure-html/cell-7-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd12c96a60290b55d0c0eebc0ff32ab6da8d5e9 GIT binary patch literal 8375 zcmds-cTm&YqVI#EfHVQ6NQr_}DFV`)g(_X$^cq5w-b-kLLfG`)gMfkvNR<{Klu)D> zrAP@KB=i<~-jDO{+`ISOd*0dS%y~0!-XEDjX3Z}@erv67`7FY*OfR zFU~K-d)LO@-Pui2K)~TY2k<+&S_|Agy+8vOA#qmLcLRYa%`aaBpX3T`L7=<$Rpg(% z^3L3t4%GUNYuwsdxx#bz<~93K!m~F)REtVHEwKq4EqPhqQPl`hk&>VL(OJG*e0dw? zjz6KpsdX#gW1TgeioG^dHDEAbsg!3l36q5B7vlHSxk~tyRia*qaM06@-)Fpcb~Be0 zh97_ZfnUyZ0_@k+z#<&Uh5?^OhZbPYH@#4Hd%le(^73T2X*LMt<@29X(NN`aLs%h? z6x8G+^Wov}p<9Afg6XUrtcowu@@SjiQ{nXL|9=b;Wn*3TM7oGGL9MN6z+g=)D-NXB zmX(=V5VMr0S>=Sd_qJJ8=dHNAXa!i1vz>#3<@w1$tr7onf0n9=2}@R17L&Mhkg#>X z^TnAD==X?-JgHA`!uI6@-^L*pR--9LF)@svutq_G4D4{bi!CNLGn1@&Ax5tMDy8&e zBO|7^wzmEK{n+?;>ZNdn`&!A-<8)2i*FF~&6@L0O3&Whwi1b86MEGoc9n-6K=XPp3 zwz|b}E3U9&U820YTJ-hn*UFlj*7%F_fHD2AuWy4C6cqBB@S}!K<+dXn@d*iOa)Gj@ zXY+JE_;XyFY$cqqzk;gh%NHvs^lgb@O?+bFqF2`2w}fWy=#!HZE&+kgU+yoAjr(3| z$|yX0b`>|}M#;v;MwMnP&oNNJd5Fbg34lRhH|By7lE~=s%VA1NM5Rq9JQ1{fSMIX0 zg-kjkqgJv55t@M~BXf)f@>i@T;8`*-+MxCbx>MuL9d8?ZdqPE};_B+;Nhj3#^JY+Y zcXwBJ_xw9L6Jj0+J3D)=(U+hanl$cpPpQ7Xz9$ZL6L4}eGSEYD@l`J$b#-#bnvBIo zXfnUC@6su!M&|4cY^%}g{Ort6BU7B}J1>7qM09lY`|8_qJNlv!Ph{5SrlWy@0oQ{E zj9-h3iXs|exGP$Edhk9gWJNI&nc=gyY+Q-@{{58(LYiTpmsO~`@GMeK6k<2_-R$_V*Z`bB;|;?x=HH=^7X)c>g{q zGn47Ls_M7yZb)CcNb}be-QH}uYy<*fcjyJIkryvtvI*A137adZdb+ya=j6O0XB52& ztUMS@s<5z-Nzxr&UoWYVC3($=vHbP}og*2X$2^)ur&y0FZbAXN%j@5Mp?7k6s-mLO zVpTabHl_rD%qLm?_S?FFGEbp&Yo(=LQ!$u zH8EMhwBPh%H$}V07Y5_z;<_s%lcfaqPt3`=$3#IyO3OQoL*Zov1(RjGZwn4bo`p+$ zuG2ejyi^HFOuV&*#p>5O-@{FNfiJI7w^2R$sifq$X8HVkJx!7lh#l7JW%d(7ukGyE zB;w(Owu&qUYM0v487a-l!8$6)76a&qrR)2l?*Co$N9u4RKMOeuCy8ZmZ!nfXDC~k9_jEtNo}OS%M58WZXSGhK7fO zdzNx5D&m24m7bnnHer8@mR1pFL`4$(k*(Tpj6YL@^Y-oAuYUV2E;G~5GOcay{ijdF zF`aGk?5fHtD&g}VSgCn?6pMk~ke+^Lcw}S(6^O!k=#&^-d#tTJl(c0WZDMQ7?Y7+8 zk`LpLP_s*J%yIVc5CN3Ke!4#C!-xAQ?EU-qL3wP49gI%SN89F(bxX8X0|<2s3k&&W zar0r&=AN|JQ?!C2f~z|+k>LzmDJ;Bng!29+q!p4 zV=GTgP(28k{d6KOJ0qcO`(q3DmJ%TN(;9AWZd#KDqL8asuY$-ZPVgtq? zJdrZ94iIbhx90KNb>?&AlGF+Buk8uDrdhI8du|v2^ZTi|7&=|=vADc^W$^oV^x?*& z3(}vnj?E>`?qS$Buy60l)VG%fnpihZb{<|>_`9~byL^06ZY%w9+1Z*;o)Ab#NF*jF z$0sGVr;FGH4Xw1vqotFh^b{4ZlarI%kC(kUI`aNGIjN$qzBHKg?E8-&E^FVpA5+l? zW_`>C73-A;1NUIpgu!4g)ksiKu-K?h=te@g@+Un>h=oMJnYc-5%G8t*HBG7i?d>#c z1i>sioF*>-1^q_-{P}ZMF&kp&;&l6Fws)tob?y@D$V6o1c)3MqPQu$6=&Mu=5X@lU2Pj?zww*(|Cbo@!^Y!~C8EA7lN zNU`H6^HjgQjEh`HAY@+Qp`jdA$B=27UN=#Q)+wiHL#Psm34Zutrq3Ae03Y4TncVi% z&vXh+_Is*c@EEDmcA0 z+^|~chyo(t;rhfgU0pgpK0e?Vo(B&Ki;D6J3rRBi6wS@et2&cZB!>uOsHATo*9TVo zR)(Rz?)3Su#R8wP z&}{#s9vi~A5~MLk)ucye^F>q9YI`(r{psoH zs;Vk29Ualv`oPkG;Wn?mFDtt_DGp8^8yae9qm=8N_QEjle}w|x@M&Ywz@^eU2I-fp zdiTY=KLN1)W^$Tw3k+*>fN^G;br(itSiYp* z{u%yCW{uCvw(6R}uyf{XXBlk_N1+5KgBCL@8VE^$gKQ~==RkO=s(RF)C8ZP)AbaiF zwZ+9nEdzt+Iy$s=qs0V@*_6niv$J;@#T*w)YG&qjQ75-a>G&fTkA$Lozo#9K&u3e* zCC9}*0XhYvsQq18S;XO?Cy<0C+*faUcz9$=E+H4PP;g@)>zE%3_|t%^Kp+skI@hI7mMNutuwNfjj*bTc zHEeBdKXfFioE$+g=i74o@`o;!r8s}dcom`DO$bi219jdZ-%}u^s$|dG83XRb9>iy4 zs6ysfb>B3d{3zYsAJN?Fa|%d6qvfNSj#mQ&dXo9}U?idPqnY|z>DS1qn*8@SB;x#~ z)0lc>vzP_|iv!^`*-ia+6hJJnbwQxgDEj~S@k7B~gJIJ60qg0`Yq8#t;NC77gxXA` zG&Q3DWMgB43ZWPrmrR)97;2r~iq{hqJ$jlZ3-to_Y9QZ&f?BVOA;sc#?|78gpciBI zW5>cuM|SAyZ{KWtmJinQk&rK>;MNv=P(NaO9R)4i;^MVh$L6%PqOoY6n)g_={FNke zqKipP*vd)CFfS%-RZ-H6nqEOIGUXQKZR{*fUCsn%UHoXB&lyu9Nof_#-~%x&w$@qP4a;TXw6|?(S`MxVbD7n*dUN^0sxoaie*u6e|?PJS0!%E1@bC zjcP>pwI12!(<>NGcK?UOB$YY5QuUQ8Hmg-1|HrJozxJW)(Icr*oQZrwZ}hMw&+n;S zkD!$bD}CQNhDTKXt$<>aSwh{X(b+}(=S#Jjbv?|qvI46*RYpEPMcY-8%euf*v+CJR z&Fm}5{Vy|-Dh4XSn#m|2!%0bH0KrU1Sa_llCI&>%_3`qn8GRisAw+pH`O118l#dNL z&yJZgedt1!a%Hq_^e&dU|B|PX)2xJJoR6fIrY?>-^}fzA28{W*W<;^KGah{xd(9@D zCI8fr^HJvh`C8-JDL08$GI`C)W7ntOJ2He+!Qp?oNyNqO`p(tmIj>rZ?}!mxU1ff2 z$`bOKE+}+hzHhzBPHL8u3a9fUzi)%^dGqka@i|CqS&6(W{F$HIzot!_@ z8oN{N(%N0If(Ez>0|SFOcC_R^JNvOQ=e-s$*4Z_?zY zn3S}0f-Ow|oHOqDS)bd^l@R|;o0xl4!`_nH4kl7W{vpd*V4#Blo%l~wBwsyayvlau z)4^rUxoq2WZDGK~deP^Tqu9d0b6s=5B!h=m0ntq4DHI6d;BEHBwag?ZYq^Ad&IS=9~b^gRz`gZ5$%oP+0{ucUHxl3ipOm%7LK&>1Q zb9xO&cM@C6ljD%vbejdf91AR zPcaRR7;i%hoUMF(eEb1w#(N=38^PfhdNPgX{7BSbyzXrJ>cS}an4zw>g31u-$>-qU z@JdIg!f{&C)y<8-=JjjH>ETB0bW_5Vh4JD^2>2`rfnb^O#qwR2ZrS5+n#1GcUAYPo zR}k!}ZHtsLR{oodg(C$~M^oRF5C_ID$_AUZyCt+A_+Dsg1+tboKrCk81;P>+kCfVk zU#03DQj>c#kqyZ4^8}Rt*pv+oAD!@oec6tcUeh4%`u3QV-&R3` zy-Dtt?TUj$EOd6HtH%n8215Szqd*=XY)Q@T0vMmlne7)3fGI#4xdjAPT8O|*d+EY) zzj((sPuJ=|n%`TR6;h>$SS}K`piRGSm7}z^wVwbC^n(&L3DPJ0<_fa)Z7sbWAsMe9 zBv2YKRry{a073DiN?*wLiv24vDkE+y>ruMM z{F|NVA3^v1onls6QRypRC}*d9R>djl_)nSw=UC5n>7n^2P4P6jQY){xAgr|eCIXKT zp>j>f+O=OiZRt(U_LNYj^&rQAH@ONo=@{!Io;{(WDUWS>B0fb{;zU$EZMb#Zgs^*~ z8OWr=N07nC%NCl+$^oI`+h__R_oF|PJqerTMC~bTyM2s>G>@n$sG*%r1kTPxjt+JP zH}*U@#Ru8~&tbK)?Cz)JM2(W%kXkLG^$G;(wp<|j*1@{~OwI>*IQ@EzQz)ld$^k{o zOMx~8%_A0z&-?B#&{{HdvlGkB)yJJk|CKslqB+w*!8(T-Y{*ZYqppeQ-zp;}E2RPE7ao*XG z92ki1xw)*;ER?Fry!Y5G(@lxl2w)oy-Uo||qX+ZI=DqWavglhv))-u)1J|7yZ%&|! zvZ(%D+?RT)j|z|x&4>bc+&c?3l001whO!=Mw(V1~R$$!c{U1aNL*#6OmZV@s&~03~I|U8pus9t08} zgHc&;aFfsEUJ*|pCl%WWe1Q2j2sdhi{qCr zc(q}5qm-ASywcj=+LrDQHoOfk4`cC#1LzAV(RbqEbw>P>l9Kri;IzzrX*nDs?Zcjo ze{I1r=Ep}Dlfqg*=5culgrf!_H$4qjE5c{g4zhHba16qJ)dNQlkQhZa8N!t5>gL zv$Me!KEX0-$+LbBiDP7m*evkHrfpW0<|qmcmeaN>RLm&;ym3n=;X-X+C-=X4;w%e3 z<*UfZnt>oNMW%qof|8PwG9^9Mx^Wrl>6fQS8=hCkOcs5&XP?aYtS~p;v8}~Yzkeva zy>Y?c8Ocasm9Mx}zF_^N9zWKd+YwI%Fp&=*Ke}vAN$l?JT^>nra)u2Lzo@9F(5ti} ze|X{tK$zvZF!1su=0cPuCJZoaUteDk{hd3x1qESoaV}rd6KyTkS&hNhc!j0n_kw1>3T7QFt1f(&&Zsy3vAE_rsRlsu&Z?$f^cg z@A|>`6*LGqpLycoupxrk+S{CF zdoi^gh;rstIlDI$a$`CZK^cxg12b1_N7lKAy@5nAy55Dl2h-s#MuaLAB}a|xMT6y{ z$FS^TVku~JjERND^XKzlkej>6J^<2p7;%gkeqnAZXZZpvWl4S?Cv2D@zIe$=9dw|u?Mu`!$#~Iuvd@z$Cw3M?Lk7%0I3^m6=CNvT z9TkF;&KA@HZPgGP&i{L(!9|oawxW3@;#P)k*d10ysm-@w(a1ndm6;`95WeENmFB{V zJ#dnIt;(Yn??}9{QLQ@#!XML&NSVEdhwF8mo@@C-*TncUnMrX|WHl=qo03Qy;P{yr zipC=A7F0Xu&K{dhc8vRFiUR|e|V9ne!GOkKO>PE0CZOP=b-cd&13RY a{N2aXU4kpJ?7%+}fK(JTb}_FDTc*L~e(^X{Rp2IEQsyE?5U#D#EPxO;;XutdWDI1|* zU!Z)0ruvsI-Bk^6Ac)ko!z+eHzBNF)#J=8coE%B~=ILP5-D1ntxK>9@;p`gs>^?}D zEf#6N2)6O>E2VMOi+YFuz8(m?eD~kqX=whrk#PEd?|69rUpU0HOf1T83QlE*WkObxB%@Pw6lN7vj(*jlm2m1TvQk7qsEp?^t zt(A7Kur>Tu`#>b`5?H*ZcTzmNdQ;>*Un&qY!nok+D#0%mDy2ua13MEXHI`C5KNfhZ z9RB$sbE*m~yV#ZLOs=g6`smu}d8{!RPDzgv2Fanp-# zbR|M|vd4SKDhGq%n|R(X%5mq(tCiK&y{#7R)ycrkfj5j-cUvGwy#$vuxQnR#?RqKd)-L`(y}n#pvC~BzwAprll2fD*8C? zuZ;jL8W1-o_I~q5{w~R9ZK?2K{$4p50PD-qGch+$l8}(_B4Fd4e!O9HP}&4aiEf#b zCs0%aB@0c9@0B`q8v{MYMMr1W2a{L!$J`;V$mF8*^zxH4_Umv}wwJzfFn|{H%q;!0^ z18g{eM9BFOo#WXhpVMsZ)6($LENNHU$;nCT>F@K5>=Kyfi$BAdxs5B`CZz1zE=kMC zyiuC4Pe+n)V&CR3Qm>9cAULF*Vu8itSX*2sYt4piP<79rKaU0X+7wE^dPLszRXQH4 zaP5;GvdkJEx8xTP$aCmUs|H#&GB&;mttPGHNxO|#u`XF64;H9fS}z|m52E9W)Nrrc z8||1Ip;=(6$QNYBn#m*ZJTqEnY_|LQ!B;9Y6QOm#zF22bL2s{eoV~ZCp-y>nBT+yk|C7@UA}9A_X{; zfl|bSW*Djux7+uYvm#f((*OA#KoVhW>ZpQh*vi1WM(cxX3LB0B4k$;gOR_RDE14g} z;6sI0d+jzy@VS=Ap-^U(FZA3&J^PynR0qbx#Ek+1s<{H!?oj@=Kn8zBT$OemE&H^N z^Oql?{{vw`#&oQLE}Qqa_;@WiR*3m!7OhmE6^$25Zlyu7MxS zkn!0BU_Adhm#Pfq{b5@zD6|(FZ_V*1;C>j>fN147esN0pQ{cuo4d=o9Ug~~|00;$8 z_J+KH(8Bl&?3p2lU+e!iiwj-9em7ES`z;sp@8i9d0T=_T$S1y3-${Sc=umyO26wQb zut{Mo-(^Sx#ML@S7AcI#6r|&W@Ck-EGVvPfqHPL%GG&JN4{L#GH3%BuYiHmYXY#0I?#Q{J4 zQdVXdEfq}iDljWmUsza(=4&r0^V@pjUuPY>+pD2bwAZV_-MYHxw9=1@#(*y@gUj~X z#am@l@uQkJ8CdQ%q0pHkZ$Kt)LIlMj(Usv6iQAbOt-3a%f`#VeBL*U+r(^>yD zuP1Q}a63CYG~cRcI@vPsqfK2vIe#l@JHBCjma-YV8Hna{ZhCo2W2(Kqy_C-^J!reN zmpJLa#0iTAXz*lxvW~n=KHfa0Kw!~(P4wK?f;R^(+{^jQh(I2_#6x6*H-HuMckkXA zL!scS{ASE5f2Vs<$LsDWa6LuejWUt;5+Na>{IxZg)sKoBj!~PLnKy)mg;y~|z1`_h zX7d+E$$HvL3-LA;d}i(O;*j+{-46GiJ@*F6K5L7W_kfXcj&AD5BQl5w;EGeE!AkRM zvJPD-F@+;3T^)&%ddY0<66xO7)|2d!rTMlEJ3s&;4O6IHiaUxtW^8GhVq|VUn!7q& z?m8yZzPe{_V&xq-Fg!dw>(H{4m7Ckfar;q-bkN^tc@-6d)w_6DK}Sai>w@SwtGKlb zKObMp?lHR)z*aMxD0DDJPldf=H%KLYpwit&SX{hY;rYDghjh+k z)NR{e=Y)BA=P=!ee{EBKALkn7i9iQGh}ZkI*`md5+@K|sK|4C_B_hrs00GrhuNIcx z)J^f*tpfP)okP)Qtrs;kIGAQA=DRVD;OFNz1E&AGmk1h=PzEamIhu|MqNQYT~dG`6e%KmQhQ?!D4bWhKkCflgAsr4Z=`? z^#VDU;oCZCN(ajg0=g-;T03}FCu)e$&CTKBIgC_f`ugIQpBHe(y!v|U%{roW-nK~M zh#?k>B^@q7ibCm`xq^Y$AZCBQBTT=;P(R4dm`-$)%h-8Cj6IDMbXGqmEdZQt5?ebNPfi-+k}gLZxUBu z&~tqn8rv534N`#{7)S$01-JyI#*M4)wHbgTWUBcy3S2MekhBj!`V$6uC0!84 z6`=VejCrV_ax%9lc-@%_r1e`7?yp4ajPi^TKw!X_>b=YIWu1>8w*&=yGu1wLk=HBJ zcN5dA44+|k(&OUzp#e*&zPjcrRU^a2wp5H)`@jm7kUSr_zlO7L`=$nP$I#omT%;Y} z!i~x&^yP3Xiwg=89KX4^xb$b-52MCt5NNnl`2%ag`Pk-Q;;3_x5r|kHCvE@BY>J!9 zn|^}e0fnonspWl~stc?Hk&y1(m7ZA&h)H%14(XRP749VTj3-XznG}U=a?3x*G?T51 zOemy1=dH=lcSHGF2k{sX$6}toOpuqC7q#B3Cl@kZlj~V=PNlkucc=8w@=O>vHPG*U z>kifh&M~Dss<&;ZdsqvU!$TNe!XF+G*T*WGJp_(W556aEb2yDvy2lT#4t#z5qswot zA7`*PP=qvUM~n8Yjg;z*mP%Lx`=c4!V4ImmtSxsfxaX;L3aCspF$%o~PW^OJyE6r?E!s`GV% z*rgF|Xkig3<+yP(s_Pgq1?K_~S*UCQ5S;(OIn{UpA^XTB3GQ0drrxr=yj&yn-N?uY zmGr8Rmb0>6{F)1W2RT0I-b>vK(xCbTS;>5O%i_X9>n1V1pI~EYnUBZAL0oz*<&JDP#$fe;kqSXq0ENse>T5uu zpzwGxD=84FW2^y*??QCDr+EW%IXX)*5GBYX@O+dt2T0%h%fh=LI3NJkBmtd{tQ@9k z?JP9_R=~Qsw6s)tFxp#)IzHMaQ-A{J*dv4gG|`tM`fgHIOd9ZAsfv4{+=o1C2W0SF zoIrXIyn!@OB;~o-@ij*P>O539z#FNQIp$WQW83m^Aim*nA*6Kr9`+#6tGbE4Q}UgK zr0RA2fx8UAV#=}x1P@#qgjR0c=g+FgMAR`bGb$qv4z9EIn>ls)(xq#R99;=_<{WQ( z^nAX%GFrac>$%vOoa5Q8Y(gdQUULz$E8iK!`$16At#*)7+~RUFLvQcwxK0fHD^;3} znUzPgK(WC96$yY`mAwD(L63B>zdp9tZ=eT_rm`O>9)ydL*#v4JkH)~n>!jun$P=4L z-`!2L9l^JOoO;+I$ zgA}R0)xX_`eR>e!$9uxTs}@suu(;Jk;AR~OY$xY61KS%>_tl}IAs|}2iJ+ZM(xPkw zdxh7>p`M=4fX{sa$PBo24wWulW@B3gtN9G$ugSWlkoMQ}fWEddJZ3w`cXf3?QYlo! z(O!{2T;1GpddhE+`?th@{yAogrPToS9uZO zqLx)(oAV#EcJwQ6)f~@$5YPSmndg!95r}w|rq%(Iwf;gPBK^&5Hsje-7yebm`PA9e zE>(-&%_*C1$Z@S()eIdYr-EVS`123y;a4(9q=4Yv+)q*5BkIcz{RZ(gNSPkGc zHYTQTW%a4O{R$x`eUO>}1IDN;JL#7N5{xp3ZZ7JHAYXR+@Oj~#SnZ#Cdm9rLHY9w! z7k~pHF)>{fAeNEVStF9&N?BBfQN5Cz*AE=c$k1?E4@HWRkd%z1douRq@b6ajVv_Uj ze2m^oPsaTuDMU1@n5Car#p1j6VkU5pk`7%;)$&PYz$=U_Eb=Ve>x^jWnfkkt`;t&RpzZm9##&WQ_#_V&SmczI zl^JCBDhYRN)O%Au?ynY2Z9rKK~}p8=)T-s{`eeVzsi)|K57mlZQpTa z!e`8NWw0Pw#(grM@v6)6=FGlyzvRy95ZY9U}{Adj>Cm`cR~a8j96 zABctXI|sWUrJ;&=$kMa3caBOMkcWOCUonigK_2vO4urEy8X6g4b8~ZJUcQS5nRl-l z8r)ZJwf8C&y;8T2>jA(d$+#xD)vU`fC4~y6v$Ib?DnI~&83gc_ z0|LuvmnRQ3r-@5W&SSIoyDQ#sSYqFqgr(Xghmzk{P~x~Btu6=hU?Evq*)N{l{__|1 zK)i0Cth;+3Q;5RS(neY85qPTUL-8OS=79PL)yXs zJVwh9AS>$Z8~{3xO;1O`Z*SF;Hw=u7;?ht@{y;#-co4p*=~v40cN64|8a--oqUONw z-=9rI9UYK&-k zZq=>(2O!q<0)sAlzM$3I(vmLmw$B)_sFmU3thAtQXfRls8OG5>Wj`Ri7gCde$7Y4H zpEiLe17=>cfz5*I66P&N5bBT~T(P~qy$kSDU8M8jbI+q>hphU)vmdJWN1a_$oz2hy zJTP^EM5pm8kN?3i&55elAL(4(GTvq&}HiTNg?@52ln&oY0K|h(Z=WC_naIB`tpMRPq?B9NxXn#W*tWdxH?JSKf7spiqH?+A z26{%0`A2U5E=uEbUi-mM?L-MRYUZqm+-3o`p6k0gNrf{nVBz$^osWOKK@5L=e7%D| z?d;0C88~=L~67qiz{r_AV zfUMAjEF0PI8eM`dG{g6<<9Y@BmEe|{v6E(PYeHDxs9BcOEr{*wdvyGaV+bFv@UD>DlX}V5Sh#DbKjgaZO0?kKnq$2pq4lFZ zi>k0G+R)_jsLJJLxX!nEB9yBr_S4f*C)=Y}gd)qMoZCLeMg8Ry zhG+3N2V&O@`}PR~`YQ?cr0+D-50DLpmTnuo zWF}Z#`Qqe7ZUMV&sl6<(SOq)H$tzWnfBa}apF(9BMvJdoh;ohuF3u@i3p#}KdxrOC zurZs`Ov_xB#z(K?1;#M=6-n;&G(H_J9v${u-kJ=kqYy`1GyFa+zQqDt9;m}}q)qaT z%4UpK-5x?vjyI+XTWlB5vTXj;v|^#4bM5J ztC-`$X!LyYg(@F^zKBg;EBQ1t6Gw;-T2ovsWPqZzWHEHJTb z)c{v~IkokLS4Yg7j%c{zD;f8(B$St%XG_1 zUc8?{^urxXNjkC7oDZ&Gg^G*BeLN}eH}6M);=LVUS%H-lbJen3BGkPwN@e_7(rUyq zqF&Zaj4SSJm6_eUvKiM>OFIkyIqV5ZjI}L0-+5Rr6ZGm7y6x;3QdBRcAC(&`+mydX z%Tpo(Gq3n@lEx|Yn$q*yaS_5!45qfrwSkp}Xj<2DPNcx8S^K9XA;Erwm)3I(S)d8p zV`ZLk{P;FDEXi2J)j>nu1hFO!f8yj=#6aVi%q$Bl3SuR#ra?Nw3$u7H7iX6klTh3V z!ME=T@|uxW{NcX#QYS7Ll~|dRlb%Yy*{`;u)8ZAgE2=ep<``eLc)67O$t~{DBiXac`=}noV`LScI@QfPWd0(Xekc*BS0m$pf}!3%2zh z1+5?bV+kpUkvdWrjM694oWIQK5^HU7xqdZW@~6m*rs{>_%v@d4L?HYz!mltr`qqTx zhmafR1^Ex~qb52z59PeT>ZFu;y931`g)*2qCE9FO>YBnL)VA=(^0@~ur=rtrZWIi& z*Gtvk9$CYl=8-W&@3v_n9=|pIa%SFh4&xd2W|Nfh^B)FPMI#&jf)uuT)y${pH)cB} z>}Tj`o(;BH%`oz5*$>WTiq7cJzP;37Lu&v2=hQ`hT()&UzzaitmU=0gD+_A)(V-t~ znz5KrMU3cX*e2<8QQJjH-aD2r9zYdpEk^(9{w-vlPLLgXCHv_XFpxVInlx{97-Yk! zZ;J|JjW?OxIWq3uzTlW6)8PKkdmrt(zS^~0W8&-9ZkyL=R2}1nG{xyW#F5ilJ0){_ zMsSaBl(G=Vof&(C#=APtmj_*j{YjewtIaesb42LX$&!XL#O?L;m*qFVoc7(4O$wG; z7jxy%W)~dgyX;=>%S00hTxZk$tFP|uZV$A!>YYo0cm8=Rre=pnnT#n4B#_@eMcexP zpfPy)PF2ycR!!mjgE@Yc-rBX%V$)nD$73ZL)iE=)|Lp=?CCW|frT@sxPBNWzDSpOY z&CXt`#;PgEfe*26jfjJ(XZ_<=X8X=ey1DSt7$kWzj^lgPKj-eb6QAQUhmZW5&{3T` zSdtTY>4aQqK>F@?ILmS=@9n@2%i8PeCKA!LEIR3rHc!5C#rcg4}QSIV#JEG-dFs7qW zcj+9BZpBo%@;jTMj2^a)rM+M+xDXSBSUit&Hh$X27+)>acZ4g7o{xenf^Tbi z+&u|>^1==pM$}w*-9mb=xECc+Ete{})Nhh30XGqB<;6ZtlzD!e)+MtyR~f&-Lzh|J zJX&XO?A>rn%;Y4?i<@Zvbu0dLv+DzB*tRBDq(1}|6+2+HqNu+zK1E2W=xj>WX|Tcc zO*~e3Y+!l#$j%Jj#DO55#bq0cw!Kw}mhi-?uyoS0(mePOSt%d8VN9fFS z(XwLOh%hbN&@$)5GWYT`NPnehB^_ErNUXwM97!jtq*^|uS4POv{Us*K_^b7bY&pfJ zi+1Lb8U9JwDC9#W)I{&u&Gm;k1-|vaKTp0B$-_}>6C2!hV*|otNxJBZ(WzaCr>1Be zEivDb!!+QYjfcH#pGk^jBOygyckhCM`uoa+r5CKO^F-_huQs~}xpAzSNmQfW&%%qI zg`GGGNd^oe#%A~Qsbg1)JT;XBWg|n2b`oE4*VL_oK&#Q}=_=Laf&OKeBx_6K zTLs7w3i){5V&UO;G~!`R+=47Q-vwDD_~}-vp?cc~Y<41^Je_u z@zBZNPHjn(O2yn?HO+V4gTNUk!T#9pHNM0Fo7pKk*4&A5cloqmC}TIj?67!`9I2_O zl>!aibHm+u?_PP5h5sN(#p-!0f51+s?0+i8APXD)=9vRBO%+BiCDYc{^`}*8iWLhK z4W=c{TWaFYZKTL4SsgWO8T}hT< z)kM+{joYxzEEwHyHW4TYC`PoR`+|^YJG82mboWFAf7$%c{Gav~A26eIOL+J0FZ8ws zYWjV3*>F)pzJ5AKVPO*Nm9u>jO=idDbBC%KWrd#cr8l6 zuNMUMmgP-27KC<7MW6{S?~Fw}g$UH%B`Bek+qJWTf`nG|n{(`$D#4`X+MO;>Ip5Qj zE4=%(kTKRIY-g<)LyJl5?{69V(YZ{?x+awc=~fnx_mzryQBnP_3G)kL4Dp}E!gT_f z6_bxt!uptvn-s1#HD!m)ZYnSW(J4^#9O zwj9L;ImRbu;LXw68Y{25!-O?v4D{z+NV@U*pUtRuUWwZ0LcbwClVNTeK0x$2i4-hL zmWi+giH!2?UAerUFQ1v+k^j)Pr9ut9aobni9jQ#^nXg+F>$syGnO~=TA z0p)bP*RS&(E(`A$M9mlb>ITP+(Dt}yW@Nzq8wuBjP0l}HM||<#)O=b7>3?0^zV*xN zm8=N!srKmo!m_|<#I1vsAJO~|9yVRjXt9DmKMEY<0{1SKGX@#Z7?&49P32}&E?Bfj zYcX_)Kq@_|!~2aiy^XpSPrQu__}c59wvaOKb^gYcy#e^vqHTL(#b8?8ez(Vm&!iL1 zPkbxB73m6%^NcZK>%>HPb&0kQJOjT@(6h+8j$$Ze;wtE(xojaHKh6NXn*Y>`L6xiq z6yzwHpxiRBq(YRZOw&W&2H9U=Rl91}F!bAYANoAmDU3Telb_k=GM$COVhOlyhOJT`!dD z0}RqfHV$_Zx*RLty*W;Iyp`iP^#sc$QWV8;%`H%_+{V@-cD{0)xw1T$Nozp=+OFe= z&*T$Urpy(;nmBbNO)G9oi4gtOCUmrR1fCOOCLc+oWpw$x>Pj7R7eqjNZAKvMm+0=kE&8(_A zIkx0FOey9H+Aq01e=BICdKV?_ye4`AC9~HhDGuRCe|n_Uw`^`xSN1pZ1!_O1vOdpO zh1|~moWm-Oa-@Rg%N|p451etLblY^D34U`vHa}lveR6#|J43(YUG=Ac+Y)Zb%!ga= z1W%y$8{^<@?70o|+3D$S%#}%WgeVhT3TTeR=LE31-jZ``d|kcy3pJ+FU2;eotAX?< zw;$VFdH!0HUCQ-icF<942!vt4S6zWZv>%IJD*MZA1EHLHsjBSf)E`>BT091Mc)Vdt zdn5v1PbV*R4Wfh7)2`?A@(Sctrq#C`(fz6a6(DN5lXCQTvGT{Kyg&Z)Xj$oeVr&TH zgCV>B{5RoppQW&z2AX>>t8afb#nDUFoa-52E<4A$EQp?-o(ZVXGjTqj8MTsw+TQ-*&L>^^tw7s;bH`wmvI*a$?wfFDI$WO$FIZ~wVKm8~zt^6BYPR9iXU@PVl|6O!J7p9*LgupkYTQ$QPNzE&Ekuc-ErGl z`aX3kJ#6ae2)e)&Eb*5?Zo1DQIeTI3i=Gk}A>~7tF(C#!)5dyULbv~Qe`wTJBMP%U z+6YmcaQSW@Y3*=yIP;+iySb;?{F;1eDRaho0E-tuRiM&9Z?q3Zj!;;j+?@BnH=jSw zPYL#zPFI^%%2kQxes;15+0Gn@Q1 zlpk9j??{8kq_Iz5%Rpx4ontpBOSqblZZGjO&B1&*w)Xv#8kYU#EL>nVB}vvj z4RofxelW@|M`>{NMk054K~J6Ailr8edX3ijZuWWthyeYNK(BeG@q(o*wgVt1-lTKAX7=g;A6H=oU) zj_R)q?UVmh?Vy+ntRUdF4|YK=xn5RRE8->jJ?Eq!j;uLSNUv;-8|(S{R51UVdwKxX zz=!}Dwe`^Wn3T@YtLbwJ#F&f!Y=(O{ae;!#6Nyi^%8Tk}2bU8B_(vuvt+rjB20Z%F zvvb;zH!&cx$#cegZ@y}Ib%tdZ%-7+ntIffrARY`>i~3>8 zy0TMf-0lLl6CfYdy*|)8vKuH#|*SlToq0=O(=*li! z6_RW*&s6U3zMp`6lCv87Y|9U8?IR#)ksYz7u8WFH)jjq)eUt91&$>AnZ_CPZ=Oa*C zaMS`W<2AX5MYY@Sky{^ZBELST)3l&|Cb`< zA}ihABbR3Z1kFk&G3`~pz2wnqTV*aui^q-Oe-;HTQ#Ss3JG0+i^K@2T_9Fiv?1skq z8uy71jQ4H5xe@lM&AERcAcoZnl&Wyt&rF@kj8?frRoM!8adv#ZUt;?p`DSOY<}|eU z>(@THTQenj=M!iWP!1pb$A(xhDTt&UfGhz{uu zt2aOAq#K-@I2`bsGUJI}_cPj65%YF8D4VOpo5suBR^~$d9L#?$hu{LN*o;X|gkk7jU_GoLMAV?z}gw*2{6_U1E}C@fbH(|FsA$%8%usMCmCi zLpd%s(?&Sv(meyCfH;soS0b%Hz#gjpDIQ-fAYu;$9PAV1S-VHJiF;uK<_D$vide%L36uW z%I^mB9S;Ah8^$Zf@DSyXNqLdIF1h=UZ=nKfxZ4kHn`e`MW61B59TxNsqRnvG%9@%o zcbB5#>6gj735jp#3MKQ(zj-7Q?Fp^;;mIzHvVX`(7D?%I_+Y%@w?Q?GvFoYXxRt#H|hs#D1~lHD4v z;T$e)MxLlLif_VKyk1n{f)#ZD_$Y z;uRS2A+`Jb+nbVfuw-5(US&aRg&Oy#edp-iQxZ>qQv5m25`WlP3)#~Z?0rq1eRI#L z0+cnfk&ScY_hSgiXW6cf(KQ9r+=5T&!vSy_6U(QMm;2~p!aiy;opMElhIjVsUw_j& zu*N?UIvF_>&Kh1$e|Wu=Pw%9LJfB^HenByx*wHJA?-Q3)V^?CuI=R?Kq;eRaBhz0z zglQ}LObL9tLKeFw=>2v&I@rUSP+iI!&()Lmvl(_@?5#@@XFwu<{S#;qzBu5vv|`2R z?@2kyzMIh{)rlu6Y3{i@`XaoFerNkH_z6n?G8Tq*Dfvvf7rpp7m)dWl4fz}``B9kn z&Lz#*j_BqnrZuZeGcu01Z|$op#tuSPAOlDK^#MC2&ciO~5Lz06RESa)yPh=TqMb&I z6k+?$e&0Wt(C06A51{+q42z1qiEnHxT|hC*F;$GV6Mf3(RNv9o&8ook&-=LsHn_m^ zO?8jj-U{e)_*~%ZRju+XZPjZp2;p%plQyln1q*ek2CD6;PbM)(irG6 zi#r5+bobJDI45~ICkIHLtjE1b1%C%`%b#$9Ri70@yZ1`r&bIM9xJ5hNxsNPUt#E2U~k#8zPy|JD?Qa(AB zcXvtCj*QK{UjPwEkdT-Ul5AvC{ri*;CaV*5RQs^R{M*ERP%ktSw5Q>q)eISqN#P0h zc)uG)pPlu7=WD3ahln zM#VDCz-$}O_36@`NB#)Zl+{6hzr570iLMW*kL9#&SNumV+lH;L`$FNq`SX{A9759N zwAC<i!Yh|{oF09sr6a}M_#@!eesxG6 zpnTP(7_%SuQR_3xn3^uzo8sr8t%+1{AYAAAi?4ODEAq&w6T2ZUXqEIVD>m`!=xRVM z$i(5?`z@z#INh@$RItOJyd7F>Z~av7k-`4;3{M5)>SK~3+(j%k=%yJCugsP}VV`*U z=tfUhGrwk*io^ciTZSf`JMsn`zI9U1=w3Xad8@9hsCDd_D0SxnIUsz6pYlfn@#wAM zM2O?eRs#Ebn{<9}EqC%>^hL~70jN!yAb&C8GvzwIE< zl?$1dk8bY8BcI{=dBgLrzoP9lq1pE9u;1Y%YbvTly_bO^)9al1FbNChB<t}Yd}NC#8W_C_=-7KK?Ly9m@M_9qE@aNRPXWF+-oD)z5VWrL3MXiqmui^T z8;p8t<`yys1>H;OFAbH-t@QGN2#N}3j+}Z%2RehjCR*hS`1*2u1}A*sZtFI^ii)6B z+lm|A6Q7m)%EMfkrG&U3Ct=LXa(ojf+^!YZuKC2=fSvui_Xg}U``epbk%^2_#p$sq zRr4fwIwLOJ*`V4X+x$Mk5)4wu0r1AdgP0lT1bVYp?lq58eA z*JMKe01JE1(%GJ7JeaiKoz9konvybW(~YTi2tyXB(G)k$MUlK@#9PmaiOPvkw(jq2 ziff}w;2jd#&@&(HBc9Xxa?vauYxkj~p`1m%{re|% zJLm4e9K5ySXOsR3%L-IX7NBX``2|b-wpdQE+Ob}$?^-<5+kDl*zTDmiY;M<6MvvxY ze3}U3hR>S3n|501!HH=V+`H^4%z=u8jQS>Tc+7tXJHTwhdC(U8-|NH$?UVm|^M4Ng ze^D9_Yx~$kb`FuaT4Sd_P_D?>SRSlEVgs$J^IuV1?XPi-`KahwZ1~d+-e>gf5_^y8 z^rHFsfwc(6+Dv<`1jE$|=67IQ)`Fr?E!}4dCNwXN%!CJI5*(^u$r&*Jy0d#Fgb}p& zb(D!0Xo_1+97s%0q0)BnC%Kn2$n@*yntuBHF2StRW6A@u!C}~7jUp0 zHu!Xwg}u9;-7KQXjIo0Tg2FUWGmtqs5bAor-4-8>N#n#$a$-G#F>WKe^OsJ$9A7{z zxEXvTa-wrrEsm7roBBiR6trx2FxIIltpevoIXJM=ftUidMMVQcdj*Eb_?X8VWJ*l} z8R?YCYj&#VtVS+oK@mGa-|1VOpS{q{G7FqtTUjnMN9wl8w#09`MvpcpOt+6#4U<+N zGgKoNEHWwVz4<7O@r}2vxOkHqjactP;mfYkT0|%qz0e^Pr;8rN@I_K5FP4S8+hVHE z#nwJBKRKxeA(CU}e4?W_T!#hBa^wp$ zdQYDA;fz%ob)sX?=H%01e`NoM*0BNfNf~65Ppk+qi72FXyVGr~%ku@7=&XFQ-?(l- ze`or%>Ta&mt@VSBlNTxVeb*eJar}!$Rn}UXQ32u60TFT0cwV#>Po^VX84J*1x469L z`7J{kwxppi)?hdQ$}X7E2?iugOoi&c_K)kmET)9`Gj_$fr99<`QN>)#jXnC-f0915 z*D_LU@@DYk=>E9r(@#?D63t-Z1#pumT~b8d`}{Y>Uk@GQlX$?!Gx_BN8eIBB{)BkDa4-*PfJ;v@JMuW08tB3cg>w4zAd* z(yljegyJQ+VPScr$bu3MLL|3V3<)-r#^2mhPD!HaVI9!GloutMy>VU0i;=14=NuM_ zsCw{T&xtJk!m%j}b#BK34}ru@p3&ziHuJ9AT~f2h-KQz;Ea_P8GckU1^V4vCmjGps zg#~l+JAuMzukL#5pLd->NCHF{BReGJ+Q{_t6PO6`-F$uXlV9yiUckAN%r3GsD*|*vqI_6&{ZZfX?B}HznIe~c-Mlbx`GnhuybyQq=NB{3X$UI^K zf1_Td0|$-onAr^q;YSZshvFpq9>VR)rUA_}1t7I<>vJ}ZMcW}|D-ipN8|N8L-~9FE zvSKIQkdM+ctbaM0pXH&FAwry!X5(vd<4M@s*Ff$l3|l;u%rvG*FBbzq!`j{Fqyciu z)K=Y@ws;!S-g)kx;u_Lj$f;8T;l=UKjFEAllxL6nXYqu9Kc!aq*@FG96VprsdpCQA z9`Sy<(h>Z04vDDm^bw#bi)+v~Csy}^kLC7scS^D{O-D-_C*@VkZX{d@ZF5@l{j3G2 z&K&4ZIie$NrG(B~IIUn&!A{4uk2ZLbumB`(o}tgtqzuBS;~g`RE10k?3_Z3K8juF* z(%YM>M5wUO2t+(#vvcwXm`VW|T#o{ppF%d+QF74ux;O2dm*8>kXC}akBYs6NbWmH9 zb|RbRhVzgFZZ@ROa~3d^!tadsBL_qp!`Zqj7@nWV#g5qVDFER>MEbbOf7qPEUh;UU+E)QkNm zdt8Y7cjxiWjpTn#Q{@Apf7HD zaYRbCURZkc+VTQjvAOzrQxMZs9Xazq4X#B5RWry?eS}MIzK@9?mF4v)xy*N=crPE~ zr?t|rw<4|Hwm~?W>MdM>;~qtnp?(x=xo@RoxUxXI9P`sqqm<3#NFDbyuw9~L8j3UE z#tq5g?u!%SquR_J=uV4_i=-+VzK{G6H2RivPX*D7{+(09XH)GM8_V(YmfC|#k`V4u z9gZP+wMh+i+xt;uFI)>ay^I>R#PXywZA($TU27Op2=;$d#3FR9$XawBXl1%0dv3mElTfd;~ik^!Ok5n)mfAf6gog= zkM<@;F1g|1a1FfVM(z5&;5frFvz0qSC4@Kkb#P_w1%_2ertAlQ_2Aw5aAMSYQBjrh z^@J<7tYhN>cMP?J#*ceUtogu1!1%bg#0H@y zvZUx%luVuN$}4>nP0pQb?e-7ATnm^DD0>&VlozvK6mxb^OP&^cA-*h<$Jw^7>`13? zL$NsAkSi9WUw|(mKiZXcG8t zK#4FW^6ybPPtSSIv!fj;%+b@Q99R?m_yBe(;;a0i;VFBciRSpX{-Mi`%dmi3DcvCx3MU(?Z`SDhnE88Z*jVDfZiNk@LI&JJ&s@8n1|H@5?x082mq}-@<=iE8QrcqZ6(Pk0D-Y;9pl+ zwj`}nM;=b=zUbWVKodJ31;`3TOxNRk6Odou%Oo0|F?SxjhwI2N+c?dQmUrC-51Apr zGx4J(b|0R5b|#&@|K^-N_>&u6;4yCbl$t>gC;4Q1?7+?QQ8OjwrLgT}w2Z50`&zob z#dUs%SE3dli$xHXor!O_B1i7q4y(Y&u2OXFY4)z3{Evx!~zIUU!JW(AU5sdcYIP1CZiIPieHV&xlnR+950~p4l z3rys=y4L+2OayipN4BGn_AC|y*D!Tq*bB<3o%g95;CX3l*3v2C%pa*ST4T-;aM!ft zlJSCCSGLW}Gg8ypvN8g}Pbqt&V}-TL@;W{t@m6bz2n9UN*2@W=Bq{qIi>a+u0uNX? z?>d%VA2+GrzPz{Gdq3@#)vz3g`U{1L>zBjp^7@|~*9;1oUfs@r@Vew4u5D3MwLSW* zER^w1^@`dOfGW)Cmen zmcBnB(5$6g)ljy#_4S#@oTp{4dg&{yRiN=V-*>Bh#fMFzHUPffbB>0}j=!%=qFh`b zUHvZc{Ofm-`x|^|IlSV=D|b)kc%>V1in(KKS3vTd`f>OlDG_ig9P ztVp#>lv+(Fz_?#DPbb_V%ltnMfe^BjcflipWnWA~d57M(mA>Ga&_`M4mScJz<_BKOo((fm(CizQPe?D&8j zL^;H-{)iP`vQ(PUolqgOZTqc7NPp$PB3Q)w(ZTKCVU&qDEUMq3GQ~6zgif zusEY$_V@YxJfQm}l=5`<4R7v)L0{CD2yUfd62r;s!oo1npk+Gnw!I6yf>-=6`j^eY z!^U*A+{2??wuZrhBFg+O+p{QfCAWIXkr98UCBEnCyNMZLZb;EDp6(4>R|DJ!rtYU? z{i&Ym71iomzWCMPmf=)#U$Da=x}UeGVMWN+_Wctnl*1Q#JyGM8rZiqLe16f9B-n}( zb64O2WAOTHvM%byt(}2(WL_e#yJ65cyUJ&l{%cXyi(UqGMK`tOJ=J~8*(e8N`&lo+ zkcIO8bh@leUAhK+jl{|Q$sb?vuk)zr+96}!*>(-=-y^zw_N!KKTSG#OsqV5xnp_IzP&?_NHv@xEIXaEltYbSOG;T?|@A zaQJEJQ)rIABVfJMl|&~S*l?j-xNx(?Uu0;b7$tR+l9DDs*7C!GG?V5}(Qy}Fr|=4Y zr9Ug8F$@F?`iFM{Uwsj3()_a`IUjOP>C_pYehK%RTRxMq1Ed%n1Nm#*`s*Mfqu)&T z!sc?9yngdWd5td)>*=X7JCL89JfBi3rsMBrxOH+=3Le~+Ls8|DlI!62iL=*2p{QuG zvlF}Bkf1c#p!sq?10#lUj(|Jfmi@Gp^~!594=Rqxs!2`byC#29F-72e`-_us8!?*^ zs+-%A)YrhhoqEm!)<$#vRBeYo+Wf1YsC{AQROf>#Z19-ZQG+w|$zFj%-^NORkI<%DSf2zXC>^H431yvxcyyA78L
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

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   = 512     # 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 512 tensors
+Not valid error circuits: 14 out of 512
+
+
+
+
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(1e2)                 # 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: 100
+
+
+
+
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 1 1 2] 
+tensor([[ 2,  2,  0,  0,  0,  0,  2,  1,  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, -2,  1,  0,  0, -2,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0, -2,  1,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  1,  0,  0,  0,  0],
+        [-2,  0,  1,  0,  0, -2,  0,  0,  0,  0,  0,  2,  2,  1,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  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,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
+        [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, -2,  0,  0, -2,  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 2 1 1 1 2]``    SRV is: [1, 1, 1, 1, 2, 1, 1, 1, 2]
+
+
+
+
+

+
+
+
+
+

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 100
+
+
+

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 (47, 77, 512) on cuda approx. 0.007 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   = 512     # 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 512 tensors
+Not valid error circuits: 6 out of 512
+
+
+
+
tuned_acc = infer_srv.get_srv_accuracy(srv_list, srv)
+print(f"Accuracy on requested {len(srv)} qubit SRV={srv}: \n - with a model trained only on 3 to 8 qubits qcs: {acc:.2f} \n - 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 only on 3 to 8 qubits qcs: 0.02 
+ - and with fine-tuning on 9 qubit qcs: 0.08
+
+
+ + +
+ + 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..718c2fa --- /dev/null +++ b/examples/editing_and_masking.html @@ -0,0 +1,1298 @@ + + + + + + + + + +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 10 correct distinct solutions.
+
+
+

Compare: initial circuit

+
+
init_qc.draw("mpl")
+
+
C:\Users\Flo\miniconda3\envs\genqcPUSH\Lib\site-packages\qiskit\visualization\circuit\matplotlib.py:266: FutureWarning: The default matplotlib drawer scheme will be changed to "iqp" in a following release. To silence this warning, specify the current default explicitly as style="clifford", or the new default as style="iqp".
+  self._style, def_font_ratio = load_style(self._style)
+
+
+
+
+

+
+
+
+
+

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 14 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..2911dde --- /dev/null +++ b/examples/hello_circuit.html @@ -0,0 +1,1121 @@ + + + + + + + + + +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,  1,  0,  0, -2,  1,  2,  0,  3,  3,  3,  3,  3,  3,  3],
+         [ 1,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3],
+         [ 0, -2,  0,  1,  0,  0,  0, -2,  2,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  1,  2,  0,  0, -2,  3,  3,  3,  3,  3,  3,  3]],
+
+        [[ 0,  0,  2,  2,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0, -2,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  0,  0,  0,  2,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 1,  0,  0,  0,  0,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3],
+         [ 0,  1, -2,  0, -2,  3,  3,  3,  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.875
+
+
+

Finally plot some of the circuits:

+
+
fig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)
+for qc,is_srv,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_srv==srv else 'NOT correct'}, is SRV = {is_srv}")
+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..4efdf10 --- /dev/null +++ b/examples/unitary_compilation.html @@ -0,0 +1,1254 @@ + + + + + + + + + +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..8a5fca4 --- /dev/null +++ b/index.html @@ -0,0 +1,1099 @@ + + + + + + + + + + +genQC - genQC · Generative Quantum Circuits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

genQC · Generative Quantum Circuits

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

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

+

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, _, srv_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 {srv_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 libraries: 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..689d553c4b7e0b06e15890342671bb697b5c01de GIT binary patch literal 12490 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 + + + + + + + + +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..98e3455 --- /dev/null +++ b/inference/infer_gate_hist.html @@ -0,0 +1,952 @@ + + + + + + + + + +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..d9de503 --- /dev/null +++ b/inference/infer_misc.html @@ -0,0 +1,958 @@ + + + + + + + + + +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..f2a5873 --- /dev/null +++ b/inference/infer_srv.html @@ -0,0 +1,1138 @@ + + + + + + + + + +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..1746faa --- /dev/null +++ b/metrics.html @@ -0,0 +1,1012 @@ + + + + + + + + + +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..099f547 --- /dev/null +++ b/models/config_model.html @@ -0,0 +1,944 @@ + + + + + + + + + +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..b106f90 --- /dev/null +++ b/models/frozen_open_clip.html @@ -0,0 +1,1118 @@ + + + + + + + + + +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..4208da4 --- /dev/null +++ b/models/layers.html @@ -0,0 +1,1120 @@ + + + + + + + + + +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..a77c046 --- /dev/null +++ b/models/unet_qc.html @@ -0,0 +1,1031 @@ + + + + + + + + + +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..de41cdc --- /dev/null +++ b/models/unitary_encoder.html @@ -0,0 +1,955 @@ + + + + + + + + + +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..97236c5 --- /dev/null +++ b/pipeline/diffusion_pipeline.html @@ -0,0 +1,941 @@ + + + + + + + + + +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..e74d054 --- /dev/null +++ b/pipeline/diffusion_pipeline_special.html @@ -0,0 +1,961 @@ + + + + + + + + + +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..6c8d778 --- /dev/null +++ b/pipeline/pipeline.html @@ -0,0 +1,959 @@ + + + + + + + + + +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..7229d98 --- /dev/null +++ b/platform/qcircuit_dataset_construction.html @@ -0,0 +1,1178 @@ + + + + + + + + + +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..c6ff15e --- /dev/null +++ b/platform/qcircuit_evaluation.html @@ -0,0 +1,970 @@ + + + + + + + + + +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..30211ba --- /dev/null +++ b/platform/qcircuit_metrics.html @@ -0,0 +1,988 @@ + + + + + + + + + +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..5706547 --- /dev/null +++ b/platform/qcircuit_util.html @@ -0,0 +1,998 @@ + + + + + + + + + +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..72fe58f --- /dev/null +++ b/platform/simulation/qcircuit_sim.html @@ -0,0 +1,1203 @@ + + + + + + + + + +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
+                0x7FC36F331A80)
+
+

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 zcmdUVbx>R3wl7jhaVSNKODTmyf#U8^idLW$cPSFwU5Z?@C zypIcfcAbQW0binSin?xZ!B%dbrY@Ek>ZWc^_Fy-ATQepPOBYvLup|F-k>`9|Og3(A zPOf4+JP!YP!*j5UHP2KjxdiYKJg1i*Trn_6Oz%$2U($uP7#L6KR1{?2d1W6gdi%XQ zYegT=S{T0!BIQlI*Y$ZIlS#qCHL4GXEQvE((cpPm8AWGwpOJ%MKs{%QPs*ETwc2|J z+&`oB?m6RF7MUb!%Y1k&^AZd^b!M7M3+poW{t=$S95hMFj;lHQDDZEM{i-F2Eh+Zxdr8Bh%AE z3=|Z4dLC{7H$VBwL`6o%$M^r=UkLC3ZCyAE$#-e64a0rALOQJo+$dNM5<(2V6BXNq zfn4t{Z!O$gy;2}M78fl0cdEOq1Ex`R75lm`LdO+6L}TM7^ODysI%Gp+o0M!De?0!q zTwMJ-VUiK12aa?8)Wsk586mC@3Dv^*iY5wb&>#O&-kDGL6BI9tq~oOQ$f3~=n#>@K z6?ovd4W)RJ4Qg$^s@DL&xwAgoyLa7t-j!$h@Y9Q}`yXMr*jxq5xoLWlj|R-$t&b3nr#9c_$Ro47tM+YyBLffT1jB+sQQQ) zn}yx^(@anK*=jF^7HlQ!k}6ObEyg&yO#8bQ2!Wp)PF;3;D_%K!&;?J59wj+%L5b^J zJLtodM>+5(#HYX1@}OjZ7U@%gZOyeK^i@fHXX{mtxk!`+`@Z*%$M>EK0Y))58xw*v%n0nZ57;1K`E?Sx>!bHd>1-t7Qs&G9 z-;8(S4?_*}WTq$IMjVWXHW*Dv(|%L)BESFs;r>Nfucj5>`Ia@c6bePz?~S6Q<&f{^ zKSuosDA(w5%{p(M{eDPv9WP^Q3v0HGRg`Wc>h0}SOXtOGUL4z>ui@b2G+XbBn>+B> z8p-Icwj3T99`3fPNy^P-*mh|hn!K-%Cc4baqgi7Yn0eFM$-908(rZK$jPAsT8c*vay_DXV`F?=`WnQ#rp)ZLLV;-d|My)bUuk#~%L`cJqx)K$1 z2@N0-%Oo-tMy+~uOA`|vf9mXlw`AMgcHZ>G)59LFVH7CEebda7YB?PfXTb5cvU=jt zym+u9aWui>_(@f5HBi_bdQ?R6efj2m(8x6LT9Vu$6rM!F{A)hm&*oMz649&eyAr_?jd@ zes!_~9GZCav|_B{tsJK$$lBLESNfgqyO;6~wBql`RCkRhudElMXxp+?v=Z&s>%MPn zLmYN%rmAIg6BA`@Z8>O#9W8$UdOiAyf`a0>1DgaRF*g@T4|X&wJB=oE_qwe)v3KbLB+AJd z9m^5V;I}4DGY$~7wYA0A*xclE_#+S<6Q?1CY9Na(9A(Qb<_sP;atUlgBfG}aVVBlR zJWnx%xI(Js%OgZ&`hFPBqqn6PwKsDA;Ck^2PiQw-&mJy@>7SD;{`ou#T1lDaCJ~3; zLK(9x=%UhQJIuk}^*5fz#xiNC*IJ-3OW!j1#>T`CRVrcziGh6CQ0f;J_lt^(VyXE; zr2Ma(c7CK`6&m@>G`d<34GjUtQBlEjc6LTRy)9Mjm-S;r{)|GHmo;axk$8e{@=adW z&PWC;a6JOyAY61T&MD_f5x!FOpd(l&UL7&zBO!j zgxj{ecEs^}1eneA5$i~X~qA6_zw=i$vMVyy?B!9#6sm;8Ta^Xtk zYZC8YvF+3?NVUQS*StNim>};k19|=?5H~xuyWG5bkbqksrFgo*MtJV$E-u@D>YnBKpFfg);@31##j>sewgi2>Y97m#W#+wkvOOnR zS$8SF=)7(ve4eBAfl#EA(xO(*O*M2y$jfLp7Cr!92pda^S$;RuQ2>@L$U^RjImfr` zH(bL9n)^BeHG`PwlR!)L4zQrNS<{$i=H?%&%y1T)J*|h5Ic_%CrA_~CPjVSH{Z3{k zR?;PD!tc9z*wwz5PewB-B}W%K^C_8(_eAJ^0t!`khz+xfj2Xyqj|?KXUHI&=nOIM? zX0mFuSLoWr1loo{cvRDNlj2!e9OkDVRo;@)6&>AHn zyX023k`C$F(%#dK?pil3-B`Rfby~-9sQ3cIJ2;8F>G7XaROnf_atq~PUCqmD6hdW` z^P|63k~Z)Yh}Ez93e*kXRe*cc$BX{_M*1LP9*^aC!ccLZ;AAhvD3t0SRfP}hm5d+g z0xtISyi4>{%5b&6fJtg=AHHdKCqz}4)FKo7qi#LU%)SeHN+2jwi#m;%Di-omQ)Dzetzm+(id=FlrQYKjul19nF0APv^yS-}}V%hwUw`71Ff`hohbMl@?!| z6#|4f?N&FZc}uC(9^sijff*clGul-AU9Qb9{VL4=4LvR5{6^0d-pymQ+3R_@-T@K6 z+$18vHq0HbL!L#P*AZoF=r%o)T3TJabX*{@>|Y(@TK8+3uPyY?Z+$yUOz=vbPU-we zzrpW9z_Dcmb8E3CzMTGxF6z>lqeSAt_K9Elojer|N2s(Vl4J5VQLMn*hr6`?{DH%UW!+Nr|W_Fk0W-AzhD1Xe(&TluvRa{)0F6A#KlofY*3I{c*RTLFTk5v_$4RIz^ zR@l&6?Gf?(^D=2s*;=~jl9zK#KoY3lveDmfFR>#Cw zd2Ib(RIOK?1ueiiYD6o3p}fGqqlsBO(EjK8D)bB@>wxW7-`_sW#TmL7!OY#+K75uu zjl}fapz7YOFg*=MRDAqZ9ICt=M&`fr&6Qc|Nu^*ekt)dB*_n_0iCTvvgx~kvp27d` zYcsQ0^b8^p?aSbIBr7K;S2=J0y|56}poe%A*qLLHER}()EO{MWpL9J)7o9*sN=Y** zpkXM_-R|W`{Q-WPUX&)e@b?N~+?-QA)GcxOWi$Bc;cY-XqOBWMTI@ zs02tsV27YonztW!<5u^OUG!A4=)(Y>@n>9%wNkEIYWVp0>3rt6uJADjeCHsbFM9Ff zg^i636B}Fj+}s?7&aPq9aS@^Fu$2PZc_BHao7}UddltuAqWuD{z8)4H_Jw~_+vxg2 z<($$H)8rrxT;m8AUl6_o2Xp>QB-th5;17rOAsv3fM`3`y-j^;Dfa@Quv6ndTmTQPC z=3u~H4C7t`70%%3C>yX97UudC_d0(fVI-DOQc{B2v4;fqM3RL?M3~ofyrsbX5&Oh< zPC#n@^YHl%TA(#IRUn)8d0XCcyT>!-A$+gHIPpg7sk}(U9Ba_DkFl?DVC9UElSr)Z zFObFjSO@pD{Rdk{Cq;)=vbFM$HetQqZ6*C_T(lc8l-ymbPQ32B@5J1;C)Pxgl9a${ zUqb!Hb0xWqTGGS9?u|*K{n~%;lDw@6l-JVY4GcslF}9%WLPF&l_8LzIw$l`6CO9yQ zCm?sOaIf!Nb@@fG;=Tw{r`a&c@$aCZJy}GIcvSY(z^-vKEkpf!qbV>fEG_HAG-PEl zCnN@VnzmV@qoZ}JE%4^&=i9ia5+1ByC#CR(tNTh>!Gue)j7ac^Elq}O;Fvvr)GUUQ3dlQ^GjJT3m45I*U4+xn2;rZ6e_mYXz(< zWbd?Y(4hi&L|eNL=jZe^H{xAmW8*_ADspmid7v2c*Na(ngahxZqdGYm&E~nwiz}n9 zi1FH`vVvJrY%er&8KR;yt8=1uc%a6J6d+ex?A@p0+4`|b;yhc2UO%sn!6yK6%;C9P z86WH_)DsfSzDF|i2c!qB0`ED%*vrX06}1xg)^kg*E}S9D+zQSn(zKA`@gjrK0P0F)P$FEpADmt5fXz@ zHY% z?Q-`zbzRpB`6um=EvN0Q=UO=)(sQM^rVLctq`@J+vyLJ9Xg~L?|L}GzYT_IaaxS40 zs;bYhHN^e?zxsy8_8Z?oq3}|;-|{21>yG(L`vhlUDbL%>DDjs8od&n}>@^BA9L2Vq zLPD@U5z_-5yD}ag-q%1h>i6&8mDb}7fKem5S66P4%hs!1;WvK^r5&6Z5+u*56Qofh z!E*{IFLK|vGiquS8*MA24iihWXg50Ii|IWr`09b6<~{Fu=kX9fC859K{WX@&@_+*PszyTk-8 zd%zr8PKKUIm8mO?adF*KLWU-IUVt+s#pK%^0rbjC(}gNs48NQfH~dH6YafMl=jbOR zSR6LN+D^+EAqyk7=%r!b4C$M_cCY<<2sQsjlT~;0tMlWY65)w$o1Rr0rps*1o0F^X z9tC&Y72`aK?g&~`eD@Ah<6h%JAavL*a(@Gza?}w@P?2BT6+cR;@J@lyQ!`t+z2`JD zZrw@bVz`=4$nTaRE*=+1@uph|C^ehNNpW~xitB|__c9(HF)NoqNHhCbLEt!9ur7Vt zL%R7<{ziy%X>s~?WW0nE^x5~vgdc^*fZFV6!ni-__u0bF*{#LXN2_0x=2TC-pCCQX zA3Cypbp=x{KpJhcp+t7i%BjsHQcrAtAkru-LbG^+>QUP`@0UOr!_sKliZVZ%!tTzA zfV3B<$~>eG?6djj-q*%mf|uoOH%&1P8+JVnL^hNI3`vZmh$G&8k!T&G$9Ey9O53RM zyEUesaJ7i(Ztgi>2|P4{y7m8*zV)T72)Lm3)bz{c@$etG_U1Y5_njf9AnQi^|J66r zL-FzlTEtsZp{@S3XSTVO&Yx3`Z!C?4T-OWG!dqL~tKbt#Mh%{<%$;9v#%VoIW-{T8 z$DcuSt~UIL8#oTi2kpVqEq*jfg*HLK_|v6NPccg4>~f87_{-Z?G|DB=9y$*Gq1G;7 zxMq!p|E~O-Syz3+wO^6CfF_W4({$@VhHRE7ExS(=oTc1#ldzC=*mJg8Zr~cwWr-bE z&{RK`f|PwdC}rf07QXSGQ4;IV?q;n}vzTuRSEF+k7Ig3T-bjg(5ZTlQpb*u9f~4s6 zCvA;>;->RJM_6Oli=VB*4!mz9ZX8B{yS>iO@|=+FfsX|qxAZ!9$#rGPwMY2pu3PwuYqJAN_{#(>FDEM0fyr=^TJ| z_WK)N6%Qm>pmY*+@1w_jW;YaxNZ&}9l6<3g$=!@Elqk7RiSeAyMN)Z)*yWd3!tiNi zT(r3pqDrCGDd%YCQytswSn#o90At{}u9zjq}sB=8L_>r9*9g{EmGGfb2ne!rm*$Xwf9}Yq+K`&zwv-S($KDREME%1iecN%!3 z=ncfLsDhu)TUUc*{aO8vejwqC5L&hN`*IS7d0p)W(pSJMu)G9EM6W07_nP@g0Q8H6cCbhxe5fX$QcKtoyo@+Tl)}utLnE8 zBC57mvA(g2yL>MVia>h^(if~Zimdm^q-_Zb(Hi7n@{s|J8QJbq;ykS*ooU;cmbDLK zwnjlguzIt!*^=bm_5)aGTB>wUi!fp>Nq_lByKxQYpxSovW800DV1(*vqrV0xL?WYW z414dc+VqA?2RgcEP9*Y{i=c_6#ELF&{!F&7gnyvDSRXn2j%*DB`mxCP$g_SaQ7$@j@NjEk8fhp6MNagf3M12=Q7J;b{75bAJh9{IBi~fR!RnP zpAiMLwGAp7inG0aW29hS;Oxs^2pxp{0Bz3{S=StYV>OG4-@jNCP_fAIyWY#4M|ahruH4MuSx(k09y7|^Tm}F*)ktl z)@Yw)x1%XM*gc?3f8oxVcm)U+WD*PNSW61+^)wGtQrQJTM3BMTbXh=2l6F}5bIj{S zQunIK^vvuIRI=6fV)BFq zmiw9DJ31bm6;ldT$fX>wmgNIQ~_o>r^`(te1dA@DEHdDRlbV{yn=u+VMTrK%VvfFjl$4?sO|>eHKedBYTCHGW5-QvSy%bI z(pHU*pH<7U`A6{7ljAoCD zj@%5UHO956A1i@yTkTi}J`s5urlgEb^+R)O=rj%__xm?JJbtmJ#5;aHQtv!igR-xn>s8#lm6JdV|AW{=5#;c9FTLX43X>;jqur%4&1> zI^Q=^|y(h z&o~Ii^RbC$$ec=LNS~xBgnA_^c@w$ChV{daHYfjpdbB_4Q2`i^mEEol{VD;i_NF!=Ta-r658>q!rphe%_`qt#^A?KcK~_#AEJ=|LGH4!NN>2w8Jg#p zIBDwg&e@}k%kMP)lij5BA29rwIw?cYJ8dXHivB<0yZV8tgGp30 z<3o+rYi;e`zdO*XdHaz(Y3T{e=!>udGGatXT!p+t%CVjU#Xjm`d>T%zKsyI#sIXK- z|MDjQsI=3rtE?fV8EKp7rZcmbQantXQB=BDk$2259{Cd!2rNU=R|sg? z>=zoy09G_x)b);G@b>lwcJ?VK6x*;o@_hA{+BSZ7UcX=}|Yy+YcXh z(wY=oI#DUk#J}lrvSLqnbhHdXd&nl?QOM?z_E+#OURY?BM7mW0a?j=&&2Ic#!`BOI z3G*M$=`O!1#yE-4spW{J5Yvm*ifC9^JO`ddS!OHH7bF+Sogcy zDJ<2ii_T{n4nUF-aLnza1nN@ylDr`T6>009wC9i1_YU=%X>p(Uv@-;jlzi$oZj@e3 zTI>rTT{=bIEZF3qVUBWn8|%`j+`SCUaEB?xAAL9Lk<@EG*2nek?e0&x% z$W83Kw=>*Y9b5bR9nD^eWTw#nMqc`%QMVX>0rIMMm57L_)UcV-hGByppv*HeGBEx@ zRq6qP^+Tf@p0NlFt=rOmq)(lD50#WqBz;I@8+C?Q`U+ev87hJG2;Ij+`bj&g6o$R? zAs##5l?eP*`7800p76M>ckn-G(z&FP5`C0MGQf%h;39DRJzTu5J=JTRy6_M)>A*<% zsPgjVk&PIcrl7zK`2)J$bGLdeP*l_wSf9Acd!n3JU`9vR?6$zHOCnc@MeMt}edx-> zfK1v-J;S1J_B2^zA%G$PO?h%^YPIval2RNEz*W6|O-3Sdgn_ZMvomL3uLF18o?s3* z&02Pv)_(8pSJnt{kSw`>Zc?4wV2172>pU6Dw`of}1LO4!0zO}xpNaD)h2v}?nhtD& z1PK-qN7N69ho$}FOvc+mUg{3m66v(toC`H}NXIVh#NyP0#*`cffv+PO{1JxD9)hj8 zX=%y;8{gZjq}dA%ceS)+BWKrm%*7R(X5=$icoyyTc1jCb7$pia8 zhedyj5h9o0Pl_zulZq4~TU%oo#`V_FAU14rTV3f4B?RbXX8BKvnVCb8WUSlJLK5I{ z91}M;7lXwmB^kV?Sl8zV>!Bo4`M~4`ipzMT)J?@%I@vcN3@V_J@ydzRKx(el7MD%V z%zF7Z`F$06=Eq%U$D!R!-s$5*WQ=z>5gS_-FgMVbz^Dlfn_OOA_Vo5vnRH^Ma_i5y zB`>{6oSmI@?IsegH0{Ps*xDe(7ua$hQOG};ICf{#Jh;`gJbuYioaBpJTR^l&CwuO93Bu%NlEGH>ocpF|Mlw^ z6X)*rQW9}QD978Ml@@~!mi&>6KUqD=_=_uq4r}}`_EN!}H1l{@@xk}Tubk_>HP}n% zaTp!YC{qr00-{f+*Bw2k_cj)OO24DyJ3P{v87e}@M>#p_z{JbU`dl|$9q~s3EG7++ zfBzH4DEknJy#TDzg1Xwf*?r%BmxW(0}$U=VOjT47YJHb9noNqjfLQZ$yctePa_ z6qpjhN>HuRaP?8O7iu^%pw7WJrtFB9TQ3KjGABL+vHHlr^U5#zTb5p)DB63mOyv-f z>9T%yMBFEOobDK0ra5NROnBk|tHh!cMee`wp^-k&j__K47_FNSasvWb;9G+@V2gxv!R8O#G^p-|%dDoJCk$vV zMBMRe`+qj?#)~4g?^wM5tFg3FL#c$j?O*7>M!v95bxr;`xmNT)N#5OYqW_1Jb13QW 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..850bc7b --- /dev/null +++ b/scheduler/scheduler.html @@ -0,0 +1,938 @@ + + + + + + + + + +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..9720cfe --- /dev/null +++ b/scheduler/scheduler_ddim.html @@ -0,0 +1,952 @@ + + + + + + + + + +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..2897909 --- /dev/null +++ b/scheduler/scheduler_ddpm.html @@ -0,0 +1,952 @@ + + + + + + + + + +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..09b0a87 --- /dev/null +++ b/search.json @@ -0,0 +1,1247 @@ +[ + { + "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')", + "crumbs": [ + "paper-arxiv", + "Examples", + "Generate a circuit" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Examples", + "Generate a circuit" + ] + }, + { + "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, 1, 0, 0, -2, 1, 2, 0, 3, 3, 3, 3, 3, 3, 3],\n [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3],\n [ 0, -2, 0, 1, 0, 0, 0, -2, 2, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 1, 2, 0, 0, -2, 3, 3, 3, 3, 3, 3, 3]],\n\n [[ 0, 0, 2, 2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, -2, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 1, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n [ 0, 1, -2, 0, -2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]]])", + "crumbs": [ + "paper-arxiv", + "Examples", + "Generate a circuit" + ] + }, + { + "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.875\n\n\nFinally plot some of the circuits:\n\nfig, axs = plt.subplots(2, 4, figsize=(18,5), constrained_layout=True)\nfor qc,is_srv,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_srv==srv else 'NOT correct'}, is SRV = {is_srv}\")\nplt.show()", + "crumbs": [ + "paper-arxiv", + "Examples", + "Generate a circuit" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Examples", + "Editing and masking of circuits" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Examples", + "Editing and masking of circuits" + ] + }, + { + "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\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 10 correct distinct solutions.\n\n\nCompare: initial circuit\n\ninit_qc.draw(\"mpl\")\n\nC:\\Users\\Flo\\miniconda3\\envs\\genqcPUSH\\Lib\\site-packages\\qiskit\\visualization\\circuit\\matplotlib.py:266: FutureWarning: The default matplotlib drawer scheme will be changed to \"iqp\" in a following release. To silence this warning, specify the current default explicitly as style=\"clifford\", or the new default as style=\"iqp\".\n self._style, def_font_ratio = load_style(self._style)\n\n\n\n\n\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\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()", + "crumbs": [ + "paper-arxiv", + "Examples", + "Editing and masking of circuits" + ] + }, + { + "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\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 14 correct distinct solutions.\n\n\nLet’s plot them. Mask:\n\nplot_mask()\n\n\n\n\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\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()", + "crumbs": [ + "paper-arxiv", + "Examples", + "Editing and masking of circuits" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Config dataset" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Quantum circuit dataset" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Cached quantum circuit dataset" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Config model" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Config model" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Encoder for unitaries" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Encoder for unitaries" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Conditional qc-UNet" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Conditional qc-UNet" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Conditional qc-UNet" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Conditional qc-UNet" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Scheduler", + "DDPMScheduler" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Scheduler", + "DDIMScheduler" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Metrics" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Pipeline", + "Diffusion Pipeline Special" + ] + }, + { + "objectID": "pipeline/pipeline.html", + "href": "pipeline/pipeline.html", + "title": "Pipeline", + "section": "", + "text": "Basic PyTorch pipeline for general training.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Pipeline", + "Pipeline" + ] + }, + { + "objectID": "pipeline/pipeline.html#helper", + "href": "pipeline/pipeline.html#helper", + "title": "Pipeline", + "section": "Helper", + "text": "Helper", + "crumbs": [ + "paper-arxiv", + "Lib", + "Pipeline", + "Pipeline" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Pipeline", + "Pipeline" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference gate distribution" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference gate distribution" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference miscellaneous functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference miscellaneous functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference miscellaneous functions" + ] + }, + { + "objectID": "config_loader.html", + "href": "config_loader.html", + "title": "Config loader", + "section": "", + "text": "Code using omegaconf to handle IO.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Config loader" + ] + }, + { + "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]}", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Config loader" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Config loader" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit evaluation" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit evaluation" + ] + }, + { + "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).", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit dataset construction" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit dataset construction" + ] + }, + { + "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\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\n\n\n\n\nGraph states dataset\n\n#place all h on all bist then only cz", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit dataset construction" + ] + }, + { + "objectID": "platform/qcircuit_metrics.html", + "href": "platform/qcircuit_metrics.html", + "title": "Quantum circuit metrics", + "section": "", + "text": "Norms for unitary compilation.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit metrics" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit metrics" + ] + }, + { + "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]]", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit utils" + ] + }, + { + "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]]", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Quantum circuit utils" + ] + }, + { + "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\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\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 0x7FC36F331A80)\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%", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Simulation", + "Qiskit: quantum circuit simulation" + ] + }, + { + "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\n\n\n\n'Opti: svr=[1, 1, 1] num_gates=8'\n\n\n\n\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 0x7FC36F331A80)\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%", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Simulation", + "Qiskit: quantum circuit simulation" + ] + }, + { + "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}\\]$$", + "crumbs": [ + "paper-arxiv", + "Lib", + "Platform", + "Simulation", + "Qiskit: quantum circuit simulation" + ] + }, + { + "objectID": "util.html", + "href": "util.html", + "title": "Util", + "section": "", + "text": "Miscellaneous util code.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Util" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Util" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Util" + ] + }, + { + "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]", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Util" + ] + }, + { + "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\n\n\n\n\nsource\n\n\nlatents_to_pil\n\n latents_to_pil (latents:torch.Tensor, channels=None)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Util" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference SRV functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Inference", + "Inference compilation functions" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Pipeline", + "Diffusion Pipeline" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Release notes" + ] + }, + { + "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]\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n 2 & 2 & 2\\\\\n\\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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Miscellaneous functions", + "Printing functions" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Scheduler", + "Scheduler" + ] + }, + { + "objectID": "index.html", + "href": "index.html", + "title": "genQC · Generative Quantum Circuits", + "section": "", + "text": "Code repository for generating quantum circuits with diffusion models. [Paper] [Demo]", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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, _, srv_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 {srv_list[0]}\")\nqc_list[0].draw(\"mpl\", style=\"clifford\")\n\nis SRV [1, 1, 1, 2, 2]\n\n\n\n\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", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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 libraries: 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.", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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}", + "crumbs": [ + "paper-arxiv", + "genQC · Generative Quantum Circuits" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Transformers" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Transformers" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Transformers" + ] + }, + { + "objectID": "models/layers.html", + "href": "models/layers.html", + "title": "Layers", + "section": "", + "text": "Common model layers.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Layers" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Layers" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Layers" + ] + }, + { + "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])", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Layers" + ] + }, + { + "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>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Frozen OpenCLIP" + ] + }, + { + "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>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Frozen OpenCLIP" + ] + }, + { + "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)", + "crumbs": [ + "paper-arxiv", + "Lib", + "Models", + "Frozen OpenCLIP" + ] + }, + { + "objectID": "dataset/dataset_helper.html", + "href": "dataset/dataset_helper.html", + "title": "Dataset helper functions", + "section": "", + "text": "Some comonly used functions for datasets.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Dataset helper functions" + ] + }, + { + "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]))", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Dataset helper functions" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Dataset helper functions" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Lib", + "Dataset", + "Mixed cached dataset" + ] + }, + { + "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.", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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'>]", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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 = 512 # 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 512 tensors\nNot valid error circuits: 14 out of 512\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", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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(1e2) # 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: 100\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 1 1 2] \ntensor([[ 2, 2, 0, 0, 0, 0, 2, 1, 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 [ 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, -2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0],\n [-2, 0, 1, 0, 0, -2, 0, 0, 0, 0, 0, 2, 2, 1, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 2, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, -2, 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 2 1 1 1 2]`` SRV is: [1, 1, 1, 1, 2, 1, 1, 1, 2]\n\n\n\n\n\n\n\n\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 100\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\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 (47, 77, 512) on cuda approx. 0.007 GB\n[INFO]: Generated cache", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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\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)", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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 = 512 # 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 512 tensors\nNot valid error circuits: 6 out of 512\n\n\n\ntuned_acc = infer_srv.get_srv_accuracy(srv_list, srv)\nprint(f\"Accuracy on requested {len(srv)} qubit SRV={srv}: \\n - with a model trained only on 3 to 8 qubits qcs: {acc:.2f} \\n - 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]: \n - with a model trained only on 3 to 8 qubits qcs: 0.02 \n - and with fine-tuning on 9 qubit qcs: 0.08", + "crumbs": [ + "paper-arxiv", + "Examples", + "SRV demo-dataset and fine-tune" + ] + }, + { + "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", + "crumbs": [ + "paper-arxiv", + "Examples", + "Compile unitaries" + ] + }, + { + "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]", + "crumbs": [ + "paper-arxiv", + "Examples", + "Compile unitaries" + ] + }, + { + "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\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\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)", + "crumbs": [ + "paper-arxiv", + "Examples", + "Compile unitaries" + ] + }, + { + "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\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)", + "crumbs": [ + "paper-arxiv", + "Examples", + "Compile unitaries" + ] + } +] \ 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..285e444 --- /dev/null +++ b/site_libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2078 @@ +/*! + * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/) + * Copyright 2019-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */ + +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") 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-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-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.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-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.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-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-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::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::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-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::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::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-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-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-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-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-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-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-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-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-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-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-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-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-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-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"; } +.bi-alphabet-uppercase::before { content: "\f2a5"; } +.bi-alphabet::before { content: "\f68a"; } +.bi-amazon::before { content: "\f68d"; } +.bi-arrows-collapse-vertical::before { content: "\f690"; } +.bi-arrows-expand-vertical::before { content: "\f695"; } +.bi-arrows-vertical::before { content: "\f698"; } +.bi-arrows::before { content: "\f6a2"; } +.bi-ban-fill::before { content: "\f6a3"; } +.bi-ban::before { content: "\f6b6"; } +.bi-bing::before { content: "\f6c2"; } +.bi-cake::before { content: "\f6e0"; } +.bi-cake2::before { content: "\f6ed"; } +.bi-cookie::before { content: "\f6ee"; } +.bi-copy::before { content: "\f759"; } +.bi-crosshair::before { content: "\f769"; } +.bi-crosshair2::before { content: "\f794"; } +.bi-emoji-astonished-fill::before { content: "\f795"; } +.bi-emoji-astonished::before { content: "\f79a"; } +.bi-emoji-grimace-fill::before { content: "\f79b"; } +.bi-emoji-grimace::before { content: "\f7a0"; } +.bi-emoji-grin-fill::before { content: "\f7a1"; } +.bi-emoji-grin::before { content: "\f7a6"; } +.bi-emoji-surprise-fill::before { content: "\f7a7"; } +.bi-emoji-surprise::before { content: "\f7ac"; } +.bi-emoji-tear-fill::before { content: "\f7ad"; } +.bi-emoji-tear::before { content: "\f7b2"; } +.bi-envelope-arrow-down-fill::before { content: "\f7b3"; } +.bi-envelope-arrow-down::before { content: "\f7b8"; } +.bi-envelope-arrow-up-fill::before { content: "\f7b9"; } +.bi-envelope-arrow-up::before { content: "\f7be"; } +.bi-feather::before { content: "\f7bf"; } +.bi-feather2::before { content: "\f7c4"; } +.bi-floppy-fill::before { content: "\f7c5"; } +.bi-floppy::before { content: "\f7d8"; } +.bi-floppy2-fill::before { content: "\f7d9"; } +.bi-floppy2::before { content: "\f7e4"; } +.bi-gitlab::before { content: "\f7e5"; } +.bi-highlighter::before { content: "\f7f8"; } +.bi-marker-tip::before { content: "\f802"; } +.bi-nvme-fill::before { content: "\f803"; } +.bi-nvme::before { content: "\f80c"; } +.bi-opencollective::before { content: "\f80d"; } +.bi-pci-card-network::before { content: "\f8cd"; } +.bi-pci-card-sound::before { content: "\f8ce"; } +.bi-radar::before { content: "\f8cf"; } +.bi-send-arrow-down-fill::before { content: "\f8d0"; } +.bi-send-arrow-down::before { content: "\f8d1"; } +.bi-send-arrow-up-fill::before { content: "\f8d2"; } +.bi-send-arrow-up::before { content: "\f8d3"; } +.bi-sim-slash-fill::before { content: "\f8d4"; } +.bi-sim-slash::before { content: "\f8d5"; } +.bi-sourceforge::before { content: "\f8d6"; } +.bi-substack::before { content: "\f8d7"; } +.bi-threads-fill::before { content: "\f8d8"; } +.bi-threads::before { content: "\f8d9"; } +.bi-transparency::before { content: "\f8da"; } +.bi-twitter-x::before { content: "\f8db"; } +.bi-type-h4::before { content: "\f8dc"; } +.bi-type-h5::before { content: "\f8dd"; } +.bi-type-h6::before { content: "\f8de"; } +.bi-backpack-fill::before { content: "\f8df"; } +.bi-backpack::before { content: "\f8e0"; } +.bi-backpack2-fill::before { content: "\f8e1"; } +.bi-backpack2::before { content: "\f8e2"; } +.bi-backpack3-fill::before { content: "\f8e3"; } +.bi-backpack3::before { content: "\f8e4"; } +.bi-backpack4-fill::before { content: "\f8e5"; } +.bi-backpack4::before { content: "\f8e6"; } +.bi-brilliance::before { content: "\f8e7"; } +.bi-cake-fill::before { content: "\f8e8"; } +.bi-cake2-fill::before { content: "\f8e9"; } +.bi-duffle-fill::before { content: "\f8ea"; } +.bi-duffle::before { content: "\f8eb"; } +.bi-exposure::before { content: "\f8ec"; } +.bi-gender-neuter::before { content: "\f8ed"; } +.bi-highlights::before { content: "\f8ee"; } +.bi-luggage-fill::before { content: "\f8ef"; } +.bi-luggage::before { content: "\f8f0"; } +.bi-mailbox-flag::before { content: "\f8f1"; } +.bi-mailbox2-flag::before { content: "\f8f2"; } +.bi-noise-reduction::before { content: "\f8f3"; } +.bi-passport-fill::before { content: "\f8f4"; } +.bi-passport::before { content: "\f8f5"; } +.bi-person-arms-up::before { content: "\f8f6"; } +.bi-person-raised-hand::before { content: "\f8f7"; } +.bi-person-standing-dress::before { content: "\f8f8"; } +.bi-person-standing::before { content: "\f8f9"; } +.bi-person-walking::before { content: "\f8fa"; } +.bi-person-wheelchair::before { content: "\f8fb"; } +.bi-shadows::before { content: "\f8fc"; } +.bi-suitcase-fill::before { content: "\f8fd"; } +.bi-suitcase-lg-fill::before { content: "\f8fe"; } +.bi-suitcase-lg::before { content: "\f8ff"; } +.bi-suitcase::before { content: "\f900"; } +.bi-suitcase2-fill::before { content: "\f901"; } +.bi-suitcase2::before { content: "\f902"; } +.bi-vignette::before { content: "\f903"; } diff --git a/site_libs/bootstrap/bootstrap-icons.woff b/site_libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..dbeeb055674125ad78fda0f3d166b36e5cc92336 GIT binary patch literal 176200 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

2+UrCZlNAp`)&G@jg{m-!Dn; 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πR(XEyYV3az{Ot$Y*f93mYq^Lnu{qbYp!X!TA9&! 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 F?~0aZ)an2L 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..d8de654 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.css @@ -0,0 +1,12 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * 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,[data-bs-theme=light]{--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-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--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: #343a40;--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: #343a40;--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: 52, 58, 64;--bs-primary-text-emphasis: #570e06;--bs-secondary-text-emphasis: #666666;--bs-success-text-emphasis: #1c3b03;--bs-info-text-emphasis: #013e53;--bs-warning-text-emphasis: #57340c;--bs-danger-text-emphasis: #3e1c40;--bs-light-text-emphasis: #444;--bs-dark-text-emphasis: #444;--bs-primary-bg-subtle: #f7d3cf;--bs-secondary-bg-subtle: white;--bs-success-bg-subtle: #daeace;--bs-info-bg-subtle: #ccebf5;--bs-warning-bg-subtle: #f7e6d2;--bs-danger-bg-subtle: #ebdaec;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #bbb;--bs-primary-border-subtle: #f0a79f;--bs-secondary-border-subtle: white;--bs-success-border-subtle: #b5d49c;--bs-info-border-subtle: #9ad7ec;--bs-warning-border-subtle: #f0cda5;--bs-danger-border-subtle: #d7b5d9;--bs-light-border-subtle: #ddd;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--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: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fcfcfc;--bs-body-bg-rgb: 252, 252, 252;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #ddd;--bs-secondary-bg-rgb: 221, 221, 221;--bs-tertiary-color: rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #d9230f;--bs-link-color-rgb: 217, 35, 15;--bs-link-decoration: underline;--bs-link-hover-color: #ae1c0c;--bs-link-hover-color-rgb: 174, 28, 12;--bs-code-color: #7d12ba;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(217, 35, 15, 0.25);--bs-form-valid-color: #469408;--bs-form-valid-border-color: #469408;--bs-form-invalid-color: #9b479f;--bs-form-invalid-border-color: #9b479f}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #e87b6f;--bs-secondary-text-emphasis: white;--bs-success-text-emphasis: #90bf6b;--bs-info-text-emphasis: #67c2e2;--bs-warning-text-emphasis: #e8b579;--bs-danger-text-emphasis: #c391c5;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #2b0703;--bs-secondary-bg-subtle: #333333;--bs-success-bg-subtle: #0e1e02;--bs-info-bg-subtle: #001f29;--bs-warning-bg-subtle: #2b1a06;--bs-danger-bg-subtle: #1f0e20;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #821509;--bs-secondary-border-subtle: #999999;--bs-success-border-subtle: #2a5905;--bs-info-border-subtle: #015c7c;--bs-warning-border-subtle: #824f13;--bs-danger-border-subtle: #5d2b5f;--bs-light-border-subtle: #444;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #e87b6f;--bs-link-hover-color: #ed958c;--bs-link-color-rgb: 232, 123, 111;--bs-link-hover-color-rgb: 237, 149, 140;--bs-code-color: white;--bs-border-color: #444;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #90bf6b;--bs-form-valid-border-color: #90bf6b;--bs-form-invalid-color: #e87b6f;--bs-form-invalid-border-color: #e87b6f}*,*::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;border:0;border-top:1px solid;opacity:.25}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;color:var(--bs-heading-color)}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]{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:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #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:var(--bs-code-color);background-color:#f8f9fa;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fcfcfc;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em}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:rgba(33,37,41,.75);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]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}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]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-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:rgba(33,37,41,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.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-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #212529;--bs-table-bg: #fcfcfc;--bs-table-border-color: #dee2e6;--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;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) 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-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #f7d3cf;--bs-table-border-color: #debeba;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: white;--bs-table-border-color: #e6e6e6;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #daeace;--bs-table-border-color: #c4d3b9;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #ccebf5;--bs-table-border-color: #b8d4dd;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #f7e6d2;--bs-table-border-color: #decfbd;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #ebdaec;--bs-table-border-color: #d4c4d4;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #fff;--bs-table-border-color: #e6e6e6;--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:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #343a40;--bs-table-border-color: #484e53;--bs-table-striped-bg: #3e444a;--bs-table-striped-color: #fff;--bs-table-active-bg: #484e53;--bs-table-active-color: #fff;--bs-table-hover-bg: #43494e;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.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:rgba(33,37,41,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fcfcfc;background-clip:padding-box;border:1px solid #dee2e6;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{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(33,37,41,.75);opacity:1}.form-control:disabled{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:#f8f9fa;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:#ddd}.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:focus{outline: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 + calc(1px * 2));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-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:.25rem}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fcfcfc;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dee2e6;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-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:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.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-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;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{--bs-form-check-bg: #fcfcfc;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dee2e6;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]{--bs-form-check-bg-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 10 3 3 6-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]{--bs-form-check-bg-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;--bs-form-check-bg-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{cursor:default;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{--bs-form-switch-bg: 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");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);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{--bs-form-switch-bg: 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;--bs-form-switch-bg: 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-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-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}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.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;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;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}@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:#f8f9fa;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;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;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}@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:#f8f9fa;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:rgba(33,37,41,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(33,37,41,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;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,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-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-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fcfcfc;border-radius:.25rem}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#ddd}.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,.input-group>.form-floating{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,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.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:#f8f9fa;border:1px solid #dee2e6;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:.5rem}.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):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{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):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{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:calc(1px*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{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:#469408;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.73.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"]{--bs-form-select-bg-icon: 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.73.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");padding-right:4.125rem;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-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.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:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{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:#9b479f;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"]{--bs-form-select-bg-icon: 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");padding-right:4.125rem;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-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.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:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #212529;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);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;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);box-shadow:var(--bs-btn-box-shadow);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:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-box-shadow),var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-box-shadow),var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color);box-shadow:var(--bs-btn-active-shadow)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-active-shadow),var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity);box-shadow:none}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #d9230f;--bs-btn-border-color: #d9230f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #b81e0d;--bs-btn-hover-border-color: #ae1c0c;--bs-btn-focus-shadow-rgb: 223, 68, 51;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ae1c0c;--bs-btn-active-border-color: #a31a0b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d9230f;--bs-btn-disabled-border-color: #d9230f}.btn-secondary{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #469408;--bs-btn-border-color: #469408;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3c7e07;--bs-btn-hover-border-color: #387606;--bs-btn-focus-shadow-rgb: 98, 164, 45;--bs-btn-active-color: #fff;--bs-btn-active-bg: #387606;--bs-btn-active-border-color: #356f06;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #469408;--bs-btn-disabled-border-color: #469408}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #029acf;--bs-btn-border-color: #029acf;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0283b0;--bs-btn-hover-border-color: #027ba6;--bs-btn-focus-shadow-rgb: 40, 169, 214;--bs-btn-active-color: #fff;--bs-btn-active-bg: #027ba6;--bs-btn-active-border-color: #02749b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #029acf;--bs-btn-disabled-border-color: #029acf}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #d9831f;--bs-btn-border-color: #d9831f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #b86f1a;--bs-btn-hover-border-color: #ae6919;--bs-btn-focus-shadow-rgb: 223, 150, 65;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ae6919;--bs-btn-active-border-color: #a36217;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d9831f;--bs-btn-disabled-border-color: #d9831f}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #9b479f;--bs-btn-border-color: #9b479f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #843c87;--bs-btn-hover-border-color: #7c397f;--bs-btn-focus-shadow-rgb: 170, 99, 173;--bs-btn-active-color: #fff;--bs-btn-active-bg: #7c397f;--bs-btn-active-border-color: #743577;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #9b479f;--bs-btn-disabled-border-color: #9b479f}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d9d9d9;--bs-btn-hover-border-color: #cccccc;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: #cccccc;--bs-btn-active-border-color: #bfbfbf;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #52585d;--bs-btn-hover-border-color: #484e53;--bs-btn-focus-shadow-rgb: 82, 88, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5d6166;--bs-btn-active-border-color: #484e53;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}.btn-outline-default{--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #d9230f;--bs-btn-border-color: #d9230f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d9230f;--bs-btn-hover-border-color: #d9230f;--bs-btn-focus-shadow-rgb: 217, 35, 15;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d9230f;--bs-btn-active-border-color: #d9230f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #d9230f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d9230f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #469408;--bs-btn-border-color: #469408;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #469408;--bs-btn-hover-border-color: #469408;--bs-btn-focus-shadow-rgb: 70, 148, 8;--bs-btn-active-color: #fff;--bs-btn-active-bg: #469408;--bs-btn-active-border-color: #469408;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #469408;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #469408;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #029acf;--bs-btn-border-color: #029acf;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #029acf;--bs-btn-hover-border-color: #029acf;--bs-btn-focus-shadow-rgb: 2, 154, 207;--bs-btn-active-color: #fff;--bs-btn-active-bg: #029acf;--bs-btn-active-border-color: #029acf;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #029acf;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #029acf;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #d9831f;--bs-btn-border-color: #d9831f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d9831f;--bs-btn-hover-border-color: #d9831f;--bs-btn-focus-shadow-rgb: 217, 131, 31;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d9831f;--bs-btn-active-border-color: #d9831f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #d9831f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d9831f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #9b479f;--bs-btn-border-color: #9b479f;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #9b479f;--bs-btn-hover-border-color: #9b479f;--bs-btn-focus-shadow-rgb: 155, 71, 159;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9b479f;--bs-btn-active-border-color: #9b479f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #9b479f;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #9b479f;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343a40;--bs-btn-hover-border-color: #343a40;--bs-btn-focus-shadow-rgb: 52, 58, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343a40;--bs-btn-active-border-color: #343a40;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #343a40;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343a40;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #d9230f;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #ae1c0c;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #ae1c0c;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 223, 68, 51;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.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,.dropup-center,.dropdown-center{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{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #212529;--bs-dropdown-bg: #fcfcfc;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #212529;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-link-hover-bg: #d9230f;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #d9230f;--bs-dropdown-link-disabled-color: rgba(33, 37, 41, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius);box-shadow:var(--bs-dropdown-box-shadow)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.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:var(--bs-dropdown-spacer)}.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:var(--bs-dropdown-spacer)}.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:var(--bs-dropdown-spacer)}.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:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);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;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #d9230f;--bs-dropdown-link-disabled-color: #adb5bd;--bs-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{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.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:calc(1px*-1)}.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{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: 0.9rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #d9230f;--bs-nav-link-hover-color: #ae1c0c;--bs-nav-link-disabled-color: #bbb;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:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;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:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(217,35,15,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #eeeeee;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #ddd #ddd #eeeeee;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fcfcfc;--bs-nav-tabs-link-active-border-color: #eeeeee #eeeeee transparent;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #d9230f}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.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{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 0.5rem;--bs-navbar-color: rgba(0, 0, 0, 0.6);--bs-navbar-hover-color: rgba(61, 10, 4, 0.8);--bs-navbar-disabled-color: rgba(0, 0, 0, 0.75);--bs-navbar-active-color: #3d0a04;--bs-navbar-brand-padding-y: 0.7125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(0, 0, 0, 0.6);--bs-navbar-brand-hover-color: #3d0a04;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: 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");--bs-navbar-toggler-border-color: rgba(0, 0, 0, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;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:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{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:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.9rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);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.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.9rem;padding-bottom:.9rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.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:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@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 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .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:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.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{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(0, 0, 0, 0.6);--bs-navbar-hover-color: rgba(61, 10, 4, 0.8);--bs-navbar-disabled-color: rgba(0, 0, 0, 0.75);--bs-navbar-active-color: #3d0a04;--bs-navbar-brand-color: rgba(0, 0, 0, 0.6);--bs-navbar-brand-hover-color: #3d0a04;--bs-navbar-toggler-border-color: rgba(0, 0, 0, 0);--bs-navbar-toggler-icon-bg: 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")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: 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")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: #eeeeee;--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fcfcfc;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius);box-shadow:var(--bs-card-box-shadow)}.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:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.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:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@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{--bs-accordion-color: #212529;--bs-accordion-bg: #fcfcfc;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #212529;--bs-accordion-btn-bg: #fcfcfc;--bs-accordion-btn-icon: 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");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23570e06'%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");--bs-accordion-btn-focus-border-color: #ec9187;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(217, 35, 15, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #570e06;--bs-accordion-active-bg: #f7d3cf}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.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,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e87b6f'%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");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e87b6f'%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")}.breadcrumb{--bs-breadcrumb-padding-x: 0.75rem;--bs-breadcrumb-padding-y: 0.375rem;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: 0.25rem;--bs-breadcrumb-divider-color: rgba(33, 37, 41, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(33, 37, 41, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #d9230f;--bs-pagination-bg: #fcfcfc;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #eeeeee;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #fff;--bs-pagination-hover-bg: #d9230f;--bs-pagination-hover-border-color: #d9230f;--bs-pagination-focus-color: #ae1c0c;--bs-pagination-focus-bg: #ddd;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(217, 35, 15, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #d9230f;--bs-pagination-active-border-color: #d9230f;--bs-pagination-disabled-color: #bbb;--bs-pagination-disabled-bg: #ddd;--bs-pagination-disabled-border-color: #eeeeee;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);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:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(1px*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 1px solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #ddd;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #d9230f;--bs-progress-bar-bg: #d9230f;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius);box-shadow:var(--bs-progress-box-shadow)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@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:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #212529;--bs-list-group-bg: #fcfcfc;--bs-list-group-border-color: #eeeeee;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(33, 37, 41, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #f8f9fa;--bs-list-group-action-active-color: #212529;--bs-list-group-action-active-bg: #ddd;--bs-list-group-disabled-color: rgba(33, 37, 41, 0.75);--bs-list-group-disabled-bg: #eeeeee;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #d9230f;--bs-list-group-active-border-color: #d9230f;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.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:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);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:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: 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 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(217, 35, 15, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.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:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(252, 252, 252, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(33, 37, 41, 0.75);--bs-toast-header-bg: rgba(252, 252, 252, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);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:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #fcfcfc;--bs-modal-border-color: #eeeeee;--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #eeeeee;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #eeeeee;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);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% - var(--bs-modal-margin)*2)}.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% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);box-shadow:var(--bs-modal-box-shadow);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.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:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-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,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@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,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@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,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@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,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@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,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@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,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #fcfcfc;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";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;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #fcfcfc;--bs-popover-border-width: 1px;--bs-popover-border-color: #eeeeee;--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #ddd;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #212529;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";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;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius);box-shadow:var(--bs-popover-box-shadow)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.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:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.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%}.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}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #212529;--bs-offcanvas-bg: #fcfcfc;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: #eeeeee;--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.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:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.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:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#000 !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(255, 255, 255, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 255, 255, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(174, 28, 12, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(174, 28, 12, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(255, 255, 255, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 255, 255, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(56, 118, 6, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(56, 118, 6, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(2, 123, 166, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(2, 123, 166, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(174, 105, 25, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(174, 105, 25, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(124, 57, 127, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(124, 57, 127, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(255, 255, 255, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 255, 255, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(42, 46, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 46, 51, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.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}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom: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){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}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !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}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit: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}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y: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-inline-grid{display:inline-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}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.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:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !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}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.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}.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}.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}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap: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-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !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:var(--bs-secondary-color) !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-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !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}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-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-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !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-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.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:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit: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-inline-grid{display:inline-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}.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}.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}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap: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}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit: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-inline-grid{display:inline-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}.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}.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}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap: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}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit: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-inline-grid{display:inline-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}.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}.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}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap: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}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit: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-inline-grid{display:inline-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}.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}.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}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap: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}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit: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-inline-grid{display:inline-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}.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}.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}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap: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-inline-grid{display:inline-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}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #007bff;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #007bff;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #9b479f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #9b479f;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #d9230f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #d9230f;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #d9831f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #d9831f;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #469408;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #469408;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #029acf;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #029acf;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #fff}.bg-default{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #d9230f}.bg-primary{--bslib-color-bg: #d9230f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #fff}.bg-secondary{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-success{--bslib-color-fg: #469408}.bg-success{--bslib-color-bg: #469408;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #029acf}.bg-info{--bslib-color-bg: #029acf;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #d9831f}.bg-warning{--bslib-color-bg: #d9831f;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #9b479f}.bg-danger{--bslib-color-bg: #9b479f;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #fff}.bg-light{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #343a40}.bg-dark{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2950fa;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2950fa;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3e66d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #3e66d9;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d63d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d63d1;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #57589f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #57589f;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #577ea5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #577ea5;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #66979c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #66979c;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #1c859c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #1c859c;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0d9ad5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0d9ad5;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #0187ec;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #0187ec;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3d3bf7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #3d3bf7;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #7b26d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #7b26d1;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #941897;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #941897;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #943e9e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #943e9e;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #594594;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #594594;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3e47e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #3e47e4;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #5d5cc5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #5d5cc5;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #8631c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #8631c0;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ba4397;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ba4397;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #b43965;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #b43965;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #b45f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #b45f6c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #c37862;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #c37862;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #796663;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #796663;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #6a7b9c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #6a7b9c;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5e68b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #5e68b2;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #8b56ba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #8b56ba;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c94294;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c94294;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e2335a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #e2335a;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #e25a60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #e25a60;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f17257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #f17257;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #a76057;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #a76057;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #8c63a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #8c63a7;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #82466f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #82466f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ab1b6a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ab1b6a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c03149;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c03149;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #df2e41;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #df2e41;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #d94915;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #d94915;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #e8620c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e8620c;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #9e500c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #9e500c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #8f6545;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8f6545;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #83535c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #83535c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #828079;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #828079;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ab5573;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ab5573;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c06b52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c06b52;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #df674b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #df674b;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #d95d19;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #d95d19;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e89c15;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e89c15;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #9e8a16;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #9e8a16;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #8f9f4f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8f9f4f;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #838c65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #838c65;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #99a56a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #99a56a;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #d79044;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #d79044;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #f68d3c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f68d3c;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f0820a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #f0820a;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #f0a811;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #f0a811;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #b5af07;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #b5af07;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ab157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #9ab157;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #2a8a6b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #2a8a6b;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #535f66;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #535f66;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #687544;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #687544;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #87723d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #87723d;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #81670b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #81670b;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #818d11;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #818d11;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #90a608;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #90a608;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #37a941;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #37a941;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2b9658;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #2b9658;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #13aac1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #13aac1;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #51959a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #51959a;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #6a8761;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #6a8761;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #6aad67;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #6aad67;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #2fb45e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #2fb45e;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14b6ad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #14b6ad;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #018ee2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #018ee2;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2a63dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2a63dd;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3f79bc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #3f79bc;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5e75b4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5e75b4;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #586a82;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #586a82;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #589189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #589189;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #67aa7f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #67aa7f;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1d987f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #1d987f;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #0eadb9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0eadb9;color:#000}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.bg-blue{--bslib-color-bg: #007bff;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #007bff;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #9b479f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #9b479f;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #d9230f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #d9230f;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #d9831f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #d9831f;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ffc107;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ffc107;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #469408;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #469408;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #029acf;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #029acf;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #fff}.bg-default{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #d9230f}.bg-primary{--bslib-color-bg: #d9230f;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #fff}.bg-secondary{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-success{--bslib-color-fg: #469408}.bg-success{--bslib-color-bg: #469408;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #029acf}.bg-info{--bslib-color-bg: #029acf;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #d9831f}.bg-warning{--bslib-color-bg: #d9831f;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #9b479f}.bg-danger{--bslib-color-bg: #9b479f;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #fff}.bg-light{--bslib-color-bg: #fff;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #343a40}.bg-dark{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2950fa;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2950fa;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3e66d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #3e66d9;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5d63d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5d63d1;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #57589f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #57589f;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #577ea5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #577ea5;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #66979c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #66979c;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #1c859c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #1c859c;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #0d9ad5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0d9ad5;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #0187ec;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bff var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #0187ec;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #3d3bf7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #3d3bf7;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #7b26d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #7b26d1;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #941897;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #941897;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #943e9e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #943e9e;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a35794;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #a35794;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #594594;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #594594;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #3e47e4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #3e47e4;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #5d5cc5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #5d5cc5;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #8631c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #8631c0;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ba4397;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ba4397;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #b43965;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #b43965;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #b45f6c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #b45f6c;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #c37862;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #c37862;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #796663;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #796663;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #6a7b9c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #6a7b9c;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #5e68b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9b479f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #5e68b2;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #8b56ba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #8b56ba;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c94294;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c94294;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #e2335a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #e2335a;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #e25a60;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #e25a60;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f17257;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #f17257;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #a76057;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #a76057;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #8c63a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #8c63a7;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #82466f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #82466f;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ab1b6a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ab1b6a;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c03149;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c03149;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #df2e41;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #df2e41;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #d94915;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #d94915;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #e8620c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e8620c;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #9e500c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #9e500c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #8f6545;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8f6545;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #83535c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9230f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #83535c;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #828079;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #828079;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #ab5573;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #ab5573;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c06b52;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #c06b52;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #df674b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #df674b;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #d95d19;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #d95d19;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #e89c15;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #e89c15;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #9e8a16;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #9e8a16;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #fff;--bslib-color-bg: #8f9f4f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #8f9f4f;color:#fff}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #838c65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #d9831f var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #838c65;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #99a56a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #99a56a;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c27a65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c27a65;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #d79044;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #d79044;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #f68d3c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f68d3c;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #f0820a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #f0820a;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #f0a811;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #f0a811;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #b5af07;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #b5af07;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #a6c441;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6c441;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #9ab157;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ffc107 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #9ab157;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #2a8a6b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #2a8a6b;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #535f66;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #535f66;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #687544;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #687544;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #87723d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #87723d;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #81670b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #81670b;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #818d11;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #818d11;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #90a608;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #90a608;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #fff;--bslib-color-bg: #37a941;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #37a941;color:#fff}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2b9658;background:linear-gradient(var(--bg-gradient-deg, 140deg), #469408 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #2b9658;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #13aac1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #13aac1;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #51959a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #51959a;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #6a8761;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #6a8761;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #6aad67;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #6aad67;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #79c65d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #79c65d;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #2fb45e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #2fb45e;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #14b6ad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #029acf var(--bg-gradient-end, 180%)) #14b6ad;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #018ee2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #007bff var(--bg-gradient-end, 180%)) #018ee2;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #2a63dd;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #2a63dd;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3f79bc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #9b479f var(--bg-gradient-end, 180%)) #3f79bc;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #5e75b4;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #5e75b4;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #586a82;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #d9230f var(--bg-gradient-end, 180%)) #586a82;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #589189;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #d9831f var(--bg-gradient-end, 180%)) #589189;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #67aa7f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #ffc107 var(--bg-gradient-end, 180%)) #67aa7f;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #1d987f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #469408 var(--bg-gradient-end, 180%)) #1d987f;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #0eadb9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #029acf var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #0eadb9;color:#000}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}:root{--bslib-value-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bslib-value-box-border-width-auto-yes: 0;--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fcfcfc);--bslib-value-box-border-color-default: var(--bs-card-border-color, #eeeeee);color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}:root{--bslib-page-sidebar-title-bg: #5cb4c1;--bslib-page-sidebar-title-color: #000}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, #eeeeee);--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, #eeeeee);--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@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-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{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{order:3}.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}.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;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.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-item-text{width:100%}.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-title-breadcrumbs{display:none}.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-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.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}.no-decor{text-decoration:none}.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}.breadcrumb-item{line-height:1.2rem}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}.quarto-banner nav.quarto-secondary-nav{background-color:#5cb4c1;color:rgba(0,0,0,.6);border-top: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}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li: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}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.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-DetachedSearchButtonQuery{display:none}.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}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@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 #dee2e6;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 + calc(1px * 2))}.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 #dee2e6 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:#dee2e6;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:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;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:42px}.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 #dee2e6}.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(222,226,230,.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 #dee2e6;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-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:#db766b !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#fff !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:#59a343 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:#359ed0 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:#a59212 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:#c48282 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#fff !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#343a40 !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #409caa;border-bottom:solid 1px #409caa}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#43a3b1}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:rgba(0,0,0,.6)}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#212529}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid #eee}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#212529}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px #e6e6e6;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid #eee}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid #eee}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#fcfcfc;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#fcfcfc;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#212529}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#fcfcfc}.tableFloatingHeaderOriginal{background-color:#fcfcfc;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}.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:#fff;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:rgba(52,58,64,.25);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;word-break:keep-all}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 .body pre code{white-space:pre-wrap}div.quarto-post a{color:#212529;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";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}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.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: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}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{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.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-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}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.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}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +* we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since +* that seems to be what ansi_up emits +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-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:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}: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 .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.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;opacity:.999}.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;opacity:.999}.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;opacity:.999}.page-columns .column-body-outset-right table{background:#fcfcfc}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fcfcfc}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.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;opacity:.999}.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;opacity:.999}.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;opacity:.999}.page-columns .column-page-left table{background:#fcfcfc}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.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;opacity:.999}.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;opacity:.999}.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;opacity:.999}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.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;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}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:not(.footnotes):not(.sidebar),.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:not(.footnotes):not(.sidebar),.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:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.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{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{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,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#5a6570}.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):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){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:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.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 pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;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.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}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.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 .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#d9230f}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.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-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #ddd;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.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 .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.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 .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.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}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{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}.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: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 .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.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){padding-bottom:.5rem;margin-bottom:0}.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{background-color:#5cb4c1;color:rgba(0,0,0,.6)}.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}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.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 .footnotes ol{margin-left:.5em}#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{--bs-btn-color: #595959;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #595959;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 230, 230, 230;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-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:1em}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:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",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:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",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;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}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;opacity:.999}.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;opacity:.999}.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;opacity:.999}.page-columns .column-screen-inset-right table{background:#fcfcfc}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fcfcfc}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fcfcfc}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.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;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #d3d8dc;border-bottom:1px solid #d3d8dc}.table>thead{border-top-width:0;border-bottom:1px solid #9ba5ae}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}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{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{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 a{color:rgba(0,0,0,.6)}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:rgba(0,0,0,.6)}.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}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}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}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}#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:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#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 p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#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 .keywords>p,#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 .keywords>p:last-of-type,#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 .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-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:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.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-style:solid;border-top-width:1px 0 0 0}.navbar.bg-primary{border-color:#bd1e0d !important}.navbar.bg-dark{border-color:#2d3238 !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(#40464b, #343a40 6%, #31373c);filter:none;border:1px solid #2d3238}.btn-light,.btn-light:hover{background-image:linear-gradient(white, #fff 6%, #f0f0f0);filter:none;border:1px solid #dedede}.btn-outline-secondary{color:#bbb;border-color:#bbb}.btn-outline-secondary:hover{color:#fff;background-color:#bbb}.text-secondary{color:#6c757d !important}legend,label{color:inherit}.breadcrumb{border:1px solid #dedede}.pagination .page-link:hover{text-decoration:none}.badge.bg-secondary,.badge.bg-light{color:#343a40} diff --git a/site_libs/bootstrap/bootstrap.min.js b/site_libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..e8f21f7 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},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(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=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?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();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?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);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})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=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 O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.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.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=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 n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).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(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.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(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{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=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={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];me(s)&&ue(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}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(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 Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(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 Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={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=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(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,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-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)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(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=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={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:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(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,We(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 ze={passive:!0};const Re={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=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(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?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,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]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={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,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.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"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(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 ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={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=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(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})}},li={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=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].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,[Vt,qt].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}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={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=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(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 fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.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)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["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:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body: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()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.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]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_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(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); +//# 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}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.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")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,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..e3726d7 --- /dev/null +++ b/site_libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.7 - 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(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=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),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(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 b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(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 D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(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 N(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 I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(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+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);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}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){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,[P,L].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}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(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?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,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]=J(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 le={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,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(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,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=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 E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={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,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=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,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(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=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={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=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,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)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(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 ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={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=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(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})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,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 > *, .margin-caption, .aside" + ); + + 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; + if (top < lastBottom) { + const marginChildStyle = window.getComputedStyle(marginChild); + const marginBottom = parseFloat(marginChildStyle["marginBottom"]); + const margin = lastBottom - top + marginBottom; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["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(); + if ( + window.document.body.getBoundingClientRect().width < 990 && + isReaderMode() + ) { + quartoToggleReader(); + } + }, 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..f6a53b1 --- /dev/null +++ b/site_libs/quarto-nav/quarto-nav.js @@ -0,0 +1,289 @@ +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 dashboardOffset() { + const dashboardNavEl = window.document.getElementById( + "quarto-dashboard-header" + ); + if (dashboardNavEl !== null) { + return dashboardNavEl.clientHeight; + } else { + return 0; + } + } + + function updateDocumentOffsetWithoutAnimation() { + updateDocumentOffset(false); + } + + function updateDocumentOffset(animated) { + // set body offset + const topOffset = headerOffset(); + const bodyOffset = topOffset + footerOffset() + dashboardOffset(); + 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(() => { + setTimeout(updateDocumentOffsetWithoutAnimation, 0); + }); + 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].dataset.originalHref = 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, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-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..ae0063a --- /dev/null +++ b/site_libs/quarto-search/autocomplete.umd.js @@ -0,0 +1,3 @@ +/*! @algolia/autocomplete-js 1.11.1 | 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){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(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 l(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)||c(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 c(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);ne.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}function x(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 t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(D(n),[{headers:u}]))}else e.apply(void 0,[t].concat(D(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",B(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",B(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",B(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",B(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=k(t,A);return[].concat(D(e),D(q(N(N({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function F(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function L(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function M(e){return function(e){if(Array.isArray(e))return H(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 H(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 H(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 H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&z({onItemsChange:r,items:n,insights:a,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function l(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:W({clickAnalytics:!0},e?{userToken:e}:{}),insights:a}})}u("addAlgoliaAgent","insights-plugin"),l(),u("onUserTokenChange",l),u("getUserToken",null,(function(e,t){l(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,i=e.source;L(t)&&o({state:n,event:r,insights:a,item:t,insightsEvents:[W({eventName:"Item Selected"},j({item:t,items:i.getItems().filter(L)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;L(t)&&i({state:r,event:o,insights:a,item:t,insightsEvents:[W({eventName:"Item Active"},j({item:t,items:n.getItems().filter(L)}))]})}))},onStateChange:function(e){var t=e.state;c({state:t})},__autocomplete_pluginOptions:e}}function J(e,t){var n=t;return{then:function(t,r){return J(e.then(Y(t,n,e),Y(r,n,e)),n)},catch:function(t){return J(e.catch(Y(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),J(e.finally(Y(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function X(e){return J(e,{isCanceled:!1,onCancelList:[]})}function Y(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Z(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function ee(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 te(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:d(),plugins:o,initialState:he({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(ye(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(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={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:O,onResolve:O};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=te(te({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return m(e)})).then((function(e){return e.map((function(e){return he(he({},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)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:he({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)})}function Se(e){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Se(e)}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 Pe(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}var He,Ve,We,Ke=null,Qe=(He=-1,Ve=-1,We=void 0,function(e){var t=++He;return Promise.resolve(e).then((function(e){return We&&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 et(e){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(e)}var tt=["props","refresh","store"],nt=["inputElement","formElement","panelElement"],rt=["inputElement"],ot=["inputElement","maxLength"],it=["source"],ut=["item","source"];function at(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 lt(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 ft(e){var t=e.props,n=e.refresh,r=e.store,o=st(e,tt);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 lt({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},st(e,nt))},getRootProps:function(e){return lt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,lt({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(lt({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(lt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},st(e,rt))},getLabelProps:function(e){return lt({htmlFor:ie(t.id,"input"),id:ie(t.id,"label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&$e(lt({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 l=a.maxLength,c=void 0===l?512:l,s=st(a,ot),f=oe(r.getState()),p=function(e){return Boolean(e&&e.match(ue))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return lt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?ie(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label"),value:r.getState().completion||r.getState().query,id:ie(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){$e(lt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=Ze(e,Ge);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=oe(o.getState()),t=n.environment.document.getElementById(ie(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},a=function(){var e=oe(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,l=e.source;l.onActive(Xe({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?$e(Xe({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 l=oe(o.getState()),c=l.item,s=l.itemInputValue,f=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:c,state:o.getState()});$e(Xe({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(lt({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:O,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return lt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=st(n,it);return lt({role:"listbox","aria-labelledby":ie(t.id,"label"),id:ie(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,u=e.source,a=st(e,ut);return lt({id:ie(t.id,"item-".concat(i.__autocomplete_id),u),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=oe(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(lt({event:e,item:u,itemInputValue:a,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),l=u.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():$e(lt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(lt({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function pt(e){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(e)}function mt(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 vt(e){for(var t=1;t=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},l=0;l"===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[l][c+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 kt=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 xt(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 Nt(){for(var e=arguments.length,t=new Array(e),n=0;n2&&(u.children=arguments.length>3?Jt.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 sn(e,u,r,o,null)}function sn(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?++Yt:o};return null==o&&null!=Xt.vnode&&Xt.vnode(i),i}function fn(e){return e.children}function pn(e,t){this.props=e,this.context=t}function mn(e,t){if(null==t)return e.__?mn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&Zt.sort(nn));yn.__r=0}function bn(e,t,n,r,o,i,u,a,l,c){var s,f,p,m,v,d,y,b=r&&r.__k||on,g=b.length;for(n.__k=[],s=0;s0?sn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=b[s])||p&&m.key==p.key&&m.type===p.type)b[s]=void 0;else for(f=0;f=0;t--)if((n=e.__k[t])&&(r=On(n)))return r;return null}function _n(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||un.test(t)?n:n+"px"}function Sn(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||_n(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||_n(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Pn:jn,i):e.removeEventListener(t,i?Pn:jn,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function jn(e){return this.l[e.type+!1](Xt.event?Xt.event(e):e)}function Pn(e){return this.l[e.type+!0](Xt.event?Xt.event(e):e)}function wn(e,t,n,r,o,i,u,a,l){var c,s,f,p,m,v,d,y,b,g,h,O,_,S,j,P=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(c=Xt.__b)&&c(t);try{e:if("function"==typeof P){if(y=t.props,b=(c=P.contextType)&&r[c.__c],g=c?b?b.props.value:c.__:r,n.__c?d=(s=t.__c=n.__c).__=s.__E:("prototype"in P&&P.prototype.render?t.__c=s=new P(y,g):(t.__c=s=new pn(y,g),s.constructor=P,s.render=Cn),b&&b.sub(s),s.props=y,s.state||(s.state={}),s.context=g,s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),null==s.__s&&(s.__s=s.state),null!=P.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=an({},s.__s)),an(s.__s,P.getDerivedStateFromProps(y,s.__s))),p=s.props,m=s.state,s.__v=t,f)null==P.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==P.getDerivedStateFromProps&&y!==p&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,g),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(s.props=y,s.state=s.__s,s.__d=!1),s.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),h=0;h0&&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(xn);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Tn(e){return function(e){if(Array.isArray(e))return qn(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 qn(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 qn(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 qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Fn=new RegExp(/\w/i),Ln=/&(amp|quot|lt|gt|#39);/g,Un=RegExp(Ln.source);function Mn(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 Fn.test((o=i.value)&&Un.test(o)?o.replace(Ln,(function(e){return Rn[e]})):o)||a!==u?i.isHighlighted:a}function Hn(e){return Hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hn(e)}function Vn(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 Wn(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 ur(e){return function(e){if(Array.isArray(e))return ar(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 ar(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 ar(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 ar(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(y.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:br,options:e}}))})),j=f(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),P={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},w={setActiveItemId:S.value.setActiveItemId,setQuery:S.value.setQuery,setCollections:S.value.setCollections,setIsOpen:S.value.setIsOpen,setStatus:S.value.setStatus,setContext:S.value.setContext,refresh:S.value.refresh,navigator:S.value.navigator},I=m((function(){return Ct.bind(O.value.renderer.renderer.createElement)})),A=m((function(){return Gt({autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:P,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function E(){Ht(A.value.panel,{style:_.value?{}:yr({panelPlacement:O.value.renderer.panelPlacement,container:A.value.root,form:A.value.form,environment:O.value.core.environment})})}function D(e){j.current=e;var t={autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:A.value,panelContainer:_.value?A.value.detachedContainer:O.value.renderer.panelContainer,propGetters:P,state:j.current,renderer:O.value.renderer.renderer},r=!b(e)&&!y.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;Vt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),Vt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),Ht(o.label,{hidden:"stalled"===u.status}),Ht(o.loadingIndicator,{hidden:"stalled"!==u.status}),Ht(o.clearButton,{hidden:!u.query}),Ht(o.detachedSearchButtonQuery,{textContent:u.query}),Ht(o.detachedSearchButtonPlaceholder,{hidden:Boolean(u.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,l=t.dom,c=t.panelContainer,s=t.propGetters,f=t.state,p=t.components,m=t.renderer;if(f.isOpen){c.contains(l.panel)||"loading"===f.status||c.appendChild(l.panel),l.panel.classList.toggle("aa-Panel--stalled","stalled"===f.status);var v=f.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var l=e.source,c=e.items;return m.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":l.sourceId},l.templates.header&&m.createElement("div",{className:u.sourceHeader},l.templates.header({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})),l.templates.noResults&&0===c.length?m.createElement("div",{className:u.sourceNoResults},l.templates.noResults({components:p,createElement:m.createElement,Fragment:m.Fragment,source:l,state:f,html:a})):m.createElement("ul",i({className:u.list},s.getListProps(n({state:f,props:r.getListProps({source:l})},o))),c.map((function(e){var t=r.getItemProps({item:e,source:l});return m.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:f,props:t},o))),l.templates.item({components:p,createElement:m.createElement,Fragment:m.Fragment,item:e,state:f,html:a}))}))),l.templates.footer&&m.createElement("div",{className:u.sourceFooter},l.templates.footer({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})))})),d=m.createElement(m.Fragment,null,m.createElement("div",{className:u.panelLayout},v),m.createElement("div",{className:"aa-GradientBottom"})),y=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:d,state:f,sections:v,elements:y},m),{},{components:p,html:a},o),l.panel)}else c.contains(l.panel)&&c.removeChild(l.panel)}(r,t)}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l();var t=O.value.renderer,n=t.components,r=u(t,gr);g.current=qt(r,O.value.core,{components:Bt(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),c(),S.value.refresh().then((function(){D(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(A.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),A.value.input.focus()):(O.value.core.environment.document.body.removeChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return a((function(){var e=S.value.getEnvironmentProps({formElement:A.value.form,panelElement:A.value.panel,inputElement:A.value.input});return Ht(O.value.core.environment,e),function(){Ht(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?A.value.detachedOverlay:A.value.panel;return _.value&&j.current.isOpen&&k(!0),D(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(A.value.root),function(){e.removeChild(A.value.root)}})),a((function(){var e=p((function(e){D(e.state)}),0);return h.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||E(),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(){h.current=void 0}})),a((function(){var e=p((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?C({}):requestAnimationFrame(E)}),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){A.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(E),function(){}})),n(n({},w),{},{update:C,destroy:function(){l()}})},e.getAlgoliaFacets=function(e){var t=hr({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=Or,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..5f723d7 --- /dev/null +++ b/site_libs/quarto-search/quarto-search.js @@ -0,0 +1,1286 @@ +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 && 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 && 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", + }, + placeholder: language["search-text-placeholder"], + 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 }) { + // If this is a file URL, note that + + // 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, + quartoSearchOptions + ); + }, + }, + }, + ]; + }, + }); + + window.quartoOpenSearch = () => { + setIsOpen(false); + setIsOpen(true); + focusSearchInput(); + }; + + document.addEventListener("keyup", (event) => { + const { key } = event; + const kbds = quartoSearchOptions["keyboard-shortcut"]; + const focusedEl = document.activeElement; + + const isFormElFocused = [ + "input", + "select", + "textarea", + "button", + "option", + ].find((tag) => { + return focusedEl.tagName.toLowerCase() === tag; + }); + + if ( + kbds && + kbds.includes(key) && + !isFormElFocused && + !document.activeElement.isContentEditable + ) { + event.preventDefault(); + window.quartoOpenSearch(); + } + }); + + // 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"); + } + } + + function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; + } + + // 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 = throttle(() => { + // Only do this if we're not detached + // Bug #7117 + // This will happen when the keyboard is shown on ios (resulting in a scroll) + // which then closed the search UI + if (!window.matchMedia(detachedMediaQuery).matches) { + setIsOpen(false); + } + }, 50); + + 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.flatMap((event) => { + // This API limits the number of items per event to 20 + const chunkSize = 20; + const itemChunks = []; + const eventItems = event.items; + for (let i = 0; i < eventItems.length; i += chunkSize) { + itemChunks.push(eventItems.slice(i, i + chunkSize)); + } + // Split the items into multiple events that can be sent + const events = itemChunks.map((items) => { + return { + ...event, + items, + }; + }); + return events; + }); + + for (const event of events) { + insights.viewedObjectIDs(event); + } + }, + }); + 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; +var shownWarning = false; + +// fuse index options +const kFuseIndexOptions = { + keys: [ + { name: "title", weight: 20 }, + { name: "section", weight: 20 }, + { name: "text", weight: 10 }, + ], + ignoreLocation: true, + threshold: 0.1, +}; + +async function readSearchData() { + // Initialize the search index on demand + if (fuseIndex === undefined) { + if (window.location.protocol === "file:" && !shownWarning) { + window.alert( + "Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server." + ); + shownWarning = true; + return; + } + const fuse = new window.Fuse([], kFuseIndexOptions); + + // 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, + quartoSearchOptions +) { + switch (item.type) { + case kItemTypeDoc: + return createDocumentCard( + createElement, + "file-richtext", + item.title, + item.section, + item.text, + item.href, + item.crumbs, + quartoSearchOptions + ); + 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, + crumbs, + quartoSearchOptions +) { + const iconEl = createElement("i", { + class: `bi bi-${icon} search-result-icon`, + }); + const titleEl = createElement("p", { class: "search-result-title" }, title); + const titleContents = [iconEl, titleEl]; + const showParent = quartoSearchOptions["show-item-context"]; + if (crumbs && showParent) { + let crumbsOut = undefined; + const crumbClz = ["search-result-crumbs"]; + if (showParent === "root") { + crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined; + } else if (showParent === "parent") { + crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined; + } else { + crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined; + crumbClz.push("search-result-crumbs-wrap"); + } + + const crumbEl = createElement( + "p", + { class: crumbClz.join(" ") }, + crumbsOut + ); + titleContents.push(crumbEl); + } + + const titleContainerEl = createElement( + "div", + { class: "search-result-title-container" }, + titleContents + ); + + 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", "crumbs"].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; + } + }, + }); +} + +let subSearchTerm = undefined; +let subSearchFuse = undefined; +const kFuseMaxWait = 125; + +async function fuseSearch(query, fuse, fuseOptions) { + let index = fuse; + // Fuse.js using the Bitap algorithm for text matching which runs in + // O(nm) time (no matter the structure of the text). In our case this + // means that long search terms mixed with large index gets very slow + // + // This injects a subIndex that will be used once the terms get long enough + // Usually making this subindex is cheap since there will typically be + // a subset of results matching the existing query + if (subSearchFuse !== undefined && query.startsWith(subSearchTerm)) { + // Use the existing subSearchFuse + index = subSearchFuse; + } else if (subSearchFuse !== undefined) { + // The term changed, discard the existing fuse + subSearchFuse = undefined; + subSearchTerm = undefined; + } + + // Search using the active fuse + const then = performance.now(); + const resultsRaw = await index.search(query, fuseOptions); + const now = performance.now(); + + const results = resultsRaw.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), + crumbs: result.item.crumbs, + }; + }); + + // If we don't have a subfuse and the query is long enough, go ahead + // and create a subfuse to use for subsequent queries + if (now - then > kFuseMaxWait && subSearchFuse === undefined) { + subSearchTerm = query; + subSearchFuse = new window.Fuse([], kFuseIndexOptions); + resultsRaw.forEach((rr) => { + subSearchFuse.add(rr.item); + }); + } + return results; +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..980f7d8 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,147 @@ + + + + https://FlorianFuerrutter.github.io/genQC/examples/hello_circuit.html + 2024-06-13T11:46:15.330Z + + + https://FlorianFuerrutter.github.io/genQC/examples/editing_and_masking.html + 2024-06-13T11:46:15.414Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/config_dataset.html + 2024-06-13T11:46:15.226Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/qc_dataset.html + 2024-06-13T11:46:15.178Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/cached_qc_dataset.html + 2024-06-13T11:46:15.114Z + + + https://FlorianFuerrutter.github.io/genQC/models/config_model.html + 2024-06-13T11:46:15.066Z + + + https://FlorianFuerrutter.github.io/genQC/models/unitary_encoder.html + 2024-06-13T11:46:15.018Z + + + https://FlorianFuerrutter.github.io/genQC/models/unet_qc.html + 2024-06-13T11:46:15.054Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddpm.html + 2024-06-13T11:46:14.998Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler_ddim.html + 2024-06-13T11:46:14.934Z + + + https://FlorianFuerrutter.github.io/genQC/metrics.html + 2024-06-13T11:46:14.110Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline_special.html + 2024-06-13T11:46:14.926Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/pipeline.html + 2024-06-13T11:46:14.850Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_gate_hist.html + 2024-06-13T11:46:14.734Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_misc.html + 2024-06-13T11:46:14.670Z + + + https://FlorianFuerrutter.github.io/genQC/config_loader.html + 2024-06-13T11:46:14.298Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_evaluation.html + 2024-06-13T11:46:14.762Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_dataset_construction.html + 2024-06-13T11:46:14.786Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_metrics.html + 2024-06-13T11:46:14.166Z + + + https://FlorianFuerrutter.github.io/genQC/platform/qcircuit_util.html + 2024-06-13T11:46:14.214Z + + + https://FlorianFuerrutter.github.io/genQC/platform/simulation/qcircuit_sim.html + 2024-06-13T11:46:14.686Z + + + https://FlorianFuerrutter.github.io/genQC/util.html + 2024-06-13T11:46:14.282Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_srv.html + 2024-06-13T11:46:14.922Z + + + https://FlorianFuerrutter.github.io/genQC/inference/infer_compilation.html + 2024-06-13T11:46:14.962Z + + + https://FlorianFuerrutter.github.io/genQC/pipeline/diffusion_pipeline.html + 2024-06-13T11:46:14.878Z + + + https://FlorianFuerrutter.github.io/genQC/RELEASES.html + 2024-06-13T11:45:02.100Z + + + https://FlorianFuerrutter.github.io/genQC/printing.html + 2024-06-13T11:46:14.118Z + + + https://FlorianFuerrutter.github.io/genQC/scheduler/scheduler.html + 2024-06-13T11:46:14.954Z + + + https://FlorianFuerrutter.github.io/genQC/index.html + 2024-06-13T11:46:14.150Z + + + https://FlorianFuerrutter.github.io/genQC/models/transformers.html + 2024-06-13T11:46:15.030Z + + + https://FlorianFuerrutter.github.io/genQC/models/layers.html + 2024-06-13T11:46:15.110Z + + + https://FlorianFuerrutter.github.io/genQC/models/frozen_open_clip.html + 2024-06-13T11:46:15.906Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/dataset_helper.html + 2024-06-13T11:46:15.162Z + + + https://FlorianFuerrutter.github.io/genQC/dataset/mixed_cached_qc_dataset.html + 2024-06-13T11:46:15.418Z + + + https://FlorianFuerrutter.github.io/genQC/examples/dataset_and_finetune.html + 2024-06-13T11:46:15.246Z + + + https://FlorianFuerrutter.github.io/genQC/examples/unitary_compilation.html + 2024-06-13T11:46:15.290Z + + 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..f72780e --- /dev/null +++ b/util.html @@ -0,0 +1,1143 @@ + + + + + + + + + +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 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 Fe*ksA*Uta| literal 0 HcmV?d00001

+ + +
+ + +

*q@167Q>@tAbnf$vmS1 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 R(2FloMM2|P@l*5Q{{@P$$x8qL literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-14-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d79794f7a148d3b7aef2f20f5a7403fe50d263 GIT binary patch literal 32220 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 literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png b/examples/2_unitary_compilation_files/figure-html/cell-16-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba5c08a5cd7e167d7de4b47d3500fe2479b64d6 GIT binary patch literal 30256 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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..ab3c30f3591cdfcd3d055d5855dcc466ea6543ca GIT binary patch literal 29164 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 KIaB)jgZ~2MmliSr literal 0 HcmV?d00001 diff --git a/examples/2_unitary_compilation_files/figure-html/cell-20-output-2.png b/examples/2_unitary_compilation_files/figure-html/cell-20-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..53b59572d06814d7f40c384617ecbc53ffe4352e GIT binary patch literal 21057 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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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ü+4CQcQGowjqGqxuw?AO-5=FEo3QloxcRV-`{(+U=Qgran z@J&^r9>3a)YQ)pjgd~QvaDm9KB{tw{Q|~}#TA@9%;ioISiK9%bDR}?5thUJWuv)VB z6Y*67dMZKlDn)Xr)(Eo@hwuQ=b`xO&#nUct_ymgdxpph#JZ&t#EYnEVGfma@QO5{P zsn0pkn|}90==MExuab+E!vj2G_B+}Ez}s?yG>H&;Yr@$t>t#;Ar&1&lXql!|&R*P} ztIxA}-2J3*o718a=9UJt|3I_s@p#igr_8yPsd~@S{38ZYmD8#WHX(b?2{II)F(y7f zA6<%grtcEP+_=q-#>LU_&8(e!_DoS>p^A}_5sg?lV@IR&*rdZyC(Z@Ta#@2fB`kc0 zlnmSKIg*uq8WKopGO0v}BNctx2=d~*W}dr2@cdrgDFtj&cl+F!*2744K}>40h@9u7 z&h%KFLNc8s{hDrWZlVj=2jMA0WTiBg8~7UbN7)k4!Tf1URuYBoSSsumJ*z}J^O$~J zuxz{HmUDuTp9d*(U$1-kOUk%X1Og__tc5Kmgq)Bq*^cQ=?&@((>e#2hIONm0Uy5YF z=VYkJ6p=W|$J|cQT>>gYlEU_ZIp+~&wJHo+>RBr8)NN-sl!sz`STjF|fNDgQz{j^t z*^Qj%&n@>Pt;4h11d2b>nv46?*vWC?x? z=672;$j|d}`Sn-B!tkCxFU7rPYQvx1N!~m9#D0DpS8q|#_n8G6MRb`%rcS1)RvJd0 zg0j}$JNy@tP&9tGVvGE08}=YOh6?oY|Xi=|FnrdByfp6wjtqG`S{JAon|R{_3>R%VIiK zIrRQlL)F9YADN&3@KdNAqt}$NrDM8E9b==`Q zwwb=Na*5cN)Y$QwJPW?LyXRNAk0PY*Unj^e^6d`uuUWJJ3~UGIMt^{jRyI7xT{z7i zw)2{jEv^ol!|bVo7%e^;Mata|5p62xAcuhjDRkb~>0phU9|orz)kVc?^u{qESJHPi zRgw)Q1j#~XY2wsLWJY!eqlpI0QVo1h8x9(-c}Qd@%jnN2&?)&6NcodMa7qC=JoD-4 z=}`el&UlF~&z#Ru|M~H#A{V;u6~yGwIM<&QFO#984nYVP`_GF9>27h2l$17SdGyuT z+_$nIUP$rp;q`C&GNwkDE!BN=t(Vy7-g`I0%!xGcQLJ@aUzD&RlX?uiHN1CcEW?>! za_^N(WT)PJU}r|qshp@!CD-2*n)a>C{|x&@+^st}TL~TGAI-e}kUc5-d6p&*zpNtA zy)2?_b8ItPplfsYVRJ?RE4rjD`qyNgV>T$$tvK+GRhr47@gfjVpYk8ao~+7V@W{4A z-w(x!AMefTB|K?=`eOaGMR&a#5rt_RO2ZmRnd(>oyA0c++J$&la&#v}^TEAg?K6&l z#QGfM!#ckkrQfZx`)Onv_mY#9i^e?^SU0B3+qCoH-hu+Yp|E4FZq-axXYE>-^A32r zXjABc6dMTEAA*YTC;-uSaHum00y!O^WA4RcRQ*ZT8c?W?OtYlyhgQ4`i4u>oHO|d# zaxG_WK0SDZX@7?gJXS@APPYwY+Ze_;XKzehHkeZR)U772Ja*R|AgP#;wz4RloEbt= zV|gn9%irVh7(=?X%1!-T%F*JKr@`jOXz1l@kdbt%Vmv=KROUoh)*vd-$56)B+TApy z#7ws+wrtRv^fcE$_B`AihYs8aV>lMB%zxxma2x>pZML~xRFd`Rm!b@@Ewdioom)-EE81gLI<8Hyn6N7C)dr{Y``coyh<5_`i9J`kNU+k3-`Qjuy&GRUe(@O=t`vU(= z4gC2p2*m#qO!B`5uKZto>JRSnD`LX@YO;T`-0!ve>QT2zQl|Y2aptzjnMY}EG$C&2 zWgGILS-SG1g0$;V50}=93xZY8@B~{FJuxRQ z0*H~%J1*tGnUWvF%dZv4@OIFtamJZ+`^AwsG`LVsmiR9<$av*A++m8dX(e~G=Rdf10m$p z&%MNT;(&^;I^@2_nluug#5j4IOPtoEAL{^LXz1EQHYy*7UjHW$@x)MjJbj= z)uhL_tq%PGDNsQj<@OmUKfuGV(exbiy4&FUY5c@6` zo4lnwN>JcX@8XbL-RD4tx@z!*r`uNLZd0mUkdO)A6fG`z5exS>#V_3I$28-zn>`AH znWrLIx!tqI7&wxmxD7A30W5Wxuq7mwM<2Tz50I|IXVP}d4SKh^d=MLTMug$g=+J}U#*F45<@IgixIhE z`M=8-`{E@_Oa#prbW$SUFYBd6>>PHWiB+!@JyUGz0UKv~8TujIuI4D6}K;q#Yesqm}{ zpYrol+KU_(!zi!t%1{lTc*(%p5h7ZPy*syKtCEE+5%C(24v*R7xlp3i;KHzZs@cqFC1J4 zKrFsJ$2x65yIGRP|4d^3u3PZy=+)>s&Hzeo`k4NxR_cAeiq3VO`hM(KPRiA!5kNaT z*IRA{h`VHbv-+jtC3=IWE;6SXk=s%A!QxxQM~CAK*ZI?R-7;d|K&3h9ded~^D$_nt zUn|LpcX3}1ZfO%d9<{2da2hz^D|kq@Dg|VQ7(^t+aHehS;~zhq|BbAPe@-R2_-9bpv1iG>h0Uo)WOS+(Xj-AGAA`J7~w&i5*9rATEoqS2BoPW!0T754^4 zaA~0vqrWPKSoEDF`xTaqC~4lE^XY~`OF7Z?PFSEPYE6VQ?XO5JL3|B`;URNfinBMX zY{JyZH%DXO{jq|plm;Amu=BaCDAE94QMO0&YeyQjqSzFUa{ZA2F*&b#m8VvzIbF|= zb>p=+kD7ZT?yu+1e>u}w^NJ`+bS>TxmD~3$B>%`wm0RsHfQ1+g^f@9IroLHWlFNk) zF$r&eOKcSO`Ur=$U#bS`ytn8f(PI3Jx#f$|Fc4YjP#5q z1Jx%62m@oyPX?*c*zNf6ZDsM$W+===!nB4MN9x3WT(?!IY@qU)J;F}*WhT4(j>dRc zZC5dDm!WCTmtt?!znrgdh-Tz0BDEHGy z61Mcl@|XPiUTmgKWI;te(S_?AyEOwb58+o}!E0#ognUkAS(WdelylbZl`&OFu45sI#76ZU(h^Gz(&6 zbaXsd_E{>ZNAv)U8?dqhamh-z(etOt@rjDq)+ueVqc-#A<#WJP?euVEP6r!Kt>A>SbFptUC4rm{krjB*;zN?V`NBmn&$4nj9;lO`uJLKWVYN zhWL+uJY8m~OhQ5eOg?sI z2i|&(WI@Z#Et$Y8gZr`KqE#f%#nk>*?E+TJb`%zMWm`wwb}Ycl>@LcALH(miq)~QW zy=b**k)M!BcbfFEarcza%&E;Z@7-ZQtAM@v{#SDL7h6yd z$>U+4VV+~jjqbcqucW)|oIBPy?TUCLDJjs+YKle7(Dul1=al=Um%R7kGg)Xj$z)-% zL7Q#(3sw?m>6MSeYE8OP)_M#D+vVe|ov}~qeL2+yXVazl)48!2$;DmT+x}S-Y2WmY z5r?@0uXK{nj`7J6~^j!CW>U*OSP% zs(!tDz})7*Z-zAxz1N27A#i#tJp;|jm5pbZx?4i%`E~t83P4D&NkAzIpu`%KI~-4o z_3Bl`0P@g@p|GPr1wN7FQ*@p$%i&Z+R~jBMqvG zTe?SkWfg2JOsp>Agcuk^o|Y=%^+buK(o}!-)n8zXe=o3`8^j3nbWUi5a2{~Xo}RrX z^!4i1gK4dGJnNRmKFmzFv;shv{Pd|KpOs8)W(#%cQ2i)boN52~LqXMKo@bnkzI1j} zzn94l*~;eaEjs5)O_*EyblRO~`Ay00Ofe6j9rk4zDmRUHb|p=jr{ zHM9I%Cn8#~iT>;jz>P1CH?slkW_h|h$Brciz@!pDuN$wmUx=)2cH7axCMWYAf7AGd z&!o`Lb)48W4%Cdz^~d)woLco!dvTZ5b`kG|8c(+v!abvfoDq+aJN(51l@96Io#ei+ zQ91etBzdG%7jaNNqb1JOn!cesx55V{7ysLeKjwVeCg)Au5i|( z$I$7Sz3S~9o}$WP@Ab0sTBs1q_Oe51P?>iy;>jhS&Y$|!#dhQg;R8UhfjKO`hN!%H z_3mwdQf?=icX9U&4`7^1ePyfBPXmm*MizE%O=JDK^2**w6$p$MCN0T zG8cOEu48@t{q+ZkOCMMf18A`eMQ-m|ucDxN{8>U>J+qT++Yz^uE&jC#NWq-xe=ny2 zMm?adNwQLTi!;#CkQW0!=ao6UKy3UY)IKG}T6%;_Q&IDJ;I7G|S{ zlvxVvQ{B3w@3Dp@a8eG*2~^;7nK~aOnL6umA6D*2+`vu|zh)_0U2=PyC*eLr>m0}v z0sGAg%kK*j+%)JkvAI=bs;tyY%w!-z$6TAYG!gKqtn?CqDyZ5yReH3*muYeBWrP!y zIzSzjZVOaZHPeNC(WQd|)qFIcN=D|suU^dTtR9+>jivnjj-qly4}4tT4b~;YdTs*^5(1iO>4Y-hC}+|tv^)ikl6@jmSE)*0Dvi-8H(`PQhJwPp! zx43ja`%ZZmvFz6P`ugR)le(bg1lde-_r~!0Czp~FarnIRW&r?&QErVLPPJP$@OTyE}FlF!1cddj9D?WqtIo*5H=-b zSjcb0sWR%`e#N~OrK{8|GaoufKghz(aw_3xzQGv6F2@)f$QOq8E=BrwK3 ztP5KGvyn4kBjc9SFhD64ikoJ2;AQRi3-1%h0&B|1RQ6ybHEc$s72rFUra^Afy^3CG zPv%qRl;YDiw@BZio`ob>(@b;42d}>%i^2^Is#Th9S!$=05gWu@b^hv&aSRfz@@eyKxLVS zp|r9vK-oq!9?y5(TW7vC4o5zu2DXV*Ie7FQ) z-P;D{T~8nly9FgR?T;Bca~hVh`0lKCv+)k5z4<{CHK6!%>OT;4OiD`edYbpZZsd|= zkikf4S=(u%C4q{hyRx*6sAR;xzZBq=_(ts8;fY>S(|t*Sg^vv1lusMUQ!bfir25pZ z)X{t8iNJX@|Bk-e&a1O7SO(@pZBSY-N;`cPg1_=XenMD^L62f;Szvv6uBFd@A zOqy_x#{9MadyIoz!&X16R=7C8e^QIuYK2B)8qx?`c4)JnT55c+wn+ZrOl~B-nOZ_Q z4M3}vk5Qv7<{qsgittSLm6|ycP@kyLFChz!>YBn18Y|WPUHc%zvI{f0)V3xD`aG5g zKEo;+D7KYg?TbTwKvNy5fS}vaCvUk^SwN_wlfQ5CAUNkE^XmSw6xhV-ox0WEA(oF^aCun2I9@+D_V7ekn$ zkb<=h2?RKKW7cX3HMc1;Bk?2^F341z7z?sEFK4*13Pv;b?Q82d`L+0ALVpo+=M-PV zZ>j^XS0E*ljJCv+MQ+AfdT#LkV9mp1FRa?oki`*ePHJLGVO}D`+xunm8m{qI4*rvg zD!6&n_deU1OJqDMG{WYKd3EZIaW4mT1|2PlY#qf4it(ll5v7sJQrrDxRQLU_ z00L+X!>Vuoc~wc;$BZWN^QA#}`ZYnI%lVVXoo`mY#7rYCehcJgF5B^f9m|-*E7od`J+;d6j?-5~`=CH9lL)6f_T{SnK+fiOC*E9+ zJT*EaIuWYi|&FS(XvN3PM1Biuw}w|LT&t&%<`DR57j!(Z~crUp7qxy|KpI=B(vByKdKKkRdl!pbu@^6D2FlSoV(|pY68R*K%T`c^rBQ1i>6+o*v-iPx zC_BOrp)QN($B8uMoHZ$3b5Cq8J~bUGYJrd_AYQr5=W5tLfgnX9OAXS-Mz(JATT~*2 zFfqy%KXY1kof5IU;7+h7fG)-i)P3{}qRyPr4#R~IOA9B!qa+0}9w#$u^B*;8bl%gf zB)T*xq9>}6ix2c$NNP)cZG2?RnnYcT0Fe0UGJtllxfNskQM<6ef7Nw_MM)IbanUBKvtdjFmr$9ZhB$M(EVIY@|a(}RdaG9Fdw;r<~eF*dC_HR4< zKYCKBkfhf5=_huP0MifOj_V2665`kE*03Js*4B{4(n*svY_vh-yR^E7hi}KqoXDiz zM|@_kuO2UCXpSDoi<-~Ectd-K%bAdq^O*ie@22r@XN+LFKqKVz9_Nr%s-YSM{$5l# zSvgT~fR!te`P9cIeDf<|FG&aeDjUb2 z`Tmskl6F_%XCntb)Tgfx!?b?cQM!`aTuIZdY{&oMGCMF#!_ft~zaRUb|8UPmg(^V| zonQGQ?kccQ{=ufSHo<$#AAVx^W$66TpvoRxO;hU8ELA!s+4PgFY>AI2WF0}9cC`Of z=?_7DOPSTHc#e{Ds!w(&JY#bSS=V{=ry_0hc>*vIT1+A|(eT(2^6_A2GaHukeTp?+ zQWdK&oFp>xHB0wC^|FHMWDs4(LqM!{B9!c!fxytr%YZd>e2NF5S|bW^>!)2p6SJ|i z&8Y$smR+P<&%#%bQ=}pIvR^|&W)_teHyjTW-g>;h|E`yH#qDF7CG9l&deNh(;M4UG znn%uI;*D#M4?sCBAP~^%A4WfBqI3`-2@P}mx)^P-j&AqvmjcNz9aOxJ3q-!M?Pw9U zI{!!0-~V^&k$P^JK-{IlKE9Et%8k8R`3IJ3xx)+g#ediIii6Mns-RGHRxg{e(+A*6 zij&D$T$z3WkoVnsLx=8Wr?8Ofp-HzK^h>S+h1$b}VUc||nqqJ%hHsfDce8N8unQ!b@eIIQ1)3n{BSah7kg`=d-mp&~^lxnTb)G4Q7lEu&@#;OCtXJcQslx=vSQ69bR^=qB| z6xgEw$Vpl8YOf(Eq1F1KIRO+cfONKTBx5a7e%M-KsME{M5+m%bG2Jo(ANuQQ1fP-M zOpTn*erH4dwk9gFN%;v3s1%fmQxMLYR5?BL~f<=#nOY1*^1=!v=S`#;J*(0gPbI#?=z(aX$#EiW~==-h%k(#<4{$oYC zCWVy}s9R~}{bnGQsI!y;0Uzx}?uVHzZU@1r+8!dlj`c7*J^4q9d`3-&Ud4eG$kj^W z2pEeYzuSuj#~X|7Dd<%zsCQmx0NKG35R6r!i9nHPTll#GZ}BV>=jGo7XrI9GgDYJme|koOm-4B zlCL?<#D8gZ19wdAN=$U%03;1acxumQq__HkvE(mhF}YC&-kQM>8EN^aXgT@I>knK( zg9D$~9$QodCb}wxLBocL|1bjGs6{CjIM!lNVf^Xv@Q~ATghoDz69NT2V=)1Eoqur2 zr+4a3Ng$Guk7RwN^fI0EgmBp^ecCI7qp z#J5FBGJT%?8B?6+fdspXF1KZCG7n}X>8Fi1M!IK$J4AY&>#-+K$>Q>DmD`tZJl1w| ztC_W{oioZHq+GxV*neQIKtO($@uVcB+(I$Vlv|MG>)`TeI1{FtO`NzO8ASe?9h;Bt zi;6J8U}$Y_w{C3a9h70h$hCg1lg&JFbzQ(YCoOqSLU1s@mW8~aw?h%qYgItyn7e!6_+zMMg@=M)7#{C%{z=>}0Z=y$YqU$di&#tco zHcDJosHtxpWs_9bkmK{6p|NfeB#I)KwZ=Ufj2wm;hv69gT9OEiM_Wx$pCn zZ-k&^>!)}^WD&c~rv^fRz7D>%Vtl7|p%i4`3dB5iFaek(=~Sya%G0lb88x0? z-D}WP(pc(kRbDWAU+AfDgOE!NUGakus>#Ow5DnPM!tt{uy)1$p0X35qy<#}0fi z&}+&0<{L&B0o!ZP=&NL402Cb%2Gh ze8jAUFs^IWFNUNeBy>w8^L+=R8*pkE8}ejh(8W*d`Kr(my0s6nQn{CdIX`kohW2E! z1@Ue_y!j&$@28mX3kepwV%~(}IYR<=V(D+-iz#w7=RIEs9)$#VQr}L;m09e*mmQ1y zlOw%TX%Vx8sLyN;f-~oZT0K9DR?T`wpcH{d*0lc=9FhGz3tuxbM00a z*}C-A>Or%s-(J*-EmWl?(kqo1xsP${1rw9}gQqVeX+UEx=wK}XZ6fDK>8N7RL9UPP zAp)HR;Cn*)0&3RX8gJUi9-HkSxDh&}HDK|Uognvn|N30SOl>7($!{+6*<81|?#l5w zA^+8TxJH2l= z+pcoRZBZX8a@ayen+E0Z`d)~+tE1y`zDlo)wRnsN^zK;(%_<9THK2m8NA<|&uA(9( z4W7+7i{0$k=XL(^y9+bdV)f(Oa5arL$k~%qpV7@YuP+XT-svyGj~|)}zxYH?_r(}k zA`%G=6B2u&dYeX@pmSV>**m_{KA^NaTWuY0;IVickXadpg!IAJ9PqEFIFEsbkN$KK zL-z&WT0Q1?bdLaCy3fe210Hm!)@i;Rv-lxh=;U*AKTSYHVlgl==AhoB(vnW+JK7mi(hNhI=H^ z5;R5>@4d9ot)5M!;Y%4IjF%}OJo%Xrd>&r4OY2r9FrVDvpd|v@>&_L+1zuxRd;xg9 zjiH@y98dePO!BjzhHT2AD4!wVLQ#cLDRVIlGPyT(bL7&uFTexhe%! z-xZ`Zdr4L#jqCqb&6!3ub>?9_BUHpA#8Pyq6d?*if(l|XCSV{4$SRgZGz1JFWfLi@ zfB`})Z4@dHmH-_!C?qVA%|w>qil8hJ0uiFZ5QL_L#h`*gLD0UJcBbu_bLPW*m~$qd zliZto-}mM`&;R*7`XMVYOzc6jnADVJ(pCL|jj4{iq4%WZ>znrHW=F6R-ib96Q%92ac=5~0W_CJhB`;sI;j^PhMuzKi*WR&5a`E`lC|c28}or%kvD$LK(q9oB}Z1q{o0}0Z{aBdi5zU9QW_g!x zZi&zE%bwKwirQe|U@N$}MtCcGYptZnpT6mJvFFiGY$`1QF#O@R3fUrZ&j+alVFG(ML{W-lo)_NOnGhKW>bXSxxuJf|lk)m|Xb!^V{a^ z)y**u(_Lu7x-W^S+edSYb!v;BLObH`7{ zUo|tlR}nOUYZT@XNmjuwoS!fhO^&#;eP1$z2834DAsE~x0BgIjScm9o^=#qkjHQIg zW#1amI+bI$tl#6ibV9duO=&3LudLsn;^_j(v1P86sYgyAtKToXi792yd9b0(It~h6wAWC`r2m zA}nP9T7gguFvB7diFwA?f~RYmWV|LB&Ad`MF)^`r|B-JxLMMC9UUA4NhUl&)6JEzv z$%87b-VRe&t6S5wmf=E#9?FCCle;!%>h`~oB-*>@e?*cx_NIMUo@{g+$*t;+q;@@t zj(D*dxl1+E5hZ=ZF+7O0GO`9i0Fa0WLI$?@ysGpv+)Z-5fjhU=gA{}x1(C(5<(Xio zJ)82tsK@-Uq(6Aq7V$F!suu39V6%TueTK_Uc{&hcV#}V59dFOaKn)zWi}KHIFHT(K zRaW+a29GzO04c1KiTHFll=UA1zjD4ki>ahfli?lDeh{`haqY4#dgCR&cnNjIb$k? zzIIVT|M6*SEH7|OT{v2p=j)S|vJwMq*xg(vq-ovnYsJy{0K%IDBZea5p5i?YdqW=8 z<4Px5rwSQ#e-znRNe*vFKyT<$uz&-ezqv`&XwyAWlL`;-L?hF_1rKG`PAU59>HRL< zxDJ#xqPr4L@G41Wum?S2w@c|~nz`Nh%@s<<02JS<9>$CVnGZF{&L*mk2y=1~^704?`ne$8MI6j;Z4-T&)n zfp+H}qbP_3FdJR1yfOL*ac{L@`;O4O0$JCr8F<@9kq*5ViuL~XI^^)DxH~Y9V6d~& z^6%q0kJu}J3-xjB8Y1}wis+D-C-5x{tDhytIoYne=Lu!z34I~dlZom*q}Ivn3Fn}1 zyz(QsQ5uUz|Cx3FFO%jc)FE4oKjK9u=GP>BS+weF4I40wk!{LCk>v|*$a*8_{cen4 z0r6QrVsE^yPP}ye;$!Ae|z)ARtS(G)qb>9VVSiw{$lP(kdX`-7g&rEVXoe z&-%v9IrDupXU=@zA7|z;*1GZgJF7zgJH z@vWQSf6gfxPr+aOj*=RV%C@GC&Ia}-IPwOL@2zYdtzd?aolNWzHVg;H1_F@~Q*lY$oOX3l zS(^U6bK3QW=N8@FUxc?$$(=M!9IjObRHmtlkw|Jg7s?d|sG=qU)bx>s$k%qcnQU-z z)~n3XV8~<59AEkYC)u-1MTt zr1Rkn4v$2ML+alcpC#wa(~>BJG_iuf1+w16f?bebi`inS7%2jH^@Ym49xq z`Eh{%J=2BX!8KbosG(9L>1Xuxd3FoG$vF(aBzqocK6vzKl8WfbNP*_d^SzYIp@mRU zJrh?`Q`5pbDMr78`XiZ?Es&d^i9~X`y1G78j+dDP;y3kux^c$>-ZddI5^&YhdWhTM z#ZkxQYI^8;%H>&hJh!E(GV?!|e^uZxPK6`wc{Jx+b2J|q6&CibJ%SR|xUB~Y0G{@a1J^U+_kO9xbX)}lW z|9x~ofvhb4WSwg{Tm3%N#MpRsuUAw(U#*ZCT|4JPQDM+@6MJ1A`T|Wu!?fvpSD~}J z|DEs`il#&y z>yEBh&&up?TjoFD(Ou9 z_9F4|d6AJMy6|CDW@hHRGHW}#Qk#ZjQ*O(VH^JoG1HE1cFE^*E2Ui@n2NgwOla>oj`~g6ja>YY7hv-P@y*O`Id8IepydXk{~yHT?J_~ zt#$kM?e)IY&t8~({oI0ru7k6G-Dl{5FfncODY~&Zgi6rjXnW49(7T&^)O@)s?xcm? zD^+moyLe|b>!4Ana28m~YLfFzZrPR(0fpnZNz7Ues%Y?mx=yO-#ZIWe<=Gx)K#qNF z#vMIe?0s$t8Nj~DpP0d7a{_747cvqjOda|=l%_aU+;_d5A!TT)+JW2i#IYJ2^?slD z72zK5i@lVZ-3}IRn<+lwon~UNkpqG34LQn+!m6{Lhq^!Z_KwTUda0A(Bbu^`ilf4Z zQ|UuPD%Rs=lGwA?pHxibQ=$@Z?89Cd{Er%Y<5^ieuWb=SvP+tM5|eV)YGKvPKn5g& z%W?HBtIqegE6MIfz2}(Ke(`kaP{MW(58i3VhT{^f~! zU+6Q)sIGHT58px%bLVnTQvRr(yL@*7FVV>k@JW{9x-=2blhqScaj^$Mwqi=r#)cKE zM#(E+SokM)&tSuOs^t9k8T0e=T-Fm@CZ?tqAS}3Do*!a-MbE?#kr5H;KR@HLh>GeD zX2~lbZcQT{RusD9UP?>ej#!pnOzkonEmkaDn)pot@>GdUuu>IZm(^J=as3%OhW=_9@`*u=p(3qiuti z+}y);2NRb0i!(^em^cK&{@3n;e2U2Q{;+YVXb%W1MzWlZ7bmEQE%Z^{gVRRfGWiA0 zb6+3D!(gzeD)j;l16fYnddvtjN5HctrP=;!KSQ@+{D?zRc(~GnTbAoSM~dBV zvaC^5p^n$2byb`~_Fz|U@1dnA9O-rL2HdelXs_#~eAOgX*@8+%_jtKkf?Nz6cap-& z?OyK^;CdZaLpe%Ohkmel)nqgXehGxWO=jAHPW3g*y=`qTdVv*b31KtrpPzLf0|nY2 zz(naF;Jv$+=b<7eG6=`h%_?p z;d&|6cXkkB`?>qXj7m;TvP69c4wjwX)DCS3JuyaEcJMdxJ3nE2%|Nq11&Shpn7| z9V;e#X=>gT%Mt&=;1gTz2In(6x}opqJH6@=^zw9?y>h^LSW+$tsRUFs(MO}SlnT+@ zLq+umTGmtFl>#5Jt7&OzwS^uYHeTu`3BU(VFes$Ujv=f5KP$ zQX`5S3f?c{{$m1B`Y#0>xP!DM<-;Fy(RQ^t=EH$ z)cLb&R|?H}#h@0uOKVzDJ1zz|u?Wn~yU zc*}0abp-|%u2p6X2}YS38@Hh_Y6tuICGLkdODiiZw6wH2<8^xI+u|uj+Eoe&kT};4 zy#(OvbP$V~x@v6XBKGKH*-l49kHyxG?^4T!W#Wt=d05Wcy$kE88q(a_V zk3n?ZaIVV*ukDPE$uWre>viapzdG3)hitv}D5l*|g*9ipolW*#Q&T$AAa)3#3d$Y9 z4X*Jv9?Q%4+83_+yO&+{26>5`*Jfi>5@)W5=-<_pynPdN*LfNqL(XHBV_8%!1+bLJ z+(j@2@A|k|N)%m^Lk~Y9!z|e~t3yCh^t^&@ZOWmSz^!2=#k*nmG7GkTypp1>qm!s0 zdhXbG$N>@tNE#Zzo^yJu@j>Wx2MY`c*Z0_wTq^tZ>veY`e|d)+E+Hjfs+pc7x;h}) z0FHeVWZ({a-CL7mhhE_ohjVNu1&KL-&yH5i#-@l~A@NV@Q543gjD@&^ed$19*3sUV zwHGI&jU7w&FaS@UpgzVWCl@KDORYtz>+#Pa^ZBxx=K8+eCf>g|MWX<4;5VRYHNE5f z??K{x`U)b9M7BcGKFAa(gdCevD77$`>#i|oYg*gH#6+vkrSt;Wzhy@x6C$I*^K`v~ zrFaONfWUcKg7~P_;8AVblbCy(nBE-tl2~^%Ks>iiTFM+SyU5|=urLPOg=ys zjfaEZ?TqRH`~#T{aTA~Pn;d(+%G%o6M5T3t$l11dFeyixZ2zu{SrR;YqRO^7S2=qf zgzw0~wIPrhpw*#xFU@*}z)pR`?iSXY=9+vlRgLHJ;Jk{SH;=Rc-^Kv+s?#g97qq*( z`%ii;DXUuEX(~PVJH3to>t6TRcn91%=pma9>3a^;a)Rv$)&;RywXd^WF-2s3Fgvt& zv(joj4LJ5HcHsbjllO64?u2@;V%G#7=2cox%9i0(VX>(mIN@_}8bwZ%0L-eY>%yY| z7V%bT@IJ$=h+b-DC%ffgR}6w57PU5g~p-wdvv5!T}0E`W<_NQ}$jEsc=)z#G} zAY>F4H=M}k=H|jX{rJQe=X(275lHJys!0x)cfv}0i)Y!bQ=zS6a;?G0} zT;J>11VlL{@F97?AE=O4Dnj+A`QR^6mnEg*_V*&YR^VzfoAzonTcFINK4p{aQsbX zwhHVjrUs76YHn`+MoAlqhll6UqpcZH?|umK$?CzRt>|0>07L59Z=N$UhS4D{hMB)D zY>t(RS4}%5VDp2n>rzw{2nuKR=U~J8b)Ba(%X>v?Cq|K#tx*MO=L4B?aDZ`8Esyk7 zAP|2}PEIbn`Q{Edc2y>w(QCj_GhmB7=pF5vF zfN$m?xJF5msn{-cM6J&@Hk$S(>*iNq&wdk^)+>6cGwXF)sKXWmRaX8?1I60ta0N_R z7@&h1P>#H|4_c_-{&fdn*4hfY1u3L?|I_EKkr`Nk3XmRfD%Y_PGHiafubn1;@$SRP z{#rVb$kC52nSX-T2hyfQ|5vOej~=CzY{Z!*hXX&)QA)R{pWU3SVgUdh7@LLeeA3V( zeUDTg>j~guekAf4S9C@7vi`Oc7_mSFlF}#H8A*RyXB(!s82`J1WUoXb zi7>I}DK-HJj(5zXIGuaOi;Dh z`V;!95zs(N8Q+-yXETpUNtY|AJ6KqX)g_-on0MSzs_fM#Aw2(DB+jRghEM%y?X`w6fAJ+-^WB*f1^EssTRCm^$O8U4n`7Ox4swj)>|Vl!RC#KFPr%7j<>LNphNi@nqj& zrR7lS(YB3V32!yVr(~op%&jXo?KF?3Z>=_)q+)*_KzLp6NVD;+MZd0n^DF*jo~Kci z(Upa_tP%+HWeVM73B5X>N=3QX+b3jAb1ZV=x3v6XM``(0j{3C{lh^tFxs_L4Da$kn;EsD&(JaeB*tau{(qbZ__U z*p;8HR%M1r1c7Q{3lPIR%`;s^_)&e+S)OZ(s=`6IAPwPk3F1 zt~naDJ?vNux?@GFd~!Be%w<2|ntEGRx+46qlNDXTNRkxFF{!KytA5$wYPUBsoKM~} zF)>Zl!1Jd;0QmFsP0#;0*&h%Thzx*k)!0~`KOdqE6-rYp)M5fTUeIadZLQNLGg?tW zK@HHF0PX%t=2fY?^RQ#8PV%>(!EW9DquPZpQLXzU7Pa=ynqd(Vl^Qm*dd1mllhwkd z!~X@+euiatdcgK+laZ0tEQAOyI@K;Y)nb~76<4?CngG1ls>6UDFtNv{x?f==Gw|tnkNd^5XE~?%KF==0@U9iyq405> z=~W!G)$1aHWYwevUmq>=mi0Yk{FbUfAWr_$t7JE&ok;aLSoP!O$QT((T)IJ)XFSpO zDaMm--O|wvSBYeAk3>K-zxeRr0x!=I>v}}Iu&}^w)?fUXLKl zik#JCWnrc5tX{RenAk@^%rd)kk2oi<=ttUhyyCx^@)Tk}^S)ll`$CjVQtlN`)Lwi z5yPn%J|Hj_L$E!Xs;eeAQ?H=PrY4UvM=sEB=1r5};QUbI5besP1KfoSi(0{3C8h9& z(=9=4KmhD-(#gRl3&f&7?W=(ERslfqiimwIO+ZZlri8<8+vO2^c=b9ie{o}xeVoxg zBbjb(+v)DC^_zzxAR2_c>R9&~`W`iuHPf2V3r;>UO;@uAL00}c7J+uAnPxJuKV}8uHmX& zbV4{C>{()}(Z@-3DIOL^%tI|jDH%(}Ng6Vd8Fk$Q0aY2BvlI7Ojm=wea3qKV{6z}1 zkg|HkRb^&rblB?74Up}_nR1WnPq%8_&URWi?~qD_%r%i57LOWp6$$VJp?;n&)h*E{ zK)=SYh^_PY^hOc1ui?ErXM9Bwo@fUxEpF#ggZ+R~S zq3XdQ&;L8g#DQ~2>Ox_yl}L45Pw~C+@x<}K48dIYL)i)=9Go=V76}@)BAwiu1mrn@ zD2eKH!>ni8HXKUBtcyG7{Zb?D>bWH0Y%q=9wnDRJRO6L>TyR^uu=Q{0onc|(p z%X%X4eHA98banLltbjoY3Qe1|sg-B1-$zIVkpk5QTWRwrDPYjE`Uq7k zN*=3Nz-(l>?p;m1cI64uq&kHqe&Ba;!P?EVuL~P?h*6f_#tYWoF7FOkODml&vS1$8 z9S2F}iSLXVO20y!@Nr%_`W^EVdsYLU6Ml{vous;EFj7+$IUzMs3Y|FqyvQWzrf*1_ zJB^d8YRe?jUg=k&8Mp;qh#m+*XC~#-Ij{Af-bZ9QofkTh%=R?|ft$`*2j!FsDEvTq zb=F}5iZ`gHX57gky7=tOL-=?x0!sjZLXFF5LjzmL0!H-rP*}#UA?$F%!j10atrp|v z?0wxm1_9d!rLEk-#qVwbL26y;Z)qOTR7_+x;vHx?u<+QBmB|=L1HAI>B0csNWx5z~ zE=nVJFn8b)yGG|t{U_Y!9br)=beXccQgT$%GWusJNUQA!YLgtRD6q44?SN^3`emQF z6BJ>E85wkN^o;H$&~doz7iECP#mvE>1bDweK%)&KEk{3uIILyHV3mNMLDYMkgQx4G zW*6c>q0g}iG$O8Rl)O` z2;V}%udul=@+>8pX8**Zg^62@@>dciU>{Xt8KNFcCSA`-=?Ew|d<#pRhP^uR8-Wn?7`f+Iw5Y@K!*J}y?i_)JA3c%=A6G?=x}-}yilhS zSCHPwvfr0??*A*JyWVWB`9&fewc`rvpLlyfr z56`p|F(>fV*T)9ZkWvA!>Tf-#J3^<4i4klu{RMG}RWr|f7ZlrF)?CT_{oyl*K%p7t z3FjC3HP^=mJGQzURrHe^5D%TrH>E-o=rW4-gDin2i!_&JsE$6j*acSE3rY^@5ncrtI6`t#KT#UsZN@Xo#G%lBI zV;W9FE6xRLl}8jR>ZBgH2!&gscn3PFGS8^;cBuvGv`==f!OmaT5~qo{{`C>J!gf{! z)US%{4M%A_Hd8ql=cjTAAAGVjEOi5f!ih%jMnDt+G$AmaNQ#Jze41Ht;O*ITPxukJ zi)aEvR7@wScQjple|-YwXWVu{6n8?zlefWI8iR&Mol%V3-T0b`C23UGaPA7P#@zx7 ztOj8fY1&P0Jy8Jxv5;KAG3O=`wUzVpMzTWfcDo4;SF=X8*500o!$x!`rYmJ5OuY~pIx@1$SZB*po#Dh5iO4~*eJ za*EOS(gYgjTMLUkK%8(JHv4rX`(v5e=;xYgKte<<#ps8O5od-3(ziLZ>h5|p%Jx_m zMfZREI30eq(iMjJ+KiW_4yuHq6|=c^k~jU^RvgL5M$A9VYGI;x9Wtgi)-M~# z2$>2$N4m{Y5K~1b z_Vx5M=Xd|2Jgiqh8Kfe0(gjFB1Hk&qsu{w`uj2H?ZzL#$tL$+Qp*fI?f#^jUMk3D= z#({iw_Gb(XlT=MSfaFth<+sifSrZx{-*p^(np-zUuAqa!&mKnQ%j@Tdt^S3N`!v!( zMz{w-&J)GM9wB5R9T?yvZqJwLbS*Qasc;e`fpDMD36SRf>+0&5zcvfIADFizp2c$* z`81rYvjo$K>LIwi&Rpux4<@fXATBR2=LU-ArCLa+`V=nu=KXp+ARW5Kc(S&}D(zmZ zQ1LTdq>Y>+GWye{<)oKG@AxVdp034FG(ZhK#6?GVxSaOan3-7cU5l90Ho50_RPNb@ zGQ0{##IJ7p9-Ja=V6Of}aeNSM=VC&;ywx(tH7Jm+nzu+l%;Jk%OsZQ%JlmXnUU)pj z%;-eM#Eqt}PBS)Fmf&qFaT~9sc)U6NuDjSe9y-b~qLb3YS4;eKBv_+TLr_lcwObI+ zZGSB;V;7mwD?>LoX>!Q0ogHZs06k$ABNUl=dDVRkRsr#e&45^%5-^_nK;aFe%go4F z1+4Rx&028!SiuE*zF9qdlw%hxu~|&LFMHcvn=qU;j?t&flS`zoc|mHdmPk>E*7x@Y zF7EWvzw_T$r!>iu>vik%^+qTA_wSSMxP$~Ww-PfBTIRe9XYzKVr*D3?9_-zVpl$H6 z`>G^atXIDgf-@8_7d9XWp$OF}9uz<=qOOIv%|&WCmb)>^Li3Xkmai~xJZDu>faQXU zLc8zcV?4G!<*{rKI5Mo9QRB3khn3proBgq6$Na)V6zClIj7uboAfy(`0cquW1sYI# zjqar+?m`1ADK``K5nZ9n9pLf7dNfzxBO_xb84-|1P=eUpo?6T|WnAf)TEW!>}eMxL=pP$)D>e-W@U8c z^Oyr$;j+FkfD<`=WrDTG$cg-13f<)h1~UpfGwUhn_S(X-gS8<^(y}1;Cj8<2KWO|N zBe{X@T1(qpmqj+x`*Cw1z#DRnJv_bwDfr;6cSZ%`MCY;V^uWdDK*y!bv_g6GHS7(2 z*nWqlh(6qPpse=jTq()Mu~>W$vGaGz{&TyJdHP?LQp*O0DyKE2-Y*{AV)T-87 zpef47KNv~4i3lK)g)of>?fZltuY8>@Y0PYCWqO(Wahk*M zru9GVRHfevWVDV$R1$3;Y*4bblQCcfS}$BHoeRT9x~qIP58dd@>V|Tvxg#4{W@fCy z*MATK3{R(6jj7{b$ZY-%Z4Au#;^UMZ_~z?r;o*l`4f`0mBEI%0MoevAyf5{wn*sh9 z6;tRn6Z-L_tKmWauzzna>p`2x$>i)s7U0RvfwyCsaUC{y1(ch2S2VWzVy{)%5*1-x zS%h%LXHOy|%iN3#UF4XjoZm==F0w^=x#$ZlapsBj-{Zw;D3^wczb=~PVnK48ifOBgqDr>CL&8WwnG8w3{g=F54j)`*5*uB3t=`Gh( zl=VLNFTb#!nLj54&d#V15bQKwN2w24wK9MLl3!BNR|$9>ez!wJK)|Bwk}CLDCDQLH zsWhIuu*TCr%GOM zy{PDkmjrL;KDs~}YWu6@-fT{;s|DVi+4c!|@2b6^qI=2UoLk|ZuH9ZJ3|fjFZ|dhw zyFVt`)JGiHyl+R@oz(TB!Vj$Wb0nh$S6d~|AJNdT(|#ywAo)iX_(V6p2Bpnb_7(mq zI!=ZkoT%_jke}*HL^_ppNLpH2$LrQ0vX_xjQJK6mF5;oW2eA*?^$M`v5TNAFaXKw4 z;{+AMhzsQ?s@#~%QVq0yfU+yWw%v7QbGP9*8o<-T)6&Jo#iOWacSUJj6N>l`A=P;> zBFoX@{+#9+G2yI6y~}By%Gie`0!O;5c%5H(qGlvB!vLu1ys7%1VX{|^{ zzlwY)Gutq?&!3pn1Y55Ntj${_`U%#^!{*4mf~(A_=ut?X%`?OxHxu@fC%$yn-rLc9 zFea;Ri#VnH=qBO$EXCm(Iv9QD#O~bs61q8iE!F%I;rKo~b%RLWRaViXM`tI?#^e2` zE%)){L!77D9v<%^V9yi2Kkhm#Wencj!< zX7jjO35pXs(WuJIPq!AU#HD*1+Ir82oDTP}+VAG(scda|<|ogQDa3=s9gs_XpabH2 zi8nZhjI94&Lgb8?#emdAqwX&C%e3OAXPFfoLv==VS6y6QA^(#PUVZ88?p96Uu^!5j zry!u@>)YbHm)^;ktKL+#E<;zs zq2+`JO994&FLQ>t~kLc}DOr5=B?j!!BdZc1|KBkSUOp$v{LM1SWJ ztSI+*b)J$?QmTMC~J!(5S6L~eP##d7b4?^ zer%EcbMd>%zzAO9Pe64tL;@RC{6{T8%6le2sm1L(Zbt`7^@$Qf zwoVVo*DNpFx3HSRkM^aQnEW3Lm4ZHs?Fuo_h53z;k8U5ZH9Pa$fBge-wrdYRv2P%B z7jlx`$qgUO4W?~{`u&9T|EY%mHpEvSI_d!pI=Dq@Pv!$QzSanbPwHbURp|{<2vC)B zek^3&`W%5RFFzRl-M{<+C(^y%;<9C>gN40HFkoPQzQTG4MndxE1fMkVD*V88&NYrl ztVMw=e@{RX$7+#Huqb%Un+=%37yn5v+O#l6i0jhQy?*gOExLE>LES3D%pUGk7`^K( z>+2-fax9J3-sf$9F9U$jZ`O>gIOrZ5q6wz1HTF}Nc~gs)YU~Ns4C@0bKDXJlMhIud zB3G``om`mDP+k7wA}^K_#QuCsUQppR)cUCho5ahPSrl$p!O0rcs(M!(xtC5d`U?2H z#i+ilIcY=Pt;SzM`N4}t(RB={R14V~rv)ifR|fe-+bS=55;_D*cCapvGqTw_7Bd>58Q%>Le!W-auKUz5>6md>-ZG!2lQ3 zwHO!Y4EomkCAf|n)@h%g6g%^yik&^Y(u;NTNN=4-&0;u#=W6qPfT@-N<^o#>@jcY) z^mfs=m>Lk!94bhM&)@oB>w75Unh=`kIBgkx|1kvhNQ*%`!BmE+@aPmzqWp|%pwc$8 z9#z;_*eX~zdD7lpX_H+MK7okiXP?E`PTGf&(r9k%STWh==;OqZRRmEWO&)HzqWX7%PZ#P zb1z%)gYQV>&wDVr7pbo1EH13?8M&)bc11OKx2}uzZ#ptHh~+3>4bLywZi9?s1ho8O zJVKw^8EejY!7#0A#Tm&985xl;uHU!|^>xzrrjWa1(HQ!fe*mFgID4ni?ItVvUscxx zGgQ%9v?D_!K%GT+Ydp%#awgQ`db}Q+rTSs^0LlF{D7#Cm!K#v5SgDg5!7`I4o8CLIw|c-A%VTnrDh|IycrORoT(}E5A`I{lpj_5pTMiNY#rf?UA?D zHh_n1M{9RB9>+v-yp=^iP*RfPc=OOOwCoZy;jINk}{EBe~B) zvJugcKub{fg*xC>1%IsN`Nei5?)SOyPi_g7*WO3Mw3@EjYFRzls^7{xe6$rY!dl{1Q?>pKPDa(R2RHdTFmbHbYuu#7 zt*w~~-mYk$x#WHNBV9ug$`j*`_6qNa#G*Dmab=-h_-8bBu-NFLPd zS&|o7vlLvqhn}7}GOBl6NZ5POBPkf+q|E%JH>u&T_Qc+7yA`C$Ut^*Ri8VdHJ`ZTe z^G`o2#f-PzGHFC_6@+Od@IXt{wFKEqtZ^hNKh?J;9u>3*)gh3&?FOihp96Pw`*0-k z5KRNTw$!jwxC>ErXF-~mf!>S3E4N}0;%ZmuNdXiuJl=29fxjXpS%$F8-d1>0ieNfF zN`>F2`q08vc#n0&%Lbz-*bt`iQ`=@bW-qt^Ya)M{=F*WFbs1jyyvoP7_<*0K zYHPM;YW=Uf8@-x-tiUITdDw4zgh;4+Y!+!uRCmO`qr!An7Kg?qv@0U5X=_I)$$k;M zs$YT2<gbs;ncSu%}wK>2dyKwzr^GDb2o&BkdSyE z{Se^4_U+<@JPebKnCyM>#689A{KyhBRYSmg`=|+pyvR~@etqcjvBGGtt%3hGzQzc9 ziBENLk)JswZ$`Rn#`~&ydDNa^PUJ&b{YC@NN{s5NfJlt7r_FR(*ShY*Kp~TnThAnM zJ-mGmj}xmir$see7B!6B3iVLOf@j`DF4H4*1G9~fCM7k72wEg0>OXl7ESt;;FRv>e zh3Th|P=)cZ;h{OaPo7uMyu0$HH7gU^?=`G(9TrPZ(D3WzFyoD7$nezgPuW`%m5DSN z*CrR$LnRt#q_c*#T{?H)J-dFFuv!#UR7Z_oP4pw7jex>W-TLr$qTy-D9hGa=tu4m` zSueb8Z#?Y>z8w<9z@C=ql@R(VO`Tc9n82N!d7Or-`o-^7v&nUP$cT~VrKD9zN$JHM z)S))KWi&$Aj9>Kk^6Irob!sL$HHRxE@ZN+`BkQX3+AwK}$h26$oGR9Y4&H+*gp;e_205$(vdNuZBmx{Lp3=KUaP9 zl6R6^jqKKqVg{i{WmftScI|hayAz?W4crPGIJO4Jku>Z|L&DfS<=w(dQ?Idl{3F>?35r3^%HLj%@pcP}=8h|OuN z0U04;sx`{`8OB>MP<-73|lJ z5U(D2q20cAKuL2kUfk@W1sjy`jrERR@P~C`qX%@0of2aqBdz7!?5`tNS^a{{g z*quW2i=+2FbdIu+))_gpHndGu%m#Gc#S2Wg{rMUMXa*3()Zv*zNNM^KsdIGq+WWea z$_1<3^AFfp*2zV8ymW9H{t9|Df~aU$3VFv7xguKiZb)qVDyvq744B!97jiArDH;>X zthEfr=;pG~(A3-HZ;uvv_ZdRUe9*ioKHDk-8TV0;v~MsdXG~rsUG84Zvj=uuKo2r=!7O*QR~U+b5q83xvr2fBNdWD2qgm&e@C&XP!oX>~6YPDAx)1N}n= zTRZGd#+W;?OWJEzw!fHvngDGnN=&4z2kqk%B?g~??tmph@6k%-SdJDkgPADMk&6M7 za2D7;&#CJ2X*(1v0Apyv%?qMsADhcpbbPV-VT6+2<}nyO&UF{0LkWKmHACz80v%*I zwaI?gE+%nQ0m-jw6)Wssxz%uL1BOhr$wfTAgL}@zwl_y>+ms4wy%8k&-RS(x7pT4S z6kpJ>NE0sD)0IV*Mb`uV>SPxcAQD8qiFj>z9q(`jB%2ZcchbUq=_{l>Dj^2qEVl06 zS}eW$zKcgo5){hAqM&th1X$MMd%i{cYAoAzg1_4hVZNls<&yorjwiRRyNqjQG6PI7P+&cfRhW@arkQY}knYvT=9a=#U&U26K zD{QFVDs^$mgOBFnDQ&D?M-=i@Uu}OFvhrL+L{ADwKNj^ykhuk0-yk2WrOq8qWUS4;cTci_`D zzMa<3eNdBtN~p=X>)nexc#E$4xA|@BAyR=4omz9%0|Ek=6-9buIm7`Cw?2W)&jNkM zXJ=>RRqQM*f$<9W8*9(xgV&rPOV&+HNnQzPxMJ;bv&o*RMoZ-UFDRh2Zm_C<{vzdu z4i|^_EZHTTG&O~yh84Gnv?^r|W}1A59+!q^Oo*Bx_Gg_%R2uKF-BRjk+ugM-i|S9y z&WI2-8)#3dN+}zKxfq5Dtk~6y$Vru(dKFsQOfjOXSe9zKrAs2(+S_j*Icq$wwn)Gp zZ1=r=F z$NooXb1E?$aZmn52Vn?FSq+LH&r164)xxQNsLI%tul0?qexNL~(}eG+>*K0X4Hb|t z3|!&pC%Maq{X6I$eVMu9}e{|fvVGPCpFEka|U|UqVE2P!mW41 zK*2pHg=(jG0J#qvFTga2e)UFQsyLWx&3{hc0GcsCi&-+5BY@@`>A0dE>u26YrWgA-M5ts6j{@$G*#YS z^HgFaT~5y-$)duvt=oCR4^VkLo8PsoY}~+%&FAPRlvo)Q%x8hF2t6p66=kboEV=gq z$U&;m`)9r4PGc`-bEjxRXLy9w>=reA2AR`5E>?(rsS3YOKjwdu)9VkD)fcwSON-I9 zcHm#YpXNQMuHTFx|7}^eJ8LK4k+Bz4yz*uj z?TQK?=4M2HERt)47SRZ&bf10Rtvkp{JiIj?v9$=RBQA)r-J|yxtiK-HI?~B>qJLeTOW4tppHg`z0i*0 ze93f{p+WjhgbsI|x{h?fZn~||vD+3WtY6=Aw#sgrCs;1{N4wi&h^&G|nmT$+XY-sJ z8BtStZ;&ghmR2!0caFwlV6ZfOznSJ!cyDi=&7k@=+N7uCpuftqzNotAWv0A`v}#XldmG&Wey*418kt;7>Y^S+6= zsjqbIRNqr{(XdpmxS=F!*!;p(-j)?qmMl-$AT&Z+j=y%}XT+fxG_5{5HPA~$td`I! zSGO&~|Bu!>;^u(PqcQeE%JgKX;K?Rp71k^G`jvlcq;!m}MeNvV!6ieAc5)szCML*q zt#b?=5UP4Y%sIM2qv9!tE)QinTU}?g91OgI%y8DUK1z(DSo>oi7g zQmK*A(4W+(d84((Jx8^}Iv~PlM$s~&uXy{m?VruwK}@ou1HHrP_s!jQYy%MV6h!%7r51WN9FitRvvzV62Qww!K6hlm=?@4Y7L3!vrDVA znI_*JmTE-}=f?mtl{_O7ld|TN^RB(0MUjPMS@TBl0{5G8yvO4-+NdM@Gke-1oxqsq zgbME-|BB60DQRYP&GXXB-x8)9J`)kJi_3KuIf}tI+jc+vBOmM3K6!yfX|Bus)zruJ zK>`;xMJ4a&etmGK{~ez!?2a83!A2I)M4fqgaoG58Ymix(NYzkPGF$k!_l*^cQN%H) z>;CY9fMlJ{3$h~)^!c>ya8|GFwb>Uqg0ca_JDoS+GojU%Rdu$FETaxD7aMGA>ShbV zjQV~Epw$uB(c(%m%6ax^pl!|8dCg-33qy*VPIs*k^^wn&TWW#_McNGLgv)4DuVUx> z8;3&j&np*z(Ia7lQi%Ptz23=0`ZLfhH!@tRT-5Z;1RqZ!*$7EPXMOZ5ez2kv(Cb>J zeNQFp4n7ymrovr&-Y8o<5T~)8BnWdV$~*O%I4nLDxjJ{EYcA?OESX^%*sKGZyE8L2 zjh8G$hTw>Z2&1A$a`F!gqXR-IjDIM5 z?H;?`**i<@9Ss|pXvwAN$=jOak&Q9U4dBG}QG&`e;63R}r4?uhmTgkwB7SR5{lwN^rG+V=wA@+*`3bm^$ z`8BQNtgN~TD0?&|5YQ&)f|}j`c^{P$=b>hW`Majkh?9Yk?q9E6FSfrYR!y}D`HS60 zJ#wj;2R+=GQyb~RC)FDdMn^`V4|QmW}mI&yY0lFyw&`U{nR86$Oga}9L90CC#~9UF{-2sfRM z3+2}7{5~qDgM@5N8xvB~p$kSA6CcJi-FPdwLy-B!IJe@lQ0vP?%nDt}VIz&q=|THT z6t}Bsy;}9u>V#&|q%D%2bR8L_oS~a;^z*lf^*HVBmMy;O3Rgtq91_#Zr?%#MA={w@h?ZK=W_B%VU{SP_V zybZc*;b3Y`jnFROq;;<1_l!uzWCK2CDbS*T6CY)fct&+#;^)INf9_ILarvRHxQ-dk zQmj_pyE-igYN<*FQaa6+=3M2_3~$~cHkqJ2P9w$hxu-3Te9VK~Vzt&P2z#(- zv}ufgRT+$pV^5&kWgj~P35Idg=jRPQ!OX_V?B#`-(XX-a0cMYu=9}^%J?_+N|M$i( zd8ig3hJ9Bwg0+3J?%v1i(bs#r!p>eQcr)!yQx+8M0NAvB-8US<19fB!Jr7p+2531* z#1qw41%Ai(ZuJ!rm#fCemGu}LG`6ji-m{!Ih#*{+bstI6cw4Z>k8-Vyq&&NFgI2Gc z5W4&p*2y_5ITlfm3tB6>1$-D7(ui7`X+bA%2AE${nPCG`A?Vy0sWe?l!^a z?~0GFKI1{eJM-J`a<`#VBh^N3h`)k+ovblH{(J#QS-_KD_w)+gaLu-8yeoS0T&ceC zXkiHTIZEN^ZAx4})QmnsFA~VFumDT24gTU4DZGIT#@;t&J7;A27_- zZv5`&cm3{R7PYdrwZVL7ot|w}vcGcH8>Pw05!(aMhiC!5c7iAKbK?M~mC*Mm+}5@W zJ99BvaXd7$Jv?~d6!68@?M$~1Q9%(kL4+4xA7zH%L6{bvSp2Wc_5P~^*@`q#F)=LR z)hkvp1I$A8c=))Iq+b-u3FqQ|{UW28Wa#~9gj{7NNTx%s!w4=>d_|o>b0uC-ExG#M z@&LuT)nOE14apApu)>N-gxx$a`k~5VE=So#!d@CSA8_^PNO(i!!15|+Q}^w3W79qe zyQyz*PSJ_qv~I%pE)Bz*llH>%x$mIXOhG!=Uxv9&VSNt=@13v4X#_{HsOO1&zPS!Y zJ(tSB818VxtDGp)q=ICs%&&8zPJ2Bgb+`SjU~y2x02TYbWFuY~f=jzA*A>AbKlqps zbKN#&y7wH4X5@9KwV)p0{8tK3N#bj!lhrN8VolWpLT*SBHXdV|636;8^LiU);mnzUJ) zT1H9E6Xi3^UOX_fV5z3lW5y=X$E7I>xbsA-T=PcmGgv3}h%;KPK7+65TK-dH@NhX2 z=u*c@%v}*3frW>!mhW1wBI?_(|uj&sPf611xk*~okhnznl3kGkw zVePCu+3*`zkpOwj~fWiimI_i}-Y7fcGbYPJ~Q`47vUjBV6Q|ZQpo`U8M>uQT0j~>34<77q!ngBO1euy zL`tM_5D+8;1Vl>7@4Uh1+521Xe&4mewfCQUmdk&Jd+M(1I?v;GTqYv9(QQd3vMyrUK?oasGmbz;VsV51r^Rv15!JHb z9L&VJHygVw^@>u~vVx@lfmK}}jG&XL6Yoy}8gy!^u5`eGvB<%}1Z-<8MUC%O19bhd z^9>h>hz1{vLOCAVbMFR6YWsKX&uo{vH_wVc^87KI4o9;IscZ4}XhxYmt|!z?C5AYZ zLz#eT%#T{L$3RyRTBq?Tlmo66xu}mrtL0wB>O=>)o_6PrZvZs5wg>?Z%z*E>SFpM* zVTAgAn(kjb9}lF-2C;Or*T>ZPYjX^0m-|+p!sjmMdbZwovhDp`^?q{G13$i1HP2c1 zqIa5@z0~b8<^U0ef&Hl)QfqhY!%t>a&K4Om(Et={Di`65Zef_Y?eHzUt1Q*c^xUfY zx&RcA(L3QEFQ#kqvYR=5TRZXEk36Kerg-)1s-moC_lR=$JKnrwDhVEiQx0hXB)=@r zX}u`0@oo{srycAU4};2x@?)IQwBFfAe5Ilk$&dtk6OHRo!gDL-jUK#jJJPpthi;Vq z+Y(VdlW=sf5xf1CBB3nJebah)h?+P_v;iPi+pfqlcljUeXjfEJavlq`I|K}t(DkWG zoTE|X3&(eMhSrLwet(&8+Maw8yc-`x^{*U$1Y++Z?1BLI#3W9MzEAUT?ym+oy zn|g3SJL7nkiTWHX!zT`wD+>5X5*e|O9_o&CO;wv_MfT~Cgv_&-X|zrj+Dm1jhMaJR zR6d+%b-Tz}`r&GKcrkN+{_o-l6A^seaGrZoHwO(n^wzhe`A+gN^Qck(I0kU}T%*rr z5d$<<4cf3&VQKd{M>yCVwu;uYBWXLwVy-50l+wxU@p)T)&%-pI%-qe6NoBk^!hCVW zjEt2Br7Vz3dm9k)#%o7h>tyM50L_!I5R1Sd?RO9Tc@f8AH~*fScFFI!^W15$=5_|q z{08RY(iB7#PW*)X6ZC8q$@~3`v+VIHU*j412qK34sK--=`0thIrTc_MPJC&f9Q744 zBT3kjK2GE-uH^WfJO=twJM&_1$`r1>HdyKxukX03Q_eZGba>4I+Uq~gLMuEsV;(=I z4PyfRTB_x3nvGs3g_-1tXReCv+gP_t+;4j8kKRr1jvHD z$F*$;qw;l(Vf5At{79E`1IJ$s_ZKjRxa-adTAOxs^;A3*@==L)@3((@Bt+e|t7C)x zvwwSmU^PCdvi~Y7i?uB3tz6l=BSb_D5TL|2H9rh(v3*#e*!%Pk4qyxR-h${5s;CDKY2IPJ?7sIi8b#4|ZO$%8 z0Lh7KXZG(uu{B77v~La)5oX(u2&X#=sUT4wqHy>b_Fj@c6xa~9yU$0`5rTvCzXL5^ z2!-;mbZ4h#;oi1HeV$&gVvMN>X1FVn4s>(`vj;t)7LQAdOPFxY*3pqKWu=2dR?b~x z11==s91t$oa)Ki?jC3o9)wbf!&}Fvcj<`bt40(j={Fd#0VOp);%L_DhjJlq!$8q|! zz3pOQyLi+e;1vE;h93j~dmADD{a+jOuGLQQ#FEdKi9K|b{oP-m;-YWX%gG#)=ijFE zy+bWE=8W8eH{3?r7XEq5-r!6Fz3s3P{~V?sy)vIN7;f}l?&!B}9c8!ZjQuQ6YWmnX zO7CuTRSJvfx2dn{T?ZhL9C3yc`ynQwB--mKHfd?i^09`6Y`?2kfhvDQ&0lrNjH{x? zj~uNXuOM+a1aT5Knrn7Y30V!IL;}0oK5Ye2ZI`K<%dO#KJl8|Y$j}9=M?4eI2E(4= z(xJyb?x{MhRmTl8?TqPfMbM;#oE<|n?t!_t3#4+8OEa%z6@qI1R&&9kYC8*A2MV?P zm$IpGB^s8aON2tN`)kuXILS<7NBxwdOEZbW_@V~LH9rQfICp&Txv^rfiM}`rv)+6s zKF2R|xkzbp=WCCPN(xiDXO*v~c=td)fH|7j>BY!8KWXYKvMxX7h_7E0fWz_n+xPabai3SVrW5-Rt9lKdy@yGJ*@4(ZF$-t)es$v#F5J`l1{R}g>q zVp!hG%u}T%KUaZJWH9Tl_sbR49n70^<`n0>Vf2V)R>|wS8&){N##0TWyW=iBoTnGC z)yZA-Gs#mnT${#fyK~4e7-G+Q!7AU19a&@Z-M} zA9>Hlq^Lz6fi)dp`kZn8s)o500$p#<9q@Nf@=q)ouM$ z;x?+$L2`ab;SSMRRoB`iKppp(+4v7aX@Azwaa$GVL`Vx7S%eo%S9iYo{D)#yp8qtV zwd}xfuDdyRr=rehcgB@aF>ZL8_Pv^=lvK4+LWZJJ(CDkR+{e*28#}~{JW($F6|v8z z(p?PXEd$cmMBatRZKiBac=>8wYi8pn+iAgk?&I-nOO{+*j#H}4kx-l)C*N>Z+lAt1 z8_Dw=-hZrFK@1q!3-!n$ANlESEn%?dct-+iQgN9evXbpvS zPPk|YbhiXQy&%Y6sQ*k|ccjKKvpai6P8&KLsOU`Vv31A8+ZF1&HPS80Lx7x)7CU6~ zw`WN~ojc~)U|HG8oYitMzgw1Vv(;S^znfWCX3wv~27vswSogQ*yD8^urwET?mOl(l z`Yv;evKlT7xc9rB*;*eD(ymKCS<9;7y(>@W|MEK4fMVrq+72f>yV{K#funQke_s^< zJ^ojM6@@YK-*y8<*7b{G?&33RAcf;#XFn>hp-*-3^2#=iv;*CVE~jVIeh%`n;^v)S zcW2bGYp;YRbFjBv6w@SiM3kJvcGmAK570@54!od{nt)Pl2+q*nc&xV{pK)_BtTUdo zt2cGWFVjeIQ~6`W&>kRL{8#?}36SlpFa$GBDbJx!-4T|Mem~1rb@y@CsVBm2tAI2Ls5WbJ{K5s70JX0yl`OSsf z;&HTgxnreIj~_g89LWhW%`_b2)qq2D#A}YbBSA6B?grQ$@_t( z_Q+T5!7jTEQf`SR2foJHm)nRT1^G=8KOtdzo^Lx1!7_X!9ycP?QD7%P?X(sCPZJUC<$Nq(394V_+_ zKS$19cYm1O$Mv1A)Q{Aj)1tCt8x3PmKCctaO4)AwbIbaVZX45H6C~jQk_`LZ{*B%6 z#k{bO7p{~FQ{GAitfcYA&(w=uxyO|TFml^S=Fju#T4s6^p5&mJ;&d1E7_ZdO)#MEwZ@ z+vng1#b;#Lz70Kzba25t_7c3X`Vg%^YP>)(n0S1CS?U?4VUz|jJF|FNXo1Ega+l7Z z{b259RpP+hY-2W=yj?{jC8j#ETgN*f;9n$mCapbO6TNgD$!*S*K3dhsDjB|eAcSO* zD7w&%PKAad;U`sqNKGH#AI1^UKWa}DRt-8rhW7IEnk@R$8wV9ef5XFLh(HVy-v&}! zKZ3wtd*|kbWbsM#hX~fSjH@XF-1gg5JEtj`Tb#QNc`j5ar7UW&(lLF>@j*!<B$V{MPu(Fdt(TxJbU#gn+} zg=SnzwN2Kk@vXT$VcTA|*y=_Dl7Cuw|C*LmaRwJ9cWi8*4P7WL*{KV2wIL@qN*y4E z_$uLEnEQ9bv*Q|F7Bk&=YJT(3Kk|^(LwjMm_YhWh195CNz$~+ah3SY#5PAk2z*}JY z)Rz$HU6QCPF~Jc6g(c7@tnYX8CfoK_f88Z*Io9ydWIo>7i-to7qciUl*35rOadlGr zm^9t22tFfAfSm4SUs;At>vFp*;?j7+lRR1X+g(&Hg(F?FO>bJa!ihnGQVpi?4Hg#s zZC~vSge4hNcKsGpO%{jsM*+xaTOhfXSJ4J_ay&-5e_mM$#&Ec|@7AV>iPeluI}#1M z!ppg$A%S~}nvi%5W(wvA&`u#sLmq-S2cZe0h%vf1_OLbj9fYi_z8AHvvo;SxTXSvF5;`j2hi^Q5j-g1&lE4w1;?LkACdTw%?p7H3;L~9XT*>=+Gm0X8L zj)S2-8BlI$O;GKN5wgl=f&{(29uwXp4$8CRr|h2|O^O*{1O&5Vo%5@;*hqyA;YVz5 zQAqFCn=R+9tQ6t=7~T6;O`r_Y*S(n}WEbc6YwRziZ-T)!(|X^8i*B(%it5uIft=&c z94Kw6;-)yR(mv;BK!`#5tdsUpaO13OSCz+LdSCq4&&4?-3!|#xJKNun2EqQxFIo1^ zns5@5^^|sDR*Zkr8%BhfkiayO@4oOk3*^+cfQjjqSVv8DraF3*=y|V^N|(1wZZuDQ z9N|t_4&hr}aI|u}souJyK&V}NJNnn@rf0s1xO`*m5o4apQw^znRR0kr3+${m&k`4~ z(l&gS$k{x|2aHZMcYGiS24Frzs4v}cukp^)C^4qKhgzYcO5b)n48;T_;6VQf0f5vq zRbrV8L3mjOc3*oHstczs=&}mdZ$@b7Io(|3kmf%Qo~f+GLoJ%iY~j~#g3&672WCq0 zS8LYahYc{6o(fS{ycxA&{5H~wq#g98ZqV<5=Fvzucx^z1#HE~kRTHsM4R<-6s@B@% zVWMqYQ3PI-@Ee`KWb*h7S}vN!MWyaWidAa#T$udi_Jn$iV0sb68vwhSJm-Gb&tXy3 zZZdu+lBPb%+ARCar={e@8{>sHBktad5b|-vs*SasQS92Of&*7+e@8=0)z0I=GpO1K z`ecK9rNsNGhSnu!CjHuz7yi1^%0&@G{GkC1(iDh6+&(+9a#)0{d!T)0~wG4 zB#kg^mg#iL3@>hO+5GL}xwGo%Il7r|;P2JFpkQKhhU)$DH%ep&Js}F2ijc`TuOl{6 zh=$RQi`=L4)z;pIa5WTCTkC?!JH5-f;NFtj)q~I7smn|J0;+!fY~$6`)5`|$dcDgh zkQT$Z71*dvL`H~^Jpk5~dac?Tf*2aHiarfHxJ;9F^~!Pf=B z=N)@k&7&GVcrHJ6QB7uP?o&4}v9<6>D)_NAb6zx9d%jC66}U~s6PxvQ1KgALaS0wr z4OzrwhUQ3#uI2t2)rH!Ep^O6VXEr87rPw~qj6O)gTQqHK z`*vC{Rh8dJ`aTi(n-Dzi7HhjsaG&c}2J4LFEm#VH;uy`JSQCAW7ns+9in9imfrFQK zz<+0%ZrFc!yS2478!d9TdKmFb-i6!Jr)OtQi;uXRKaf;*Sy|n|(T0TbA@+Z@`OO`M zITnREzlT$yN8IKne3wUEb{1&Qzxr0WHayQA-T0&a;st(FE!E5)6b8iuZ zP}}Xz^?{X{9ye%4Dq#M%M)WI#=DAg*w^a2d@R*>(=Zb&`wZs%2C<_HG9;(qD^Z^C2 zqW$gBrD2Qiv%9RG5<7Wxi;BG~tPXuo%F2TUwUymtsB*qykImN5fv=}UbjIa;M?#C| zT*puGotP)s6l|2vI*MT$Arit+ZX>D%v^lyuY@Kwp*yXqjL6WIP1+;edv4DuzF}18X zZi{HArTE!YVG@;3*t|+O^tF_1a*pHEF5%Ca*vzLq^F_rjg&0NH$&2Z~Zu{}=h(Rb# z2K&WU34$Di>R?ty*7Lms;+6rkh!GX(9&NZ=wclMIEM3GM5A_)@S7O%ygTnL5avY!i@BSuq=J_Xsyqou@sUT;r4v;uSXPqiYh<9uYwGbNaz?~} zP>$lao3*f0NR|&~M(fCIB4;U=$%nUQQ~+%N`l<$`X5ULSMzF5SB9dBA(rcj6rXJ!C zB4=WYq~iL0^hzV|NL_-&+?Y?x)ycdlRkEw-0w@S_~L12B11H-TR23QrD`q45XKDt)-u;*@f)ek{@)%ojyo{s*F7 zs#W#wUTPW3&bTO+SC-_K(u*_vwG0!L-Up`RCmqW5r;}X6B{#k?A{SO*ow}wv65RkM z&4zZo;_-&0Ls8Zr7|lv-N0c<snuAdfR>t}zb=4nv)qA7vYDVJ!KYPFVnFqK%sWOQ&gxlpNdV z7h=R-`pwc9YV-loCeL~pk##;0Q4@>@HGv;uMi?+{OUn!uv3bG79)=hQ^bKhrD(k2^ z40$~HSAkDmOD*`urCClGB;2{PeM$-!IiJ@~@rQkf7=AJYqVCyq9$&GrPwSH|^zNG<}1E@qUA2n}ME zfquQ#oEhlVzkPWVR7$v#=PQ-$zaFSZw|URF&b|7~_FPK(v6_+R^P4(ArKydS#WH;I zFx;9e_nthyg3$u=V06CV&qvEQD6_-GFN!IuZZW*v6r{cq*;N?SetNW(&+_K2bwiVV zf{_a2JJ2MxNO*z!HSziiKi-DO>voGdtdUJuMD3WT2C*52@%C3lU}AQuzyB~{|p6lH3YajniwnFE0Q5nb|kJGRNsS4QEk&{fwzu+K-@9>))>qRnLc0U9sdo_MJ9g>^)4m-^@hPRw?{^Fhz(7D86-5TwW8{ZQr`&~m3{p(-v$jod zf~d=UoIkEv(TcNm?$$C*CzrQ<8!=q4dll_5!!H_4ew4t+Wb=nE>-9a-SftxMCUM{1 z>|FQDVimO=f!_=*hh(lkx);U!VT?jud9QRr^qeJWDw>LpE??AjiVZ+ctbt1yFs}^5 z9;3dnJclNLu-UoZjby^_$DFw>~}gs(PUtrozaeTJ&5vr)|kBvncWT>E1|cAuM(Iaa~;KxM7XVR5sm2%}!OT zMR-@b`Q7M#+7WO;LD0l& zHY>BY*4rZ)rezqMK&N=|NN3`&$D3!83b;xwtcLlAc0^+upo==|7hJMIDW!EKx4|sJ znIYmdA5CLO3!l&6(Kf>qBaYJ4-WB6{16$1}wsby49uEO>!|vt2OBddE7V_eKIv{d| zQ}8*DVU+>~EP%{CPm+oCb8V8DJtewTcZ*4{NgCTqyELJ;c`(%FB;GQExfUKRbCMa~ z43sZ8SK;c;Lg%6({_nM;0zN)}whwE-avHU;l98PKrfwtJ!I*v0QvYE(sWTbQeLGk5 z$0>|GDalajg8k{E<@qr#ej=})GU?gBR5oTWj50j>_YNW9c@*}V57UFEwE`_3>ft7{ zYUPAtBqs5&NdBcXtwzDD%^5@?U@`(mU&qpmgnjKP>`4O5u6&%BFW+QV`EXkGkKzTo za#A6~`!60UyTrrJ@L_?fj`^+bZ;A>iPd`nH61#%}twzg-FEtf~D>`Om`P@WAB4_;F z_O>aw9(2!U<4{(+;n!@Fvx`MP8Jx15oe3f?xuoJJe>JpnoWj35ocZYDe!Z9YpQJg_ zYZkI`c7kmBzUbj?x7kynnlfmR5jQ67H$jo}^#8qs`F|jF?w2N`WYU)Ko-`om6mDST zmQ)D~-{?~~b&(ttHo%D?9}s!aG+tJQCh#F*tTsK;CTs8~qr{b%SF68``}dvzqA%zE z7MCEe@k^ur-F3JL{drJa`EO6k{OR~2&jzUe|EK;&0{$nz#>%dPZhGrGHpNQhS47FG L$h^97JMg~%+9*zW literal 0 HcmV?d00001 diff --git a/examples/3_dataset_and_fineTune_files/figure-html/cell-15-output-2.png b/examples/3_dataset_and_fineTune_files/figure-html/cell-15-output-2.png new file mode 100644 index 0000000000000000000000000000000000000000..41d55e60e298a318c0901b0866a33da853900a3b GIT binary patch literal 22124 zcmeIa2UJwcx;45G6ch=Hijq}=WRWBwK@mw3Bq~uvG7XX?V`LiuiLD?Y+DJ~4Gm3(O z1RJD*23jOG&@`b*4RpU+xX(Rj?|c4p_I>w%|G4A5#~2PkR#(+ptE#^F%{jk%WT>yn zw2xyS1VK#NS{IEVh;{{nc6l-E0sliwh`R^ADfnt!^)>c%^bN4{c7XKkd~dmX`ntQ^ z;PZFz_Hps_kd``X}e>B;u zSuPM{I-q^=yvgmCgyG;2la+cRb?xQ_4}O|m&b#(v_|+J+MFPr14q31ox|C;YNv2p2 zBLbTSCNzi28$J4`Za=;fJ#6I8QeQ==NKCEJ$wOI4UU_m#?q~@^Y>FWN@i+VFE?n64 z;$|nW8{4DH64EbT$hu9egq)j{Qk-4de)i(#q%w|34&$~d!ia+5LC|%DD~{|tKS8_H zv+3cVnqD)2hXKB>9?Ia^`QgclURwBv>sRgv?fi$>V?!4BhX{=WGc@oI#iuSP!{4DJ z8vmbbEJ)u zeOd^Hze9iJIX*Aqs_-4!jeONh+!M<@%nCXS=**8nn)E)Ma*wYAqePN z(-uUpA-?mP(cq6~i45>%=hd?##a}k^DVLfLS`Jh$bEyg-!fY(gY9u4=Nk8GqpoTip z+q~5I5*fDonB=8?s}s{Fkyz(s6-h03%XD_S)yW9A^Zt@5zZk))l+@q;o{@yy3@#_l z%0GR!GkIcvGh}IZ^+fVe^L&@ArU(0NPZEaMYnFFfw>`bZle98OkJj{{MsJK<5LU2p zbxz_5%s>)Mj+TzaaLduw6Ye>r4CX8&H+9J%Wa8cyoH~UJdf_cTQFaL_3UX)ppO+iPB zyr{5nj=iOwUB=S#^2Fk88ON_j1%!lBt_p80>Sy|XyPvVZTb;?aGU~arv}Pe}4|V!YjPG&>+^Dwt!~Ned4Xd)Lihd&FvTp*S z!`yAKttwJQ2>4;Ii(xy%8bdez%PTA0K0Q9HbNMo<+90G(%5rcbgECa@ldKd_Xk=tm z1}>46mxtepZj#uy`Qh5bhaEbI=g+Zs8EAnVA`f zs`i=kuQmYpiR#RtOsP_1g#D@`OOwoJ}jJO9b6{u zAp{298*m_9Th{n8>}<2?7?uGy3Z*-MyEZiy(B@DMD(fQf#AwzA5R-ZpdWl2T#u)1W zYt2_k)Ih0|+fbEP(0ujOu6-*#Z}sBaCzfW9PDR`n5B~8R4&f&dFt6N}99Y|hP~x%b zo?3Qta>ywtukM<{e`!j%V&RKRvG!;zV-7Ws8&j#rRprla*I2YtoJ~{FJy~n-EZ~7m zr}p-m5Qb|p#4&fynUv&Ye(jEqhI@`)UL`{wm2q)#GX8V@(XA{z=d!V$jc2y>)6QL^ zXW`kOeFWK_IXGz182u<(k0HCDaKC;BI(um2yz3?{Fx&Z^X@Yrd?Yuuy*%Q-tK7n3(u7ddt^6uc!#~ z4j?&D#iaf>ENU zPB8?E-`Ss0^&@s(l=-~Waqsod2R=O<{XXszKfjsU+czIvTXcLGiLLrNo#E*mD>uK; zxLvmwPyQ6%^$G3>ax9%RnXfmzdNn&kJuEw667cS^W74 z-a8x|GU54)z{({iBup=iHpdn2Ux^pgTM8s>y}w5<>w-oV_eRe_j}ckhqN1X5^Yg(YNbvUYQ9@Y0yZLCoks9{BxA&B?vUMD373(?MUt%A$J{s9< zBwvG6G76Hu%}7hK@J*08F1|&88kSt~Y(4%_dNW2KMRZwS?#U`g`$lES zrNf86ONLt=5NbPaopPAsU(~@Io&vYfof;sz7{W(?S`+c|1MdZ7QAoew-Bjs=+shv&7*@lPvaZTDDP*2H@1j$vV%dWi%ZUc z03Sn(wLnL@SiSG7wN@FKfCl2D=HtT(#vDgy!$aYwSY5Zz^fs$_v>`jowSuEpJgAyB z)7#bDar4iG_4HY?W#Ee#s>2kvcveSmY1yU<51*E*n)17(9ncl)7|k*t2=~bMd^#s` zLPG)NV4OK;f)DW2bqZD}YY=_&P$!@x$%uY;mdZ{$hc76*+b?P18$O{KH!~|^wAs&5 zxK+=dukm_K+Sq%^U0c{PyapYdcLi4;nUg7*AtHB--4y|OLtIS1SQgtH-n2= zILT=zBy}@A#Ql#2bRvUuyPziaBJ-MlNB_f=M_wR=512v`$_wD#)B}vl8Y@wuy>>Xo z`a$^PB;ArN)7=rTet=056gj#EKc;_)TXW8V3*0+<1gkrBoVs+={J$I%5NOqPxtB?! zUz$e?k#@tFx9Qb3)^rnU{z;wkIVzL>ctS32mvS>tq0K<%)In3##9 zqF;yx^{Kdi-!81sVh1TW!TM*u6a~i>LMi)+b7U9ezRqE&3gm{ z1hnILf~JoT2jD^wUoclZkWEL02s-lstnsB4k{%%T5_2%X~;! zf*_h)6>-z*X6)PAD~cwq!4JQeRcLoL3f22vcBOnBVgTaztHjWZB-KG})WziVjWt+Il#pH30KTZKy-@Va zEyiowZlL;a@r(>0Q z3^cDdp6k`r7+8HwM`8;-mQ>w1*pQ*}j}VY`(iP&nmBq0cuz6?3lSoThMcck>Og3b> z8ih~~H8zgt&#A5+m|6u`yL#9I%r=*~{*vPb4ufSb-ql-28Ka(6<0)qZ_Ujm@=IP_{ zJslE4{4Z&Lme1X3ay&!+(iN5&9wKojNQ%5fTyVJMnsjNRlVxxtajWUAq|sm5WPtX8+%u{wzHT=+gigZ?bPmov~4@dJSHw8ZRn3%(-riz zwQ3ae#*sqeP@T%>-89ot|AJ-15Q+S?g7Zr+wa z>Xw(6A4kyE_w@Dkd3j={J|39ZzusTEB6ML7Q@b^pC#N>>6dq%lr)NYF-fWTxVS zwn9OgRfP;!dGk7`kvPG@G1I(c^L|qecUz+3l%ilKajY}VOY^G}4ODNBHB=3!gqWI` zWM^kX{N(CZH#er^h?P5WCde7;x3KaJMq)XF7KKhJbTW_#1S54_%%-1T z;qy}lS4Tu|^G>JiF@IomDHM$71ilpN#?d8nA~0$h-WN+Mw)6J!8F8sj1YfP|T^ai$<`qxbmne;1TcBS58T!g| zL`4vR8^cKf_<(%EYcv-TdBONl#Is^T{w+KnKUnUDJR)h6UsZM1)XYpoKtKaqfiTwA ze#Fcx_m+-HGn@Vcf_!!?YJj&?I&->7bDkFZaP#B!FD^fYs-7NN9=t>h^(b3>P_OFv zH2%i+))v$ha$w2&hV$iQ8EvJ2`MRHrEiISemPJH#s;jF7P4?V38-nnh>BuljZpqtQ z24{+r8e{}Wel!qSVo*4WMyK4q6#BNaABJS6)JVsmRgf``{$!)eS7G7 z?#qk~ehCoCl#kJpT}k&yQLw3z)8&xuEra8L$Wig_lDf@TN8D*&wk)_`Z3o>jRq9Nb zwm97x%TgJZL*)BfSA5gu{rTw?be}b2guV!qhU2u-{$wLykamS+=Y2ZkcQiQV6y5vu{wfj=Cx7$iX0~1A_v{ zzI0+o@@m}pGv6t9jju)^x^%8D?}r&ZfP9LqMU@vH_G0tsgG-aPCp^;atdLC5Z#3mvMyn(Z^4A zY2$@k5D`6dxirunzMXaxq;uA{js~FK86b@c7T{=e8G&N3T z>!MvwB2Hf_wXFjZacS%E;O>4THGg4t*y!_ga(u$?g4K z5>m$cS=dTV*_87_=UzUU9VRUoEs;vRm0+WC3O>#0v zfla+dioB;8pi){ZK76<^F*Vgbw&)DNsE)qAT!|4KRwIVAY#ti9(G@iITiF;lHL?h7 z7SA(EG!zZp^s%1d&ib`bjpM(dExBX1M_IzV%^Q{uNAW0I?A^OJ`K;ILu!VcP*(D`X zVtyyj+ECSU6#)hf;7(GR`LsiXIx2;=)phk3dRTe+#V z;08v{PyzFqp%vF$o#l!`A@g^Hi-G@{(5#+H>j9LK5{3GZ)1w>wRDR>rzWT)$&Ke4N zR^3GE?!@QT7Fk=$V1QK(qUI1U+g37ok9Q|N9$Ut)1+0cZ82~B$Q%cj8XIk=w93q)N zr$Vmy3G%I8iXgK6aCgZ9uK$Io%u2gP7%!mbt)*u#rEc;^c!WKv`V$DHhpz7$VazAi zgx@yGVG9Yc3iY&GyQ8Eq-?JIjUgMdSaV=>4fhaGPEKj^b*bJX{D2IYXWo1o+*XCC? z&jOBxyit2&2^;dsDzQbv=-_30k`Sp@zgkM=$Ntid;GBky&bM8u~{uuvatmrT{ zm0M6yFqVelhe!r>>{o5uA23>b)B;A;;PvaE%5=%B+1Wq>bl_t}2FL(RS5{U4b&i=E zC{;q_<>mE|S7rsY0|NuSeM_|h5r~4Y^=4kz(GL%3iX76xMC|rrxa@9%@$^;J*1vVi zWBfCp8QZm&`cAFeTAWlR8pwLAzKOi&qMx#^jRB@ssP)*LhI(sPXM7m0uv7MwR2qhv zb=RHAOW^)CmZ$PwzrLWMp14IzE2 z(?+wZj@%M_tF3VIf;otVYQ;}ETy3z&)H6K_t#)7Eg=KC;K7B;+|7SdDZCS;(Xi?p3 zRq93;AT%#kwP~;leA30G32ozy@V+eVScfbf+A#X)qxVer^Qxx1n z?3zydGn(`T2)q`zT^L5)#Le1LCTtU)J$t1byz1-DsTx+-B|v0-QK*wd3Ctjo>CtI# zjK-WMyJ{7$)yP>U#|vvHb>tiX4~P}x7^&JT^ieB)x!ytsVq0l9Y=nu^hR6|B>eg}` zik>&bkVR$vdKQ8Th|>(ukTK5VMJ(^*4+)72KRcoy%Uq4}>9`cLReaH9?$*N?uv56T zbv;Xqk{49oj~sY`h7>PE{HC5wecIO6cG~>jt>650;;#jQchi5d%(y1>A*mhH+%wXB z5&xuGnMlvKMV>JIIQ#&HUQPSFd$t=}>NBn>`ZP?f%&E>sUo)D6sL?d6JlpTG8p_Ig z=MIAFB2+fpWO6EOyi*Co6y*YYVmtD!);06ZaIT1jX{0hN^hR*=f8-FQ>^IogvEljL z`KulspZBl$%*dI*SFrKAIw_0G4z!60*SKTdmimK07Kk4GL(O3 zht=%=T+ELb?aBPK8|abf5(7Y`qFb5bFq`bxOs(!lfR_1oS-Z#oN;D6NBX0!4e_#;(3v};WnO*MlR;4DP769cXTSm27 zSY!eQ^q8>G44?3zi^q=I3R?u+v+;LHt5PSc($57t`EdQmoUCN0I5B~mrCq7iH=Oy0{a7# z4g*>n?vRcfyyqipU^VmJJvuGvm6{l~^scv?Yn%;cx*0ewC||cDVziV-_6~0hPodHq z1p@~!U|_#TM3dAOPjU8J#`MnXI7^)6DS=kbdSXmncdfmvzOE$ivm=umwkP2WyJy&y zR{*65WS6$DUjgm*^30htW&Q*USy@?^@42RcW*e;W%Nuam6&C1NudtD zwg1M|*7@d9PoMB8-^q}5EG*S@%UVW~W!?I+-@d(+XI|6?LJ1JSdP@p`gbPICrQ7FV z(jzWDUN8U9bUh;v-jnxXqjeGH>I^gZwAy$vBD*L%+Ym^a51BXt{E*uia+>MQi9>B| zZAG{G69zLu02Kuy6CfjX3=D`emw8WPy($mPb=>NA09X%vg_IKJ{u$3$`oNlJW_ETK z4tB%A#QK_<+&mLw<2Rram({s}AnNv7Vpx0+Gp)db~h8$R<|M~|oX729k=4K3N+}zw;(l#;NHYX>C zJY(L-VJQBK;-lea3`xrBz)n=?&UUZyi{u7uZWx8Xy@T;Nda-rSI-Q^0?~LS(g6izW z;k|(p#TR$6;s*x@73VjCnV~)>03pCY$mAf9Q@DY*lUnip`*)XZ@=6>E*c%kMqD7+{ zM;~%31}#ZTOPg9)B+(pxdIihUcl>H;dWkc;=r1JhV+=EJ1oodVrDI|I;axO*H-1reQ(fsrk00+leE6`-`@6f_Iy;m2 z6B83%CfX9cYoqqQ*|%?B2ymL%ZtFO8z68K16cx!EcGY(4CwqDDnnx6eY#Y%6aCtPo z6JLhWN{J1X8yphh)luzFdB_isxQsMz+@01Y=v^A@^BPih`=!v-8~ zQjt4%G8K`8HtJEFWZwl{MIxq(CB(#fyED{Ht*r~b#0$9rAq1>J^wVR~G9E)`L5g8u zgu(O}JU@M2+NrabJ76fo+$Ko}YSa}!u8jtwe&UN4Ie@WzSmXXm)A1ph zbi8E&sALcn`@WA>Ku9kcm8ukAvv?ceR*>_7$Cf!XG{n=j{6#1oAWZdS1s}&#ZFF04 zQYJdT#dg~6567};-fz@{Td*$m%O&Ex3QbQ~EM4bZr>k70;i)vxkKz zANT{NTU99~uiv~`>7s6R37YN?5fQXVRwKT$_ee1p0+){GS-ODIoWD%jS;hze@W zcqxI#Pnb9EU)fwEBFBTLxAU)+lG3Rg=|QA#nlJ+ka_o*&CG$00csSB+gmzR;NOUVh zMY8$o8JK-h8|Ui{Z<+a?S01!7a|=ng?r=L!M#(rx^m5O+i<;VuS@*NV;qljFB(v&f zBzkGhyxL`3mV8HV88`UKw)ewv^7Y(NS#M zMLYdX14PKu|LMLAKKccERkKrH=v^n%(>9qs7;$=Y@Cr`3*$&l+RkR zec}l=ihT8yJH6-`szS^D_=a;G)0uETtQ!m~5mCV4pb?0!ojvSEMx*YyXI>V0x?vVA)AJpfN zcObOn{{`~zc_)lDpzFbU>?j{`Bg@)D+yYEG&wlQCZf%PD1-GG!9<)gPa;)#Vea>W= zZ|-7S=tCjxW5O`W_TJegLVC+@_3#d;hOTpFab}|L84YNncN?s2rk!&d0`3FVB#_`~ z`}m+xRSUfw`+u1=BPIgt(J7iJCmccH>n7UwJdl+~D29N_{pRBd+<@??A~L}YNV~1B zXo6Yu0n%KjpI*5y#$8zPL*zIcOu<4>k{{(RsmExnX5+d@(V1P8Tu#(;2K`Pk7kH{b z#i%|x7p&WR77~)nTe~q#-F5BZMsP?K!@>MPWa1QePI)Kj_9rc$LCT%MBQ-Z-sLcY%^2-4Wu_ZL2Qj3xs7g7CuaQpVHyXQy9N6!+PwI!_tm|?2#@H z6~CEU-N0;8T1G#oGBBl9cdpL2CmWvi8CidMK-)b~@1OB{zLC}s$hhtKfWb;n+iV@s zemAyti}zCC(o5fu0zjkI({sfBhno;myV~2wiLu(81(}98hOUu^&fM>}KGa&)w)V-d z1*6^-`~T!v7Nmy!G=rVZ4=N)yOhRh3CUpC#VYaAKeCM-={=5{YgJ|^U=bp;f8&~ zUmV<%nbT>SMIzxHk+kwuWt__1d5n1udp$cCr()_;(R4;P;4|?1)p2r z#r-ll29~y~vFt$1lM^eoU28gChXbtrBy#@J%Ih^kRGVPuP3&abHVz%#=5L%d6X|mgOeHZs0Z`njLFDx-qLt z?Fx|DV#nRNPPF-_w5r(LYK><>V#lquHpujqI@= zwuz*R?8N1UhwZi=V`tt(He_fFR-G(f4c`vu?d>0B+2enUq2F7(7VNQ1+=?auxhJ0s zeE0V9i`V)2VjaLq0vs1Tb%D$Lehq2Bay=WVx|Km$v89>xVgIe&JQWT`5?!c zn_8`UagQHAmbv+vm0LAzC?T8$YEu2CkDqtTJf+#SsnZhKh;_POAqc769uA6<>0O)Y zQyG@keH^pbTA3j&;SMD{kXP(v%1TkV zHEz8{zDkY<6604gCAV@u9SvkxwkFE+pRWl>lMxdRDSu%653WpZDF2kO4SAj&<{zqS zUdVSHbD$&dqGsK=qs_(aGI<-HNjvHp+_%0^Ilu-L9CdqIv`T2d=CT5ZyznD* zjYf-Xzb990?ohgik5;nkHQ2~@%-P}*L-*We{KUOD`KLJD)=Sd@9NQATL|mh79B~Ct z1Fgn$Nrp<9C#TzAPWCO-(0Lr+hr1cl!vYmo0@)h)3i|p_C|4P~)?Ke-7n3+$t4Jpz zaD_Z{DyL2)1kw2=?&pc(lM#kETFd2m!{i>*LrmKI>%%yOkt8V>)hRhgTw zWI|th#iN+Iw473+AnNeOWZx07um1(%8Ky%26FQ#`hxt-~&eb1JSaU!SDdI2qDF3|^ zb%%ug*JjNBLyf%dkN^a1p@s z^C9;ETzb4CdXJnHBjm-MBbd+k^hpquJcjs%k6%ib(ueIJXg02h<*f_o^AA`1c* z6n{^V8m$z5C5S*fCMTp@v*BYj6w%!a>S~XLM zwdpYFBfuoj_y7_oNOw6XGcFX&txy1@d*!uNMH5GI_IGZ83obl>dnyC=&3a$H^(n-f zPGjJ5&+I%H#EAnSDY$-ZGZ)2*{)lv1<(Tc>JgH#A@$&l6=GeM0AoaJDKw`tk<*vF3)0$<@ z-%fxs7bdQ=h6)M_ie5kO!?dP-Yc!sO?}k zn};0LpOiHUevJaw7gAGSMp#F(Ebyv+gNcB^Wk(=t`?-t$GYCsE3$87jdai(I^y_`O zGk||pDZ?F8zdGm!5UTmm(KHq)b~N6HVynw5mgq623pmsWEjz5+OrEsD+ilGpN@M!z*oMmD&54=cD^)iAIg&FqZ5F;= z8fEdFE3gICDtt>r{|Ov&H_~of@~ct-R|rdfxYhx=UU^wr?YQKWlu!>z35g_Nf-o|Q zYl-F#{vn>_8z7KsHYQV6e%xbm?Ju^Y`Ti56ES8p>-6ep-^0ugHctt@gl9V4k zo*52nka_7g?x`pSWMEhaK0`hkMo*SkQlWyPAkb-UQIR>A0ghd1!!DK}|LH5TmDC1F z5HKlB_scnV^A*@O+F)$M>kqQAt@K%X!Y1HgzpOkT0l|+j##1)gdr<<0bzN@9wh#P%!vL{GVrH4vj2i7q96LC+ z$Awg{fYLIXunh-Ll%X33xV$p&37t^jZFWT+aeaMyah_@*8{Sy$$zd3|afAOW$4yax{uw=XGT#h4x=DTH=MbK3j7 zU=S(X>ET!j7xRBx?lNL+(0KF9L9pgdznTS1&HKdI8y=f@!Ah{aZz%v6K_dAAMqBp@ zyQCS=ECAb=7#H^%fvw0vp)N+U@FtDp_ydtFJ@nA?=C6jzV%m>mq=1V7is*VrkX?zB zaY6GFhN_nzw{miFnqIpGj3TEdCMQ>Kr#YpE!gd!}v4u0X_2Vj+lAj53=Q4(4cfa|7 z69imSz<;h~A+>_ssIn!BGs~^8`mO!zx=5ZNt=+qK*NjCgUCuoU-Kw5__knkYJ8tsk z!%Dz6Mx>GcuDcq5;wS^$24+=--aNSN8O%AsH;At~OA>u6h72_$aP>zZbpMz#l4ANvxmw#YpBAB5wc? z1@V1Y^x6$wX9QUHZHSA`LlSxuy(w!{Te;Q>Xk+76E!*T9A===+;IdCBqTnVTto|ooWkZv(F?QvS%XW?K9V(FJKq}U&Fo=v6%Fq9ho>r9iC4dnnJZ4 z`O@Q&ucQiUCl#L4fya9FD147_wMy>IF)-ZgLYEVE5ZnJ>7X05Vm3|lc7eg|5wNRr* zinZD)0=ClN$r155Q0mZhhc*$ETCfS}JGUo^EBenp2Q_fw+9Ib;ovt*5KLPE!j{PqM zTKF?zrHJf57ByVc*4F06?qg(3Oi!1LX?-JQ-*QSpVc?_A4q?df6r^$*8V^8OoveHR zX<+63GNodirJu+T>|nMfh}LNCWND}9JYPPa9)e~f`Ab$8`{_fL{SQra<75-#=O0|2) z8IXV=q-CWA>HN+x217bZm@wNvgpAu}`ct>0y?{Uo6+W|F6W2n7KW$A8Bk)Oah@0zobyurnzs=~*AJ zL4zH;(S5*JQX79&i`~Fl#y@0m5K4 z2`@_G39}gtMftpH9QWkaiK*iwC>)`Hto1!OGNBP*ZcsMuyfX8Bur9C^l*ubr96oYH zL{-%m(2e#jPp^1;zk8GjQa(D29g_4>;!988HjpAPZpVzw{csw9u$_~U<&AkHPAiyp9u?#aD+&w zkg{Bzou|uefzgKN_758IYd5IczCagyqio>W4Jy)}TVLwu+PJD1*x6_glJT|N%pCg* zMh79ji~r1)5~{D?d3bZ1NZoFf1^YL!9iRSex(mR{&#A#N?;JtL!foAtHJ=^h(v6 z`8Uiv`e-^r$UWmy8Igdn?#?M)f3u`Pixl<2OPk47KYn7pqD@~Zm2d_@> zdH*?8ymuPj-~ZqVek-VLiT8V#W0p6&2CJHpJ~1I5qmWryB&O38jY^!CQKnOApxu zOuA`haI!V z|D+vwY=>-D1WEM2t`bub%K_(;tOTuKaTGK8k=x*;4UWT|Xb{oJA4i`xD5`s}F2$#* zqY2U|XD6-pUC@2C`}+?vMuAZ20=z2b=SKSbv)kHqfHPWHULG@5623hPJnE*IOq}Gd zi%~|G(QKYt1qf>*`^2;Pml~4F(AC6(Kh=Y+r&+H7FN#S>NS#M5 zq2jbTNG({o;(IbbqyWchRQar>h3fE;v4pqLi7M&hQAclps)vXMJTfDUO4*L9;R(V4 zzliGAC<}~J!2WZn6AhlxUDw<1NE0sTpSyA<6AsMT@6kFLskK+i5wt!ndZC^LSZaWL zarvkySn>=7{m!6Z1vXbQ$YJ#pFsW(3Xkf^!TQV3nlXXb!ME(es*A{hE*^q zHK#vWDt-~q;H}#I!BWBhwb&jmJOf{UY>)?qFrdg=hefBSMW<3<_O8lKMh!YnGRN_6W3cFqnx?MNM3dE6 zujr!A1n-`EW<0ECtQ5dB0;&P1TcZM9161sDSOCsJqCSN0>=f;VM>|z?P?BlDrJy+n z>O<^WUuS5`_STp8s`9L2J2i5^S+UHXi70v~*lqjHC!I91*qzEdE&5BcxQgb*#df}2 zgRA)yfYbD$BR-ZrDBvrx9kpn#{m6@gVYr`62!@TJaFz!AV4zIY;pRbZT6O_53nGDBCW}ai`4=+kh!SvIn(GEeuRw zp6_4GsYH!seJv0_>aMi)M>rwp-v0_H$=YaOjzewE*BX5L_6=~cfC-eYwg5ds^`<@+ zxxSH&!=P@n{Vi~((iJvn!{whV_|BN%`WCGi;64Xs1h$R(97o;sqe309X@9c3D($N0 z|K}J3T4+tt{OYnsus3o`Q9v|@J9X;DG~9N0Ma^%Pzzaz}@c;115TvaC*#v7cCRzbZ zu=+7Xz`()Dk_7^yQhro*K&(=@k0J`1r<#CVdzPH14R zfip@XE7A;0{#iCW^8DD?k|A{@m*qS*wyQ-0asua;$nf#UnJDLj)S z@_<||ZPmr*Sy>4}m2l%!=*dTb5->GQ4KLW^pr+Gj)&x6jHhj{t5(VdRspC}!M0ttXpvJZDn; zSXEmPWcdSDqRWh$%NHvzm!qGs3Y85fJmENZqLnxnwjF6ST)OUdJUiQIhvCLh%h?de z{^OJ;TfB{PBpLLqc4*)uT(GJ3+n7r+$o$ta3*Z{7+bd; z!X|6tT?%+iuCBSj^=xWmQwYwe3K%pqH_rmpg>Kx^(h^v+iWPuFnN2je`35p&hwb%N z)g*pcb7`b*6aByu32Qk!VIWlg)WF)yYv?SuX8}UL3gBBTCMaoc5j`2PCpA}x40#pk zNvFs8c20YeQeGhx=+SVqe;+xRG=)K``MeQV-`?6-HU)==0T3^KwO9=((Qzms!W39l z8+lYp9lLn`{Q0c0Xf6fVy6#3M;mMr=4JWgDa&VN@N|@0t^O@2IURTLiL9n|PyvH9p z-?PAOSVu$vBSLuJ@3l^4UXfG+ZX@vldHXE~m4(!^JI2@6>vPK9+-A+_Q*sv$PNw7H zfr*|v))%&{OCFB7K;7D7e1GfnJ@}L{m=Ok2k!;}7O}&?AufQIJAX4@baSIgSq^2dq zH`))k4-AJ>x4{hV2A-`$+=wmbhV@U9GwX|EaI!KIx@Ij+QGjPM#d44j912suTV=vD z9hC)+-`J8C(hb^(=$$8QOO<>>mq{HL6~5_Sjk5mtL_-vLdvi?`oW^mo+x85=+~ACZ z`vqZeHw_wpJB-TEbMHMi)UmNGrO6g;P~YF(%cfH?mxDwBh_zv5+3+VO0-mOop6Ta! z46?4!jPy1HksSIOx< z_9oTY@@schUvUfX*=EVjBA6W}BsBQl1LYnil&#%eiJSYMCVIR)6>9fxB@L@fw$8@E z75Ac%Bf4lpC9ZHPEm$8QMlu=GSXfaZ2LzSb%Es-2dB9lRLc)&GrpWVq(FyzU^<$%M z(uz9C3MwIl<7Z!|0yCBtW0qF1Xl7gdrK%WCKCq+je)BXGoQ*_11|K#TC!qV`8eI7V zsfu?Znfr7K5Th={C)JmVB=Uv*Bc#wj2gOQ7_o@Jb@Nal7;&XuMJ744HD(I}Nqs^sv zw0eOh;6Kov8tc&M_tOQcOJ2kn7w7p9T>NuqeBrg0GeK(nGXXnjFGBgEhIXC@aNAX{ zm5!<|T_AR;HVJQ!F#$^d&UgCzv^Zde0m)!~6%9I|fiJ32WPNHotGeZ;s~Z2w9X6)8 zZ2joTeo0}5&eIz&51<>xVq0v7*L-L)erFq!rk=)48YFr5WKNC97M8CCtgMV`qwiX| zkgtBR`zG7|jrz+|(0^%$4{s^2lf?laU$E(hif4ikq`GQ9O?fFMENc4r#MkB)?Q{T@$N9z~gr(I_GjqWe7`&{5) zQQQP4e7Df?@f96*?AO8%s#5x92T#-f4H)0}FMzxM4(|LveQ4#PAd;gT5D^d%ku2HLQc6Hklpshj5zZk= z&Zr056l`e8Q@9g*12znfp`{QFqCkEcC*C(ddosVwti zWV}~BGUR)9poqWPNk6K#vAei0!vA3I&$uAGV(4sCnU>zt9bKpM3yPR z<+S$Y?<{sZsQJGE6hOt;pK6&)`5R9swK zsaLb(=#AqUc4MB!`cM4*{Z*ngyL&wG(Sjn^PL17X+~vwcWCFCd(e>`?TP~+BDJf}g zVG$?W)YPNr_-5WhTKAzdvS^HMkMc8H_A}8nc1LlJt z496CR3;C$ZH19yWp1sAs2eS?5Fg!<3SqWEjN8bDJ;UohCLw;dlp<%+Z7y){Wad3~@ z!-v+BJd|tKA_T701RonrSF~xg@);j&=3`@Hlk{|PaS;*W&bwGbFFyOLr?l_izu!~(%4PZTux> zU!7&D*Kf{rOda`rtTKvnOeRQ-qNSxJeDiy-XqaJRYC?!?P}E+#NT&>S&s`+okpxk2aZMw@06`smEb)^#TJi82#S_R**6Puy7*Zde}T>gHBn z6?u{0W-#%? zf~JA2&a-A2^V7ZKR?S#|8`#7&<>lr5ge*cX1c^od{`*f>y;U-}gw}hL$CVA}g57`F zy!iopoa4;+FZDIo1T3;Q2-dL41_)Qq4n-P__tl>9oN94llj_r*8Sg*iDS7^UdPM5< z#Gt8&sA%zvQ!afYr~pO|j*i9qlNv4u`8Bpzc}A<&uBAC)#> z?z@12VV3+hQX-yIatw1oqW7$X#54V3zgo7=_I74%ZSBphtk<2UI+$D%B_t%q7ZR_Q zemE^5QQH|XD86rBQG?S=zfXez#zjau)FQIXh*``b*|6+&zQmls)i3Yb+uLh8^Kx@p zBtvjJAu%yu#GJdnyvQvtFMlp%k;|-Gl>dbD0T$&}QM>r;kt=$7Tm6fzOC9Kx>9uu# zl8eHMQtaVd8Ia|YjcTH#q%;~DG}w@0fid@}$Z~eZTrUz6KYCP+ObW57_RSp~9Tc;y z`T2Qa^Y%XyO`Dza6P?o!Nqe$7j>=1xt!8t$6l61>$>RCc-=D_jJS$JuROZyTZ5`jf zNlo|jtmc#rtavT?gf}(6Zz`IzuPNi=>W$mKWK1;CHgjI+%42h`@DQI5o1JwS>#J4t z7c{jla6$+0dZPR}p`bO;e&BJjew_G5dU_xBxv^+xt7KF4n>Uj`2a3`Lvlg_(9Mf;kHG-l^$n?_`JXU*GrCCD2$MzMojR zYL(HaM?38%8f^+44vk~+c8zwI8`Z{kNEB)$U5|YEa+jXIzLr^*tk~3RQsK6lrpxcw zh?hHm{`~!k9HY{gceC5R75f)9Hd30MW+EM%Py)AX-5O4oKUM%{ZcOvBHisIkt}i!1kVGS3xFqkHO)3dGCn!6DvuMBk(# zSsp`^SrtX0*)-XnC98*&8y0>erAr?e5`ZpLUY-DBFA2#6pCir8yUAr^CP<$+ae^so~$h80|brWs@2?0dPn zsTI}(0|Py^aiMnOec?XZPU^VZbkf|&4LpAQnCY&>8^bTbzZq3h-;9oqx_OfhU~XfR z)fMgNL$mI$V-dL-vx=TIBF>=1=-sVlb^|G$TefZM{m!4gV)aHYtfcu#R10oy?%3uo z%dwtHZZ57b_JbLn-5=o9Bj(q2+RpIZR_j|{q*V6ArkSSnT*yW?6n3>rwM(%R^2F3!GPuh_#H8AY7iO9*}O+kaN?!O43=#%>GGs&DXUWSav$z6UTiw^ zc*LURfE#W7{U&|_CPw<7pBrj9&spuxzjEb@W<{d34{vT>Uf$%?)H9U4(tYZ&IWLN% zC}~BvmaXU;!(_-=&vN7wJ13{Mc|9H7@eZYc&k0gAoyqSlA(Bt_`1ILeG|zadCtiD& zJv%aEhL*~d;Nj|eNWj1NroFvCCYArD-DiC9+%#1(=(za=b?3i}vd|rWCOT4d7#HN{ zG}*GcGFrR2vV#Eo;|V#ab&Icmj`}D5&J%9v{cAqa($cfM;3a^{Sr1mP=;-K%h6YW_ zMjZCO`$1vb;n#Q&?E_j<^PfN2GGOg<^G>8wrS4JiY2~X|!)S##aq_ii&z>1ogq7+g z$(}nWck<-z%(?N4k_y17{CWjjfNrEcKR*|G6NGH#M1K(YH zTGPSxl=yvwqp6;PVI{@IUTDvU4j=C5?Ck6@#|fmK`uK!?`6AcR-u_8HjxugXQ;k+Z zBdd5Rv2LsGXzn)CE>dmr3<$y!o&CNz`@Eh$W%n-*d8?aOfEIKy@mk8u>7&sg1h2z& zWLQb{ViCL^QBhH$FoQBHr==B`{S#Ok$0AGfst6RdR|>tb!`9Ze`-KZ@nJWWNMTpEc zJw3hr@^VE$i;ev&R;=*y@=`VmLXC^9y*7S-#tMXrwv#;Du-6)i*TMmBjWObOlPxa% zAYhJD9X`&~lA0Pd0FAoPqN4Mh%HWW4LQ46-Ir!2>fHx}?IcZN}>%Or5`lQ~Vh1t*_ z4TGDLGq0s53blFV%9UPqp*}u7>FMbOao2F8KCJ~{l()Faq`_Z%YTmvg5WBto%1rF& zsO1hZ2enO`Ht|OM4PARIITj}k{>Amd17*~0G6*0_MnkP1>*5Wc07i4-3CX`YWBB3s zHPnkqQKTFLXmRh_)#~bWe-n=28Z}uEg-T8{ZO#PoeEfr{#xyX$0`%ts5Ch4;C|CTp zV)gdA+0k-Y7J+NNI8OWEU^I^04Ls*;bPCrU(GGBsx-dUe8LKBvz*K#bX?3bquO-Ng zv?r;KgaV>BRshAm3=aNvzjkKBN97fm;7trJl&PsHqvp(v*0we`iWrc0alkRvb&UJI zfH5hhS(^Z=b{9Q6JT8EmSq@qg?=)u@sUCL*h^@-^pl(4XRu3Ix+>Mr#gglX6JJgmp zHk8L!e}`8Rlvc&TAssx46O-O}YPiEET^nolxYbvE_k(&`wZ$?#DiLxE^K%??*2=2q z&iyezqU{zb+xQ?cp)Y_D`Gc{{Fk> zuZWfeF_TF(J1m{CPlhu?yQO3e9UXU765ptq z)fzhP_qwU5%*V%vXD4)i=}YhKK4-DU!X!O5KR#pi)9F80fd*nrkHe{ z0?aij6~waiQ7&b#N&YiS@4uS=`{ksiZ~T|3Q~ysL&Pz^H^EnizePE<3fBGrRd0}2k zR@UZfd4|0WT87YhdePBGZrnijVcQpFH|`ftpKke>lXJDVDpDiMDP!%rb(J(#J}l^C z@!LQ)AMQA&9|WG;@zNEgn|n18p)jf3Kr^aZ%oG$nfu)~%dxu=Sp7K#F3xEcFlG-(l z&v5ULTCDTSp}BBKqD5KxW?e1a1q`5Ftz{p1Sy$I;dbC?%26Ota)}mPpnkbhK*~_pY z*^IEdsEl!qnOOi>RT;k{@+cxi-w>T@e}em}9_}cV?&IO*y#UpZ_D3wPQ1dns9fLjH z?%ywM%CH~H=L|Yp#CBNUeXhBhViR!t&YeogR69V0P@ee`qtR+)d=I>zKZ>^c;>C*& z#iO{pb&Hcp=`!SvNzO$O%o7oyGkSKHARwy4zj7u%?(ZMqw zV$)$N5o#}F`~~*z+t=sWOSrM;mhIa$KUd=Nl(d#U3BKtL2`mDV7~ufw>gt|o`+Fea zkxO%9;;Y(W)9}J>tfw1&{R>)vRpI`mFu-fxC|2|rs~^t}C{|KoVxV!yH_knKjB@_i z1UOv*!W%M<3!~Sn3`VG4ptAPd~nLrVB9UYzFp&@xleq()cCBm}~i3iVshRWZ#5d$tu zs5F|@(X=f~M^id{fj$jbH5_+BKzCi1a~AngJx<@SDcyElAWpxy3_?c2rT5E;sFh$` zO$ZQxSz8|gS$N4kxOp@!TULBd32a9(NX(I45`$mq$ss*jYY-$k-A|3eXmmk(Qps|f zW0y3|oC-mOPcZM0+OYLdPAvy+AFp7)8`EACXmRr9=CPUc)5elzok7k~&&WzsjDUZ*6ceR;Sh1h12hTU%SpOJydUc+rmu`&~gnVaw*tuh8|4 zu!^|%?SmYj@iZvN)by~^?9E8642?qX{fZExiEFZK#j4~OBiwQI$PEJM>5^;E-FL8Z za&Q1G9XB*IOzrT#NTkEN>zD{^CQ?58-h&6_ar`RaXRC4sCY4a;h>9|Mdnn&=-zzMLD_P^mGvy;HY;}O9<>I8<}|O6Cry0S^I48BWK+iJ>25KY5psE)g9-PZ zVLxHiUG~N~mGp$a(+?$J9XZ=Y4tktJz`9TE2Rv4Jb>>0e$er7_iMEZYcT}^Hh%Ujw z!N1G^ta|$RsM>n32R2n$YH4e>>K-BAR(pFAf|Hz@ns4?ndMg#JRqDcp#1d(AvzBZZ zhE1E~OFKwQVfpbr(wi}a8VN>TVEz3QEg(`Tun>wrL>+ksv zE(hp)u-FEFkvezo5xdo3Q=^X4<;yS6xHIpR^b@sDgkaBqf5q5f`o#$v! zbvV&2DKNk4V5&K${F5&8^el`B@(MfioYk869t2Pj+6P%pPTOhf&HRM(f~qRT$}6Kd zLOt#X+z|qHK}Z$BKmbDC95(oTG;RCRQIvMGejd1i)dU?^8Kdc_g{L^zoXcGN?C@Fi zpLj?>oRY*^VPIws^Wsq@O7!PHaew9S<KAjyMh8S?yKmNF3EwuC{Jg#|T zcTgf#A6^O(I*q>spO^-k7{!y9UYM@VVwb#r{W^I0bNwRU7mWKgAPk=eMOOhlgu^rV z7c@93+DA-6g2)KcL)j;t2CV=@N#FFaS?g&+U17x$29b4-M31%b zwVN2|_q$9M_nM`}%?(@#;e;&g`zH8nBv5W`D2KGS(xtmNy_bgz4M>sh_|VH&uNZdh zpcrifN`PddEGI$!%m%R;!Tp1j21c zz7gRCj8VN$7@XPwV4^+}{r@3hut(WebK=)~f5O)9vRa--< z)h&tbLguG&m2v>0G->?)##Y$isB4n2t_xbYBLVRGfz`33l)+c|P3n%2PKo&~Y}xf_ z&xPkjA0yyC&v2k&Qf3g8J&6Il-B5+}-sd(~2MQq|u=_=7$ zk$Q#RdpS5HAmCO)ur7%ElRm8IV6?{blOp;Ru?}Dl6o`ofOsr$#ttjNnih#=&h6yfp z{(MDfkP{Vk%Uku&GP9~+e;)xx;0)j;-3P>%)X$A07ZZ%$2W~=jIkwBW@lZTFrcGYwHoH{=-~ELBor&b(AL! z^6*%Vu7@Ec5Qt~iQbGS95MAj0(Nn8hM`L(!B`{}HT{iA$Z)w>{Pf!2m_3Ntx4Jq*H zJ(r*9uV7rh)q((y76Irov zDAJV?>SQ^R(P!T)DoSyoXHz+S`uDg(tO~r2^WzFg)`8IU>~ugo8r+ESDIlJ*-`8v= zC=Jq7H;hYVeCv8@_nyD-`fJVWa?X2U-g&2`rLEeyJq%7LL`K8;*{LWlPXlRIGXmsh1VSAoC-LYGG|4#YeN(K?^mH>7>)?cr>bLUP%Dhj-K zc6e{oJpv7XU%s>?eLf1)EO_|)63FG!f)6Mb6m=im`85kJU`!M7c z7D@ve5_WpaYl-@wKm){-RshR&#H0y?5*+f!A3rmxKok0^G0U=>jOl+!E<8OqGhst1 z#bxlGS-cF%{+hR^k{Yf3=Y}v}*d?=F=vAQ3) z+XQX9p3=bx;$+nF;jTvd&9`==T{|UFc$FY6CRp{VG+LI+`~`d${9CN=9%o5SzHNXgG`UY z_Ag8(hI)8RizX9oQ9=RQATa+>?$y4Uw;FFR-z6D61Pfd`fD@E(G%q;CK|Xz@C2(mxw(!j!zL;fpxV4&{yKv9fkp`(UQr z;(p(4a4OeVI&o;p?SYdNFh^>2rK^j}+4~csq^LeD7^`MR^N`EjxczAGqep)u**ema z0f?kcwEud9Anu=cpr*PKf`gJk&?CCDA>bX!!X?-YY9Z3Ym`0ExI)uu5FO*VMW8v;O z^Ztc;rs=1~3#zwyh;d8}gX2$Vlu>n50P6MV`_*j3Y8cF%xqiPlCpVW{P_SAISs#^4 zAMx=HkHv58`+y8jwWh^`jjSSSmkF?ic%{5pUKre#KG6z(Mi3vU4u#D2TZKz?Qyzh) zWT4kk#20#C(o|~C4>KV-aSBeqm6ajR!JEA}2-Gly5UwJ7e)s=4#`~{I`Tlp`Y)fnm0UOYUy^@lW z5U3o3Je)#Bi@(MFV1yh0G^eol*>wik5K%=YKv)@34J9Bvq62`8roDs?aEsfGe3b4i z@0v6%rzyP$tfCqua{@LL4~d$@PouNuQ+W#TSi@o$jr$wz@};sj!Cl_Gd9znQph~O+ z#y;QxfdSS5fB^t-HEf*-)_Hyj|W=CysfNF)S8zv^ncwZnvZAn-Ojr_uz;` z?nhf@8uit#d2#n4b5^a3$}SAKJ?14eZjrueIIBd3M+Q!~h<^S03X&h~6JByG>m)`_ zojO(c27Z~GW6d|EqLJq!whBNO;g057dX5ZM4y`4+5md%pTF<2j>OaFq9_H|yM={?3Y#8)FeP=n=FZ&c9^LgcvD}!RxK?HsUCZHi zNf@}vsaqtgM5AL{-;Nl>h&$zFPVSg#wdr$fe#=LGpy)L+`PgeIx9A`$J*NEX%mygb z$BIfme^!x`lY85HbIEGa3CzlJw)N^V2cq%nx%9zHXO>FNL{3P1@FFg{OW0$C>Zaab zGZk0EmZhsb`_OUd*!ai68Yc2X)S&^lLZN8t_iYvSc6L-k3W)Fq36WqSIH}yJe?8z^ zZYk}??wj|V|AJHyVz!(l*h+K*A~u`1pHqE`g)FCMriJqN^%I9qH9~1)NE==)c)GWs zpr8y+ZZy0KElZ2a9^`nWk><+iqOA;LVa}p@9E_M|&c;9K=Fe5y;mYUmFg$=R-(+;^E#X$@2*`Z zQ3Yx5T+Lp@rf)2%kJWP%5fQPR8>{v)eH>;9!c>uBVSw__4GkHPQq|7RF1(kWgCifo ze;x3ps9@K^>cb@>7Nv>EZBr|(5X~eJs{H!;i^SU#oBVobEj7^r)P3}&W6QU1A-=x8 zm+LQfC)c2dPmlN0(3xPI7A09t`0e~JJI_pxJX6;6fIVv3u7 zPUHRrwchK|qhOMso0%A_#*gTx`ylZ|SBxR1_8O6u{hG;g-QC?9u~+V+gQ}lUZcC4K zZ^m#~BEM!_5hh=kWEw<9r$lV#{HwDbQSS{Wh;UhJG&>q%ANdn65lt`~(PEQa zI=bd(231P}MR~#$l=l3ufF+-msJOT|z)+DGV)Hf(N@i2Y|3qddIu7S^awN`yQ}J7N z$sr~sg`~FvER0I{LH&(sNy~Y7*&q$r)X-y(g%3Mv{TxxcUTwSnlC$0x8Wj7zNwMfO zdVhN*iAMk%M23ZN1wePo5o@;X+(GaYmSQC=xynpOdlG*k+1rGz7v$?Qk2+4rTMsmZ zBLrcLtqvNQ4k^gg;(^;xVw-vJh#B#S*~4uHn>N-bT*>!Tn2B#S+nKM!w*8p(c~bR} zLOXKf>pO*+NY}+j{g6#u3!$&7SiQoho}Mr9AV{S3&G<#{iDzqd<#xjU)@8lF1wfhpLc;8=IroQo>3!t9hwO(wGReRO-Tn>Xo$4dkYGO2vPIn{!XaY-G z2l30c16jZz-@-!!xvc~4Z|3v^r4ugNh9K>IS6A*NVfoltcO5f8EZs$;arnm8`66Zj zpc)Yjw>~Bz$((nnaZqog%Wad~15Y?d02?rJ_2ZN^`G^s3$vZ#B$dQXy*B$E&zp*ypo}W7WMd2ZWr5|1pC1)v#Kjh) zL0bFLxVPMOb#*0O5GGBMh*S>8Q>*oxH*X%pj*_bw`3}l1>K{rJyFNsUH3=17biHZ#*Y zbLJjs!}i=p{kXj%BI!A1;`ZYaWo2dCtITX{RIgll-SN;1=R+0DZ*I=2uvQ%wrb&?! ze(M%p0`|<1ym5GvdN^;M1l-~#=LJVB#U4+S$QzoPlR|z7dSFwMi`n(1Y@lZAQJ)US zkX@TF*6^JT;dh`gdl83)cnYM7#OP#8X?DW0C?#W0JhqRn45X3Hj|44rAxj+ou3)E^ z$t)pr5^ju!$nuj&u$rSR2Lc zg=h5`LSHCCm_2pI(fi+0U~`Va8#e}$vqR)f8DT2SqOMPmcQdG&Od$tGXbVZi1E&M&DLn;CofF4c_5neyu-r_ zwo(`ACSP8hg8!g;IgQ6LK$!ufQ-zTtp~T|nLW-n@K73e(dgf}PO?l`>;?A&keP-(d z86LW|ik*#%jcxDlww0&TtXp~xW>sn@nj9x6q>Y0_szA=_pIAT~xfIjJjS>pa2U7*c z(PPN&?2BeRk_M5;v_dBf-6i-!gQswkWH9Zpw26X73S`Y&UAxx%oTFb((Hnx2q8KdM7+Y$*O?qH2Aol?2qk>p6l z78D|`Q!I-4dBYgJll3+PyiC|F47hZs3(7gcLJQ&4r&+UZr)T9T6+N=m5@V`#TY-g=yN=XGu)?*+7tUo_UpPo+%EJI&Xdx)ey;jSd?wtuI*N=F``oy`8lshr z4kN`RHV=fs6X7%)0uw_@Qc~W@DU+aPfUEa+R?`r3`Itz*c5P}G(>cg?mcjU%f1Y-k40sTMn&ot??Jb6meD8DxMO%^48 zMs)oH0{U-!eijfwY2~W}XwXLdDW>nOxmedUJ{^yNP>Al~{`^MEKv@~BNh!<85$VF1 znwY|#yu0jk*aD+$XP4S!+Zn*4l|0na8Jed1#xso4PY+391w)yHNfn4`>6bh#v@z4w)30i$RCG6p$uIqkF|ufh7c z+1Yr55>~*SdNEPVZfp{IV?EduiR>hk(ni$-|C5Fj!!yu^>01|P;K8v_V@dLqnDIF# zw2eUqXqJ$`l3OQiX{=03`l>ne1d0(NOOZKd6DVkT4|nXS!VVd54RbGXmCvimuAwg^ zss%5EV#elU7oeu}h4-oXMpokmcsd|}uu?j2z8r_(J0 z1}=v0ca>}k8-W$@47)k}F?1Fny1GRlbtlo`e6jkUaR%P}(AS*RoRgR5k5b_aR+MVA znVP|~BOCR8D^9YRjm;FLTt5gyqnWU#vdQaV%iV}!o^#2E(2io>)?U*`yl-Q42NFB= z_2d@x%U(;4=i!%!!6**HBsql4i9WhdZhd`yUwu*uga22hg~>eeA|Rgg=!vx;8~5Ga zk6>B|!dDT@)lBEZ7SYQfAVt`0a|HopQ|!nvB5(pb2ivGJH%Oy-hTh~U>|eNwjlIXJ2r z9_uDPVySs48_u-0=Rf&|#VUwM%%0u5vmKz;g`oO|U@S?_XIzY$4Hy7(0O>Pt$#dtp z66tB%nS4fsrcu8a?+0*)Y}4?Cc({4frj{?VXnDm5QucfBbvow4a^XG)TfmlpJ2dbI z&`J!eBA(gygokc#x&*7}`t^)46_+tGWV?3negJw&F83Kc+3aQaUFEBW{Eyj0p~60Z zt#k1G`}g`aF*@H!|I`%yY!7wiJPO9*E}6A!4}l16d~w!H7a5*27GQ$gAmf%ts2_gf z>#O!wBKtjNLS#~t5j*7wc7vw3y15(-xfY!*zN?QK=xV=1+We+$=2+Fm9a{Cc(!&ttl6yo&=N6y608&Uj2H21K_!(kqYu2wn0#F-*=f%|j3cH@+U*@#l0k9o-uFQKPemx&E%TtlK)aDn4uybVlbovXa*cf(xvhpYAsjLsL> z&W{`fdxy2RXehh1wWgDOK$DY`PbXdEemp*ynZ9RPZF4lSfqHS{5TEmun-F%4NzBcf z1r*u_nK20JPKy1o8zcVPo#YGr2!?H7KJczmk1j0ahf#NdXlfXX3sJl)j`I^!$`kmP zL^x=epoCS!yaY>bS(K=$Pobxi1k^NWA2bPBFnt-pM$0F(!sT+sHEKTqv9!$EfTcCWpXk@$df;^1mo+z%cLcTpy@pJRrewXYQ1Q) zDVG5#{+vpeyak5&IXkSq1ket$D+4!DRjH~?LIkQl(1heVko)zIS$9i%ll8K93n}0H zjE^8}0tv7iD|j0FxG0oga1~zoA}hstZftSD$o@|yd#n!y;9rvBMnFDex`zg_fOXOQ z;<|$ktZz{H(d>y)2^dF{##kYrcFSlG>!0kGtax#1HSSxc*mSL3VbV|G9w8 z&e4qh_3c9kFbJBxw3ZVB0*>L+$Fn@qTnhvQ_`Zy|n5t_UJROpxI&t463Yopo)9Pbu zx{S_3)l^m)7taaHEAPb1=^}~hS~r82(}k0HD0GBlF^6*RG}Q(zn9MBBjo;p`4b=<5 zglx>rwEmpBQBoR!H-{FOF4ImkE^oaF)zs8z@xsL4#7h77r?_~8Pa2uN|Na(m0Uq1W zX}bTt=;;;#i*H8I|GaGdr&u`X{|<-D1eW>l!T;-Lie&%)25TLkU^sH>+Hh3S)RflM zeHEVVe7^HP5BkqouWIuOWNmC%wY0QIFq`jnKEroEqGMp}%v73bWCs7o)Agc#^7a-H zc0W71c47j%P&+s{_+HR=c6URLXa3KiE#u?ke=E(DKuX6!1h58Nl?D33&M$K0Jv`CKu{FTw`Tx3a zonI1|%U*{8jX7>VGvf>bSCIu>X>SP{eH)?KiQIn;7q>>j1P%(jyYu|5lsWW``V$F< z(F-ciBQcH4xOLj)!hMN#4epbj-!vevw;)At6GViNKJtbu`F|~n<9p-XU3`A6cggba zPY1Xn$#}xEv)^<@Q}hdLrG1i@m)FQlS%2}nq80g14b23|lOCi5JP9z)9_;^&L(^IE zZlqX;ufb&x`Gct`eSUtvs;VmR{-e}ycX`UKwnoTaDH7AK4Ua`?jeX5+7{UIa=Z2^V z4IjyJKGynIpsc&D*J%rg-fZVEhPT<&E)Y$wvFX%A3OH?kOH2&PW@OQ=`@46)Ih?7a zsE8dK8!Mm2A6soT6@2DN&TIW=$9c5UY#2MOTKu^hR?45TuMmfgUj8P=%Zmr=u7XzTE`7pIM^d~4stLr(>e?ymgQ)ngJnCPTXJ$f+pp_Av1u-oS_ugW+n1y~mIUp=SXQUGWo61ON)i%C zr<;Rozo2^PXUuZmrt9A)Dr@U%Krt_e*sk25oZ*dZtv@)E=l;FJ4qp))X@Ec!Ef43V zZr2-78ClsAH&JMR=OEwGzy?%5dTeLhZmH4?hs$(e8Tj7WO&t*Qr^^92jw?aLH}5aL zC<%AEOo6&5H1r37pm06zBo2#?-mIR|8#}CYJ2kDbTUy*yQdcKJP%liZciM8iT!3(y z^buqZ^Y}b?24j-8T^+A^ElN2$j(ml1LLOu{hxBD~21&1;9dvWgrXIrXw^+bxRRpz; zCbs|11D^J}p&-5`Pp+*D54K9v!4nVBfYv|R5)so?7Wlw4v~M^%EdP0CI*`;lU++}E zR|5O!?wvZ=6^uo${l2Buz+kdS>+Wn!NsQu?np#Q2?%Ss;2{m+AE}Nf56@nam1(u0A zy>z|9_=_IlL=>3JS~1)z#os*=HJA7GMU8!*Yi;NlLf% z*sO!h#Kg`xIyud9BP6K4w*WAYPrthHs11WU^OKeqsbX$?WMm{!t=ZSF%Brda;~eTG zy1o8L7@BqV)H#w-M&o%Z)^jzi>rQcLx<$RLQ;#4$yHlrOQ*pGM)gi+r70rOLU%~hD ziZ22yt&~k)y%yq>{ogIu!3Ua+;t&n{rFSuUC(Nx9G&F{|7niJ9igT1Yzf;VOz zE`0)&!>DFcRS)@awt@}i`hovQN05f`nQFs!WLa5R5-w9r`gpYX-i{d2hn|+ldpmjh zFA=(IO5qU^^$$0D$y{dGSXfx|-naV{f-&Rcs*#e$slKOZ~rgc84hFEqE|ZAl_!K zrW^>w`{6o=wX5?|pTW(+R1UHz8_F;0>RkiLT%_+^-%9STW695sY^B}wa{8x4Gj&`;nH3mw|)24OMk(bA0Vq&tfMN#lg5%%Dn znVDhHEJFY$3fMDfC%OtO?`fS zfY%jyg__MG=}s@@R92PIzJYZnAAPV|8UMePq4!u48V=g;GNcfL2}bhDGY_t>%)Erd{a(#Pz!7R859cQz`=#LBt>T$h`d7pjsY zd3-*lUyD`@m7b00+1rgJkPtI5{+kR^!_qd@aE#P~fcF`TS~os(kTme-9B962+wq{c zXj4B-Ai@4V8Ly)^JpPamaBCz>kr;QnF8bI_}UtOu?Y+6xh zYYpqABD=1xKt2b;tGDqKr2ne8qu<#Ef%sMg*AS@!X(|?2^N)(0f1_<9u?CHxz2<*E z?fTgMihPsSZ1$M|L4YY`+oewTKYA342m%;woT7NbJ4JZ9ylj!W`{86Tb zbQ7a7Ja&9^CXqS)-;K?&|9{;SIHt54|4~-{1;WPpWEQ24Rw=Na^_?Y|R#K8GUDGsL z{4nlv=9cW2xy<%%75@%6y{DF7hZe3#yoY1q2ExCkjfaE5JToBf=~vIFmUO$!kqumN z6yUQv*!hnF%Z~Z4UM7QV%{0`F2#9i?rH)A$su^o!Wc+K$=ubex6WGyeE=`cZVc!fm zzwSPBt0ht$Gl#?x*qDBBf5kyWLll3J$Xt4=-#7ggGHT%Td~m45+oD`N33FVF;?+&^ zx?1A6cDVqE1Pgru@6EG!WCZRFAU#p&l-R#YWh+f5Td&OUspzY$yx(CSB8$Jx%qcKB zoD{axBU`hw7}1$HS~tLG8qnS>T;d-*3OuA(nBb7{M_pM`34SkiBU*an(~W}K?H&-W1$1O-Cc7{%A@9j zf|K6g&k@)trsAO`BvO_|K?@Sq^Vh9Js@10-7i+2Vf46SZQuhsH4e;MzY;sCI_BGpk z16e_Po=uSRfZy>hWZb9fhi{xVv)pAuuqUQU7h~HFQd3Z+oGH**$Gux|&Y!>S<$b8- zEiF`%_-CPdW!fI%1XJK_*xx6ZI%h-@w!aJZl5p$G(fjd2;MwbRE?kIU6E!UJs zwk*cRrpj>~P%aY!!P)Z>mkm(nHIP2SWoy^{F^UMW{s1 zjW=NSn>UG+vs|Yl#zb81J-j&CkIq&U(0HjRS`KlHnEPV1FjRuDK*Btq49dpO`2&CX z+2{QhnBr|=_onmCBQ~MFNu*Yoie@A-(ESCeIsW}7O-o^>6sztCvT{*=>%{Z4rjGt6 zyWzUQ_xt4Dg7$DSCmGK*CU97kXKy)xYvS;cR|uXn7FGhQNh5N&XWww;EJuyd5(7e4 z!U^Kr`oqA{UWJWf5MajRr+(m$3 z@Abx%<*@djdeQ3EA5w*!k~v~OpmPg!azKKU;XfK69$-zJB7DLeX-S^29MsgYPCP(p?H0F4IbW#x@A~&s0!I)b$+4m=p4B6%eWw|+X*MHb< zt@#Un(mX?udusgNqPCJ3$zCpmU{cx41((=j6r|~YfikW$dj}Us&0q4Wl6<@z*`+75 zc>uXC@@r27${|Jce$ciSPtDvyEtd-(mjhz1tosW*?*Bbp7Tk&a#dDhyxoE7>nF$vl zu{pMtm5S?x>T(t1psAPwF?hN#WK?=dSW+r?JFRR^7n-j)fK-_LxX1CeODaxdK!Ib$;Jjom>Jz`hnag?{l1Vbe?Mo{3Hyno)*4JKObf5+(bq62CWtweQ?F#h^B z_4)r>M>~f~k2)Hyfd2|D!VMR7FA8ejVLFhUVWKnGh47!)59RDq5yr1Gic=51T8%-O zMHM+$N71*Ns;KLVA;$@a#$30h%IMv`Fgu$Pq&r|Kvhc{n)$&rV#8iT(k8Yanvl&NP z=ydVFrooOF`JfOV(749^)4Ns&UO`elB|>ni<`<(F=?@=I`WC|qAmxk%Hx_IJ>^@G( ze^$`f)plOmOyjDz)O`6cbN@Aa&mdS$&4kpL_zjRv(frzXMv1BJ$JXi`WwD9k{RXeq zik!BL(V7>u#B&y86lJ;Fk+FgW9-m7vdx>*=koB?GUg_?>I`wl)v(fC2rcpB#P|B4v zNr&MZ?=`ad5&n3%i2!<@T~nT%a>K(%{{`;Io=O)rjyap(C$8&q|EVqA?6-0$-CO{`%!H^@ZAPhuxZ0T5Dqogb zI4d8%+vzuJ;aDQJiv}mV3cNR@Gc+$z2fZeAyS5i*65|UNGW185xnK%F z67(0-tqpD{opU3^;!mrvfjzyABFoRpLMNso+vonn7c6$hGRa<4CwhES9UiLLU{H!+K;| zwseS8W$&*40zJRf@~pTe!aSvi*KS2Oq5SF#95NYK3r=^)&v;#@W=I(a(yoiK8wqAmY%g-&K?7<{P1{ z{C{HVnAI8>Bu8kNWPOU(r(Xk{gCS?K>t?dqbiEV9lJ_lZ?E;wm{M<476DUj*zJovYCu`PIzd&4+rE z^R)W`PD$Y-3XPWLXdm{O;S(>Dacv6mYuo zm8X(}&@(VV%fpix9v)sIoF9*B*t-v)5$7PZFvkKKRLGz@cL|A=PHjwnI;s;ZkOIy z(~{Y%(~|x{TQ_ic3*ShiUdarK3!4QS5r`*6p1Hv0#nHBoefxjy8ci+R9(PEj$V5$e zFSUz-S^YM}Uh}qzXJ<}POF_WB6hMB)BkSZ*w@iHnw3uF_M%(f9X&}y@djEtqcH6Ic zU`h2OLSGrkbX!yjL`IY7puA1xXL&ZIetSu7-s-%)FBcuRS+C?=@M0$+06O=j=;mA4y zWy7&KZHu*C;?|wNFi{cbm3QCg1=1PVNqg<+O}Mz3pT%<=X%y5)j_jUq5q^ZD9|@sC zQ*%M}g#w=^q|+z-X7aWVP*<8Qm1LBi_`MR8AmksSZw0Vr%%B|@CNApO-zi0xaC(o! z>|Hi~isKt{j?RI+Sp^Z~{@D$0%BGs=Nxr?zg*abU*RxrO(p9sj>xM8tAI3+YuWwt3 z2XY(pwqtprR1D>NfHt$9F7pF$AeV6$CR^R|b1-~*<@|wJqol*uP6xZ%X-g4+`As6f zo0~IYX{0y-$|rNH+@SUOLERem!$ob&6Hg);{i;{XEL}oICd@k%K#Lr}n7lp!zj}TP zkb3Xz7T@c+@BA{*e=dU%t;#cM4l&{&+fJOX`Dt_Wha1^Ffv*PjH_r1B9*)|^4EG=kO1nr{F7!Ro!~ zSYLO&nYy#oB6`?#Nhz5#+2%ByAv}=85%5F+zz!M;2b~5ogi`@#?p8P^H^V&~pu3_A zOPk4jiS<2W*<0@7ru00bV291*zJsZJx5B{_mL>=D_48hr3-ZaFom)=?=kVS2se_;o zWqfn=n>4wmFUF06xdaj`H(zd#x^ZfN4$i16>kLdG%ERjqkO$#bMQ}mw_PSRw_Sbsx z%QsYp?c`+`1C#P9IYr^)WxR1|6gz0qCXJHY;(xar@vuOZ$bcZe~ zPw&M}A!)k_{(0&ht+BINK_Y5`EBUp8NyqD-RS6gC!PyVmnJlOdR_Cqg>QpRd3bq2B zJhR!`wYg`T%}ywgZLYUKZEG#7trJ+&T$j0?)fFAds}-!fiE^1vXCqn=jA}g~Nl|vF zS3S5hz;IDV;X*On-Xru$sCfyyE46vg6$)dJG<1$ZtcX0GcF--xOjl%hT9xzjbNP(- z^@GD$$cPa{tVUzM6$VoIZ~!LN4-w^w$#L2mI)Ceo6fkIN4A4IVDLjRpPJ<~t5t-gM zOnJt61$}B7pw38AuDaE5=DWqq%~U(nt)cWHom#e^r}yiEh`w(|9}Hy>)R?BGtuQ{zZJ7n{dtpuCWT|bmp9k-YmP1l zo*-*q4?&nBQTd*|8zOHAhFVZ}%i_Yy8sP-D%2vrXn!4xP{E60NwYJoLo*^{6)*{!r|3=yb=lL*U+h3QxlW&uf2Hc zMVhSuuRR3JbP|sh5wOud_6+N*s|Szm(9+Q4bncUqk`fRSBDq8+GHX--nTm)_w+ASJ zBmmbwSL0&+oNZ+K&|&2wXe7&i?W{SC_ciO!EnMnzq3Ek*Unz#ustx4LY07LyL+)vE zgWiCnJMrmL!WT^ZNMxRG$^G$R6<>_rkrM0{VTW5r}p#>YEFdHUc}oz_p#q-sfHXjl+)^t|b82l?qpg z%(BoeP+`tH{c`7|f!-Awlv-66f*S94;!X~2X-uIAnn*v<1?NVfh%EKuczk@+ebIlr zcY5u*_EOf8$HB_z@ax07O3_D{EuPM!H~r(y1ml2Y5PJ>f#_rTqbs=*(pu^Q``sDdP zyY%YZV|EhSxJo?d?c3!hRuLWM?24z&S{#!&Z_oIwP6eNq{JqscJB{U}(#7AP@dg3t zjJ>f?q~4!25J*sqjLLsZs7VHkf9IsckH#psTK?l_z1Wz{V>M|HP=}5ii5e9^&B(kw zoG2u=Yq{qIOK-5sMTq48A*ee62KQXFJp|`))Jaea7bA8uouoYsKyVJ@ zm+NyIpS67I;?ga#JBfXs6E{6~SjalTy*t!6I$+PT_W83Vi}p84C4mDOJ+BtXDWpry zt0n9v))hkMe(jZ!91Lng-F?WgMGH>cH(AZO(8!v}ueoVy^&l&!YTFVk9JMm0Qcjj` zIGmz$Ei8(%RI7NRwT33Wvh2Gvh1{iiJq1uxe5zCiW1Q3y5RDHw`NN6S=M+F^ z*%y9qg3##G{#EiqI;)~}XoJ1fP)F>l1qzgili5C9O3?Um`s0Un*eTtX!jS3S((u<- ztoZu-$Y=5gsULsN^dRLloZhJ6hnACQxn!luJydE#kfmwkGKobGSUXofUk}Hi2$_h` zPs%Oe=Y)p6+u1|aFK1#P3z=toTfXjdR=7Y>U@fps4JJfl0w?YoY2YCv0lJ3lUL)VD z0Ml}2W`HSg7WkTo`(bn zBipvzUtkOSSX#c7%qds+ zT6gW)pViO}k(=;8mw*}jnn#2UTuHy?hl<<8r@yUTCXSq*m}C7-@m8oFIckB@M5MIz z{rJjS;y5?Q^+@O4gHNiUXVDr($XMs3|J$sYmkpy$)8ErxsZP#KuX@K&pACg&2bL>o z_sjQ)Sd7jPvNca@hmQT?tT1~+<3WFNQH@VJ#vHpVDFkh)5VSUG{@`p!6cITj{=WO@ z08NC3;P-`+39wo+QBej{BV=suhJ+|zq0_!~x^Mpr5R|xxdNy36`aD{r3}ud(#{P7| zJ@}EGLO)4afO>nJDtA)trsU{+n+5`?yoUzQ8mipX0JnpokQTC~2*%1-0IYjfwtF}= z81(G>Ru)PbC9oM>Gn)_`6d&kyvhBbHiJr7PD_u5X^+HHuRZ&qSAgyq^9vO%{Tp1Iw z>kR;+Qr+p0&?j$^h|ad@a$~JVSBD5E%|_SqDfqkI@|?OZ+2RSmk*sa(A46GEp9vgZ z(pxJ+^>}AeTtceQuDA8V1|zaV`T5r#mw!+EJ;b!1G2Ccbu0Jk2_bUAr6*fZTrO`Hr zK-))-kC?#m(Mh_g)Jf#~HeF=$u}#|d)h3KCFFIM0`0PP}lw}%({ z?FNydetN?>e-IQZ6c&_Pjn`G5Q-Kf~!+ko*gHM_n55zrX^6q)ZM zFT^e{!S6up9mY_){F|E^6L^2+4v+A7Z)ImX_1)j{;KrQU$J0k{dYJW9sKUO(jEt_3 zf|cOeupKz$)tA`0wi&{-BifFVsw>o{hOW}-Ul60naXTvjuR7X{Qk4RFq06xFWtsI1 zCpLv(M~%%~9iV7xHaIgqNwRbEQyY#P9v9XXm6hjsUDTg~j}{-Qb~QWq=QW zCz!vH-^a`N~ysoCYyFsjj3rqL;&E^~(yBytE^UpeF zn{qR{Q$lN>NhjRUp-_XvMu+a{n$y2_qmP6+DA(3tH*Vgg{vp2b2PeGyXr64)EyNol zw{$%$6V|oz*$r~Of=%&-h2I97I0)4EWpO4{Vm&V-ENzsX&=<=sk$cAE!&z@zj7K$| zahM9)N7B@n^ZJEgb>&6ydz|D?BAV< z(|@YSi=iy{7t^TtcDllTGG1}{m4Zo^yV?h?K3sfFFu$i(p6>BFOklXgU^8AW`4k@R zOHryVVs>h_Vy?E8h*?lDoBhl4wfise)0L<%XPiU89Sr2(u2xQqrJiYem8Bu;OuZ0j zfeGTIe$tVKIJe8ZId*1Zn^h;c_)XY0LpO=MPYCO9x%iNO_!e41I}GB@h$kC7&%K~# znjP>Pbr+de#vMKW=m1Wfw7isyh|1Ea;8p55ab}csKZmJa#nP&e|p5Lnuw;m+q6$;wJxqb=zpyPs-hQ(LxM|$ZeKz8Eo4^<3c zKkyCS1c`YeSgJ`aeT96s8$)jSkPQ0!K5L)#;3hf}=3=IyQ!a=4xi#U%h6XaRVky-e z>(31h-Zbuj*47F^xME@*Dn2BG2iF%ewI1}IV^&9ZF8g+-SN&urB?Uu)p+CgBkYAEtIPg#S+M02VZ57P>BW)jY9%eLUpzM1;@yuK z=i64DDx&alD5@8b!;2iD8FT4xtsG;T3j22LPinevzkD7O@Go263a|%j$s+?bjb)B} z(KTptP`yJtr(lFqm9%8~%)V}Xt)ydU*M4{E6rMn``etz6(_IuHcg<2xZH7 zCdPB)$PaQ~baeL&%s6#pLn(Napa=WU!CDz*c zww3mfa_!vQ4J?Z z@wa*q1Cmh8q_VmhO_$MnoWpD#Rrpi&fU^@u1bjD^|2dPVq=*wd!=t@mzSUGc+rcxf zJU^6`Rq-skJrU9*tfMgG5rM zO31oR@ZF!aLU*ThCi4}ryLm#TW& zacl0QR2l7qaR8FcvC@W$aW3hzyP4d+yR+NiFP; zI;pwr?%^=|XZuXJn~*lPhe>}+pzMTklk+>}9h!>9n$kcOwmSi8ufMTZK$o+GVJoT! zU`#N7HBLMpfT%56X1tmpx&a?S$|}IBaaLwn5+_7GyCFAcug23 zt`n*2C5!#n#qgn80qlJ_B)JHR&t<3e7hC5j5>zhPqPjA2@+L&^8Z(l%KeP;=FR_s- z5MtF=c7)@)fpW2=b38s15XC=BZT|%kMkk838xEA%VQ|0h60dl`|{Yiy@wO~cF;kA#T^3XxHcJ_eey_cmD>Dts>1pn!d$@_=F zgCW7rweUkQ(aPu6P3Pm=N1N4ZaOC02y8hDP+6>*T+e64b=;ZDJH(42QUOZV8MDjVf zXF!1P%gEAAd>vmrCC5~*eeEjYwOl`Z42R=UAGImaB>}P;BG+o3h2zm(Ol!-bQPFlh zQ4aJ6%I@9U`SfgB{WLj~fQ3Eel4;!D$QbL9eF5seqKIz~vZOkE99oPEAZqGPHW^K2 zf*`Bh^A(>dg*U8h{=%KrX^-==&5M*b5{->RvL*o(5+i-*g5(jsSr9&JP#@z-Ls!rn z@G}yHcgM(A_mU)BID|nFk<4|L?Gi^1?_Etv8U;eiGt>I$x~OL9z~?SF*0&9RXC`#p zwio=iwD8tT6I9eDz$oJwT^qEg7d-ga+g(iZR7t^OzfMNFo|}r)Cv1Ip2C*qJhE6%z z*KW=S)#o%I9=Qt@&t?Z64^We0f}y)$wWLR`rNc3s3joC7CCC-`9<1xcOpf}MFuf77 zmoKHguZg^pzWLRiU2rtkx|YklHdlzlbsgL3K2t#Z4zLXh$3M~3k;p-dOxaFGwbh@swru)@cRjxaztze_G&Q4=kJSA}}K!=LV5NQ87>FtSIpaZt+&Ckwv zKOmg#FsqVVW3AwaSy_dmdRJ?R*Qat}lgQNhR5q$2_U$v45g<>xEuW?X(LQN1Q!EFz zvYmT4aJcYe2cH~egSs0}EA1aW>-Wu}Thld?q1DM~v4B$+=|Es1H?@5&aIO$SWLvK% z>u7hQHjYAR_MSZPl^uC!#t@ql@XDgYlNB~gnr@8SR?Q@j;w8*4q6u+Jl^S&5;bHG$ zcZu+uB%WQ7)A;Z7)b$#l68UHH$!P;ZwTx!+U!i1nAJIfK0qu}qOHGx2xh-?#qve6F zV>C>Cg*tg$B)h+8j7^#p^a-MdWlnDDvchD7PBS+m(CjLECt^@FXyA9M{pZgKbl+RL z2kFm<1Qs8*AF!|d!THug6b|_y!8V@gU#!R6mRk=nYP-(pwp*kVix5IE@%7Li-ix)k zJZtkIZd8-nR|eK#yeBjf#FyDNAhuIC{{2n=u_91}Yd?FiwUs);Dw-Gd2>ve60xk@9 znO1nz7PT>`1*n7vKHL=WjFpZ@%pm#UNpaMsk6UHeoo_}C`*@R2MOZa~fx znzfnM`qmh0_u8?LUKQJ}qCm7VXx}kkLIKCknOw{SLqzs`SyMg8!;=O3Mbknm%a7ot zT1hpvCq4CV^YG5`EN#8;hRVvi0kfF~Kf_2NcET5RGdh8;wyFmUYO3z9+}l`+{!A0Z z7~Csu2lE4LFW5CmD=^Ozl+cy<3y z;HWLi=(IiF-2LJnawbd|u?cvZ3bCDskR!mt0)L*+)Rg+B<8{AP()oByW6hh(B*7%B z6uA3%cmHYE@m3|uvlQcF91LEnFIxq;#Mn^2D|peOnyVlTVF-KoH+Cu3S*}eJw3N1bTH3$jaYH zON;rQyL@FC=`7i_@{Z1!o47cCd-i3QQXVkI<=c0YA_63nfa+q_5e_%Dq5d){nRhN?@oS?hb-+y{rdi1pH(q-%BORne!70pY>uPo_QE*OVY2pP8L(C z&s!zDx)O9fbaeG#1GL-5cSsMy=o#B6IA*PnbgiGXbdMG+?#%0>P|!;QG=_X@*?b>C z*i;~t%*SWV^~B%bzhKVrt7dQi4KeKgIDJX+N)IV0^@lapIKf9_LVg{rQ1YeGbhGzd z^0z+BXB9Bp=B2_kRmc>cs1cO$mrP8=>(O}*KPS~;alIzX_c`wLtM>VxjmI6+0>o{G zF+UjrxNx%{0PEz+SK?HJk~yQW+q7EH0GJanP6FN+JVVZ9`+PAMKQ!Wk0>{T(A^QeZ zQ=I-Q75F-L*5R-OhYg3gIlyS(o>bbB zE-WJ_t~X_Yn1YmGT3+b27U_DAa%KM$-E3;*B)AOqCG!Qe9G3UpJR(+Ksb>-rBIM+^ zjHC3jbZGZ4`OiQ^l{VLdBip1Xid0MVZkKnbsO8CTWT6;^hOQ*RwHDv-V1!L*2 znJ*Go?DNlLqNo{og2{6)H}d5qjW`)Sn}2;P)YFkt__7sYrvNsKkW|p8G+WBeCfj$9 zT^X|7O($#bp+o})*SFojs^2xaF6On1Gxm1^PiRrxm~xrZEw?)JJJ+ic*}h#jcfr?p z$x30sZSErxD`aapb}pWG)%uoQH%+p$fNcgeTIkPSWdTZeqX6u!7qkHd@HW_%?HQjX zG&7|Mi0{2;l_Q-~GN(qzlR+4eM7&Jr3%vj3!m{wCk5~tz-e%GlOkv!Tkvn=#7wJ!J zYc{2bQ*H&4I%)9yhG#6+`RDn@tIfAmdqZppQ1lQyh7krjJZr3!hl}E^ru8(LL_!X;O&O1eiGBOeGrzT3+Nru4czO zn;$1P)p1RD9hclbO@C2sH`77CHnO6=Oc$z?`0mF5ghvF#0wZ%zY5$X<8V&hr!Ii1h z%TxNTs`|&pRc!#;8_~$yh@Z%KeSXI{`@AKuL1x$-m6%5X92x#m{@aW=QeqT$9mDrG zxh2fzWdc`&%vL~W)1O0(b$PA#3Ma3iV9Ofx5fjq)i|_C6^)?^NGEXI)g$}y& zhSs}B$pE4m;m$OS*ABf0_$orB&V`?)AsexuD#0V zIfC)JoqF>JU`}vA{I4RI-cL>1AWh7lEnxv*5s=aAe1>qnh0BQnofBx-PY!n5pWOTb zSV*2_KYYWQ;@!4p!zhT-y{KhLl&BI)mcS!Pls`Kqj$pNXK)2(_=61}W*I)#I183x7 zibH){;XaTV)_dD#rQ&o@mcT(Rf$HhbCXKED9mBe@1|PTnu#Oox%u4^Y8FX4aGU}Zn zHzObf2&n2E)*2yJ?Pb|7u`g*%{#a@!#?F;n!n{1c#~*oW(*eWES;^%hpwl{wH9!i? zOf~FHBHvVEycW{34zC8y0X;-YI%ttkh>uwHS&9=2Q&-#k$bwc~{kP#-%8lmJVCUJ( z>#t8JMRDUUR_kf=YypAPKJc(l<{VhLrx`egfeeX|QmF#fp9nHDmA_1X0}hKgTI_O7 zI%U7Q<5f>B4f8V;abq9nopCcCVMDM@9*F_&`PnV;jlkx2(NI?(;s&d(V1{Q)VW1=|9$<=t zAxg_Yu>f53o!K^0P2r$7rB+{uUqlu^@5av_z&yhVoYIMB9!78fbMsQN@T1o@4VDp zC#uPvKT>uR#)isT2lkqgri^5Li^m%T{KJ676Cw?tb*TzA@sQ(S9E>nufuC%s!sR~=GD1_{-u(b@E9bln!tpuUU$=r}m(G?uO8VSW4;0ChUP{SE1_2z1 zRAFix8`!Nu+C4C7h7RyV@&btK4}h$^r@ypCijl7HcjCuM%t@db*Ah`o(Vxp0_8#D= z!NE1lA2_QSLY{sA6Qs4APq-BbEvZj9(6f}Q}<|YU5Qkkbd6Bh~u z?xm)d2$@_zjv0m+Ia&HIpF(3yTygf#LnFAII)7SwbCna5pT2d2xKL)=Fnv|9MVgCN z4cUNAlR@Ps7HYWOcd+?d+>dG6w|_11Hl~0@SSDYOe`cdtiq}y*q`DZSHzy(j4s)nz zThWzf`|V3vo=xQzS`5K0oAuK8vdMA0>*J%`)YcRE0$Gs5P4ximr=$A9x27K355^Jh zz$h%@Unk9_b5hvDip2unzvy`d@+x};8zTf$ZvyoT8yepEHA|=Qa#-M6LvTw9FUYwEWA*V&m zljcq19t8eeP=Kb(Tl?D7&Nuwi(c&+6k)+_~PjVy8G&#SnYTs`}sh)60jvpR@A-pT5kD$5VOWFcT*V&$hoPlc&6MB(`#5W-P9*nFb-oG?rv6 zGMoeK^*%wlm7F&rU~dbzszL)R;tq8*Q5sFf$`+3oFpJX({IEyKrIGzc|C@b&} z%u{1^@Dj7_8LkaS94_J2>1IraIYvuz!l2K0iuHQBTLCYF8wX~72tD9Xl>=K0N)J(f zpIJ5ga{H?Sm? z1Kx!FZ_^uqJAMsC$GP@`^b@D+DlyG@bbAH>Pp9EuyG$9rj2Ia2WPGlH#7$T4OY@kx z@B)jcx24|Rz;JXN_2sIcVNSETG!mk|bqvr&-dr51KnrNY6%2Wy!a2##`u*hs{s=^_$0i-La~vzbllmm$d)92A)(&h_jh0_tYq5s~YxoKNz?d3c-qsElPxu@e zHvd`>a>!&^5(r38({cKQ?p*9ts15}hj#W#89WRCPdH~Oum3QLO@oZ(_%fFpdz9x}8 zZ8H;hloyUMTY8AQ3*^Z^5;$!8rZ!FA_)LD~erNWT2vD;-+7yC5!!1!p5gB$=fv$gm zBya!1vzg~={<)G|$@WKwB9heu&04^TnR;4SCZxu>O0%6jU%sHD)WKFM7gQh#tEt-) zj?zu#WxTCia?kPkCbZ4qkiIo8{A%nAuvr)UHstTvL3Mdv9+?eOHWryC9Wh;1QcYX~qaMV$y|?Yy*)Hp>_xm_zM@|fOmat&zoUq3ejcp%0&yrf&El^Y%TFx-Kt0^_=g91(@wrgJ3x4Wi6?gHyccm@?zdw4EI9;l)At;k zFb7sll~jrsg-`69f^iKki5LUt;Hmo(dQQrgDe${GDSW;m@_dupGwE>CuQ4xl-!@nc z;y2+N7Xk-jnJDW)D+3%e>n};jtQkwTZ1W~oEHw~=etF2YZ6eQZ6T!q!qe6)G1utgA z#MYntUjn}OE9uI`mrT>xpWXE|du^*m`GJ*qPvv=$uj>*Em6J#U3 zjykx51|P+MQ)&Cq-AegNGe>SaeXdxfDJ3J|fE#Z}#1pvRT@yW;o`U70FY}`l4ab!` zEs$mct)55&C+}=p!(LT&;r?@o@_pN25OwCBo@hBcQ~AN*If9Xfg91L3#AkVC)onfv zBE(E%OXqUv?>o%8$!U~Q@2P*~q;lR^f^cAY?1nRbmnV>>=h4)msiJOnI-@M6Ho?0< z@}s_}BJa0JmlojfNTDxo97~<1o7V$q^IhSTcVSz2*OhI6+4*$S4nkCIK2LkBByFSt zoW4gw8Z;aRT(}!GbGH8+hn@?QQKa0gW5CL^Lwoqx+%jHES6fNCIuh%U?lCIB#vo86 zRBW2#cO^ZjxkE~(wL%#=tK&GbWV|H=k4#3XwFzKu`TKCe_%hHmBv8MwGTR_JlI|^2 z{BxdkuQPwjwX9)h5@+m0uc566e}~4+G=)vK%hsZnR(SWa|JE|Jw0#3(xqyASfzJMv ztj>#k-UaueOp6(0ef{;@{Ae;KuTWUC1qb(Ry64N_*MBcgfV28{yT3A@gH;Aft+QG; zJB&EDDfG1CacwrCYgK4xz-hHJGIgy51G9V`Mm&5bu|wl^_~^%-+BN5VKo|?yLDc!q zA33O)4R|4nZXRv ze$Ic;n%^^$Xnq1o8#}9qmEd4NJzamV2)k(wYNiLxYN8;$d;y$rS_6y2-Hj)x0pS-- zpqG`twpowhH-Z-9*ZiY@Vn*6|s}7pG+DN)=HlA9BHZli6YM zOG%Xs_bU7phfpiGJWzm6JS9~x-ND|?9hLtc{bsMfi`#syJ^7Op$~#hMKR80-!0JZp z6W3fF-xE(jN)Ie91cF_mDu2W@ZY);-uTvi+CCVgxi3XS;+9873nuw0uT z#dcm;IH1%32#NT;*;rvg`B0FQpcMS3RSGSKkN!f&5HR|<-lm{M!jq+Q7J4z{aNgaA z{o1!>Tg4K_e9sgn@z3cTQm0bH-!vB|okGS*M>w}eVkVq>+9!4qsq9Ln=Y>k|*3 zshP6^p_`_kY^YR2_Y@#V+$}0aZW(zhh4bzi6|-NOD&!!h-p=msNXv)w;&15kSjyeOvK*&ua|e!!U&;1p2nLdujnjXUjMfCQn3$qjcVyr8Eo-#h7N z-wL7fM#uur@IHygz@I&E1e~rXe-Lp3&tK3nh;SkQ!nYYgPFE1Ckzdg8gr7FN_~cSv znBrnP)gGwG=!Kt7(Ju@x=p2e5N%NOzRJ@J&M9zq~3eIq2W*_Z8@O0)r6(`o#*2)o` z)$|3H#$5e9&8)G2(sqf7GgAis7s3;7O9ws)6=%ql$KFYRsCSa9*9NsZRncELT2E@d z{%54+-T`fg$-+qhX$c%Bov$(AQu3*-4f=L>9-RYl;K-)`A5Ui$7UlbeYlR=(-5?Tz zbT>#N9TL(hAe}=a-5}D9fTT1?3?VID(hbrubk~0Q?|tn9PCW2}nJ?D6*8SY8yB>$S z$6Hl(E;mKj74bC_?S$=WfYi^AZHYpFAd+L8c zK1Zuqngiah(N+mrkD#z38VtyBp>RS_Tg(*7LQ2IuYnAT29{}i^s;vCc%;8$JK9bL) zL&1uhKYXqfwe~0=na0CUk4tQpdnI(~WH_u|nC|3}{Y*BtrF~l#njpnj}+t1<2 z71=5cj~MfuV`TKsyI4`rD%?iDp?h_{KTLwZb63x$tHc*P?30g}%*ynFF+)oc$*z1_ zVnC_mv}t3Lc71FLdoU*}!%C(~fQ79624kuRWxGi;_cC0WvEC@q{e{d#KCD4vZHLOt zL9q!gk`=`P`?E9dR+rDlfaxIn-xwed8ZCPCTP7nF4-5Tk&R^0s*EwxlZDE?e^mP3Vw=;!z%)&qG=jgW>5$p%h8w<7w?#NW((!VT(sKqLKljptZO zjCIBTO*zwlF^$HD{&oDgY&sOmtv>qZYW9r9nBG@P{#nE#B`X zk$WD$cMT3GCVlVR=@nC7fLv?)Xq8EqPW@+sqqaL%hn5o={!tZYTx<&t=TNA{=PH&| z@PcDML~lS^I~V{J-vjm90jmGB`2Nd3fb_8QPmsiiqLyXEmeki5_E)H|!-eQboW(+m z6eKh?9~-pxUwh648y-T&JOxMT7ju^`=gL)Upgl{hq?7Oo;wB1yNo{y;Ke2(VH?Z!V_lZ4!?g#rEyR7HeZ$OLN=`L`%`9b%eSEg909f=yq%z=P5Yf_cPd0pYJ z{t-!|&)?7aRE~U&1%Gj4gbG6Mh^7h$i7|m8+*%Inx6ud zOyfsQ5$e4JCN=X^<@TS~hEQa{A7_Ipn=__|HxcAE<$>=~9TfM@=4a5J=Rmh=2u=~{a2LSnwmz#Y) zr;~$r?l=*5AbNvdK}`p&)-{jIvFU?v*LM}&pV_1|(c4RYp zO71u(q0+#?~h~M3K)gB57=NU`w8kOgT&_FS>zl~F^whDnVME`4>8XdHqmZH|Cvz86Tz`i z=t$(?MT)n{!QcpGnbVXAV)=dl^ETYw*LJfI$F%p0yZsA@LO3m5Z{XyQntdxry33B& ziyK|gH#;K@#$Yn@5gc^x*Kxl5a>V-Zi3s^53!hAG8$oTLvArN!JK078Oro8)k@N&N zb@l)Kz{`JQx^Z+i9CAolTt;??50##MG|V(GEnlnBtA-h%0@RjGG2{)>@6MHuORVqT zGi6?%+;W!R6A23-x81sAcwPj2^U7pRYLvqR6#{^mc$MH)MTz zy-WXlX(^2M{NO&Dgsq$PXhvQnb6MeCTSII#g66QYq|x>Kfh}f{1N0LAY%A$*kYP74 zrUozmYd0%&Nm(k`eeDULNdiyzXD^Alt*}9^=nj{<|70{1XFlY9uv|7MT@fPvMn>FA zpVrz5r}!=RY-YD~Y9Oxjd=&8)DXW6wZ9Y=`C0sJ*X99J5e8uz?K6peDiMD^EzVaXb z+n4Ov;lk8-dr^OX^1yO`I7#t^_X|=26*VHE3Q+NUm&Z(;#xYOL2=hB+(-MLCvH+u6l5BSe|K1K6`CS%{4`UNiGm&yjB-5;vH z6Z3}fBTgxttfy5@4$j+dF(a33ihzs1=s3k>IY8)~n&M+Y41%+8oBo3Lbqlxo(|79j z*Nr{Je{`YF&b;7G2Gc&5D_K3sfm^E)ejC5xJQjMxCTDVhfAfD>{(a$4j+I06%7LfF zDLZ*M=?agS#&|->ak`7L=?h}``=I969*4F%cbuhzKeiigP_qsvF)e36L1I8IcUDt% zK`YRkmqJ?SUJ!UGaJ$Xt{d{V@Y2#eJ-(~l|vqjQwX-+PQd-yHZHjDC`XVR;IaacZ@ z*UU+XKhA>D%*2gG$(`s^zQkw&Lo=O}2`2-{oBm;~6_KtNzUmTv@#yzBRs|6|AbOQD z0kRAGANR?VM;zS=5UanUgm`K=zqmGmydR6QSEGdVH)j958B|-%tn~--<)u4)wpI$dzUJ9YzahYB zn-@s|RmEv*PNtI4T*!r1SQ|0sKPkHy@J3)XYcx<0YdmXK#>xvGCjwVIF?elEt(kV* zj%`~g$9X0@>M2tdYbJs2s_j}EAz<5$h+w~A9|V3F0UHG&`0h_DkFG*|DBJi;{pnkb z*Z}%OA4XCaK}Qk?oR?d8<;2oJ=oWK1dEAB@8n!xHg}|<1`dbed_g#y6 zzs2@8i9P8boyCR`c9fG$bm<(exK1Uy2qCoW)DZ@fVVIjeL`LQ}r<>2(piJM(xfl3^ zgx>&?I*pf@Nv=rtRUUi|-*jzMJ<*10dXZmOB3B)UVf|w0dmpp@1-`4y5=S zfV?6~KPUXj7VQ-FO-cw2+Cvnogx0FS1Z`9^4ict^2!2Foq$Aml;>tLLbEatC4T5@P z&6y_!7tz@r<0$(b0L}qNszd*@?)m28{dh>zI~Z&H3=cb(;ppqP#Q;a7bB-7xS&q4B zrwkg;Jw7R<5vJ(;&mefR0XC6DNz|XwPN4!m6);Klw10oc6|AdT^>Vol*-!`#lLaY= zq}Qm-0+#iFtk^b3L*yuQ??;244bLjX+?+7~WS}IiNeAkz_r5Ko9Je0-^&{yrg!3N4 zbFRY)z9*0#Uzu6ds;KrV3xbL+qFUul^|4ZpU=&@NOs}GY!;P`CQ6I>qIh~~bQhpY~9Ha7x*ZZ_*}EutlRQ4$#!IXA@o95%pG0iIZ} zZY$OECFju|g+|HJAVxKm5YPaVi;Kz~*)tyQ`0YXmTG3g`lSl<7oTRDKVljRG9N*lo zhS!rkH{_zCRvkTqM5ieo_%m7CrWA;M{oU0~Y0jJG2G~&FuXtc(uRZ23MT-4 zJuKtr9jS$QeSYQLv|i66?jRhFI|IBT#^oVPMx8{E-|aG;wPvbq%~2$wG2IMW2Wr;r zr<{#D1lN-<8`or0J;gp(_Tx_rdaig1%2w#YYx{K!?>acwZt%7V`r_PgnGw5Y|6+9W zp!0FX5avl8s*f8}VEmNp9ptX-Z^!jE^G7dTy%zAJL?hA_M|b1E1ad3CdU1r|8h9h5 zz2ub*9y=@#DrNEuR^Cfq}&_6gr!H-$rsH<(bF z4Y`gOIVlSkau=LwF52vb$~H>Yw?P!QI%rkp3KX6s51QgKgzS5XvwA|7?t={arsladU3al-O1^Fa+2rwNByi&S=;u)HSdM zzQEuOV->~Nn{HcLD0$Ghx$b2I9k&U{(L>X}7J-A#9wsJCbsIN!2CfmCOL?0SDj?Xi zGWdo1mW-jq+SILLOHl~Ycom|OQ>TMy(YxlD!b!@-?A2mfsx)ClO`+M9re zJ9rdtcQnoa_plOmb>b)F-iua7DxkX*Jf6#5W4Vyo0@A<2jsflm@6z6g3N#};dV?bi zJSOvWTY_0dupVDWlZr%3pXFaJB6dznR!_1KA8dS@lRLuGlFiDYL$w)G=e_p;#2Au6 zDC;6%Z}eA*7kZ+XO9=)@%HG{6=$`eLS><}0;$s={M=SJQt!KL+o(&{z=-l`19z6EV zF}J!18ZGe-7wwcmJcU9xk@JG{<7837c6c+XBkn~f7p7Nj~T*l-Nq2jIp5Rs>#>`I$MNH>ENdI!MDon&nQ_4t3;XIqU& zA`?zd8#zS()H$lL3Y1$Zu+fwy(K&~#!TP7T% z);^Ht7aBEKs&aKGxr!YlKuQl`4S?338)Ch2WZ(|_8&({yrr9qw~-Pcr9$AzDd!hR>npz{mHi8PI@?=$upIO@m_{%od2i zPk(|^OdB!vtE!NytaSI20YWM(n>KqC& z5uBX9as*97K7sB}aXa%&$U6t6)(a78V}l00soT{7b#`k@v^j50jcF_s?xFiw|=l-T6d)!(X5&p&VhjekHh+z^M%UxM=wL4lb))q z%zytR8oAr%-Tyi?#b)rpfi`g`@0Cf+y{A8R!7KtsWuviw94Wfo-cNOKYhOd{r~rlyIw9Tz5#Dst3u~JyH$1_jAb- zR|WXJ=kn*fib0={euL)qxxp+LhukCHp(*c{MHr0ww8uS%OoPJ+xwe}K^zWvPN5jN_me|I^CX zS*~Lae1yV#%8J{-x00Oj=&~MF=UTHT5i`(?XvEg;@AV8*>Ar{h!k3r0>g}KXNgN&u z5Jtt^Pmn7sJ|v94Q~s1p4vU*-pSmy;h z$+v&VLF)j|j{?YNbb!no8cv_QI#!+4QXTG!az6pOp=)!Emt}y$YA=WtEDNe!^!x}& z((bzk774u4@AtY3MUK)8zHXR|1m#;c=_RA4TH)@jNiGnFBHna+?;PuTwVr ztbwogCjjzj+#0^Pf2gHkS!rm-ojs-WaitIz__FVA&||QLU_N7qm?F6^Bl;)^l4;jx z)Qx*+ghl!z$~<8Mh)1Rkv$hdY+`DA*hJ4Z+wZ^wg>3DbAPn&NnxLGx+%X|o!uQ8n1 zqPOA;M*9ndZDAFXUTAvVpp^8$Fr(sMay9 zt>;uGeqoM>pUd!QZ+CcUid>n>OCuEYE|#HwoP$S#OO>jN3nJ_dtb=yiTJMJ_3CGjHT>BJgxuf93aeXg z>{p(0Fp6v9^5W6V-vZNNA2&#Yd*)tH=_44ez>oZbA&arP2$@WT6eee4IikH3a$X;&JsvS&-Zp5}ChtGTsY_px4l|N0UHN-d%99E8hLG?=7ab-GY4`^Qx zBg%g+_d8=-ko0WD2vd+&J8l{`XJ-IsEx)!hAg^1dp3%70#Ft(7oEAk2Oc&Jv)%?^n~K{I zDHVKl;gfJ-+=%V`+{$$c=p4GvzX#1q;k;+5LflUmNnxFYbugtD7t-K66m9a1G@QPM zl|C#!4MipTIAiTaO|C{f9`|EZ9r_lt{m7PUbBWzN{^$R@JY#8O_l@zYZTOfdS2^E| z9*w?2cFxCkf)_G)Q>`QaYI?<-(hnJbCOp0vFH!YQRM>kO90=DVIo&uiUb$M`)6rU8 zbB{E@q0eu7+1@jFFVdj-D?fK`Zj&k3&>O2YiQ`kZv?&LPW8;TNG|YAWV;cFGUmvqK ziy|VhJ3*)JFVvvHi&mEH>1+;d@oXyvun70tTFxLZ*V5kh1xOMbKO726&hd+ppjaoi ztp=ib?6a`&SC^JXg6!KV@JDb$VETq0YavzHx&Quk0Gv8`eYC-YElN#O6Ke(*33O~A zkTTTngI=jGz-qjuT1?w#MfCkt5c00o8(SW8e3+hI0$31C7Fu0AU5`=1z)2Z?2WcN| z)<}J(+StpV0X6f9x!^n~o#uGFe${yboW=Wn)m1gG9VK7pA~cKu{eweu7OA#UzsXjv z>rYIgnfChck|sbgH_5{Btv2*?0;_{*3O0ezYj+ell(5%{wN=fGwmC@yUStl91_lko zq+=CJ%X3}LCLE-*1|L8oI*9?*3+irkJ{q2HRGKn}07BL0@)27L3o4tF;C+4} z!ZmldYCF9w6g6s}Hn1?GNXyzO<=HyCFV&BCa)u*<$4-n7Y-rl!xojS~G=x^5RaVd~ zQ^&-%`!$XN^vpf(iD*&*#t&XY+bNXC-sH!W%10REe>)sJ-`~8vzV>2iaqsK-gbTNU3xOziErS}pGL;^ zNYDWS?XUd6`<8Qi&E9K}RRC?70x$sykdOLpn(f_7V6q)7`SAp=eb;9*`t{cFpF0I><+ic4h)mD~_4kzo%J<`5 zGnaglj*#6f;#QwGqZbSouFW4Fn;nH%HK7KHJzkuEoKI023%(QcZT!*oqa7fuangU# zCvHg9TvG42v}!7j%4}m>vitU*ByN+p)gtSZk|$=x$tnEsG*ej3KTImc9XaslHt87Fb9|&$ zbq3zf~}$-9#rrrw&{?6jW` zgNoVLn{w@a*G<@9MgzQ3g-RKSzrh4k4mhvFu&B1m8*mAtxGLXhmr;tzhv*SA(wX}i7fIjq%ozsf3 z%MOgoe}wf*T2S4U^TV2aDVZ*cM^f0@WX2jWJh%lU3veClUoW9H{!@~p`nwK8<0DX? zGTu(wY!ZiLObl8ex=9M0y=*);2oDdtpVCb;hjBi%4bSPeRr;Gko}#Hq#2w7TaYITG zg`Q;?{xepwfBhd#X*qBX_cIqrs}=Npq8E8V1Hn&eFJbS71YJ}Jvo7K$KdNph13E&w z)9{a9e}{skmEQ}F#kg}Wo+Fi2k3zap?LJ~?5J3Fu_0Eg$Iy3SZ7JYwR`raR`6esaUjW>~%q!XhLSu91PzDJOn;pQ|KI%gcx z_wuy1wak#C9jN=TETjs1~Hh28vn!3T0 zW;MU7q9U4MOe5Mk>zaMG& z=Xt+=mob2zqHyuCH#H=tyZA=skkPTG5 z+U$RCM@#HkEo^h^rsc&gXd)$km*&aU#yi-HC2c~oMhe@rJHYGb-$*T@^YoY^#L!~f zUNlP%9G-c&xv`0gd>es&Mvt|5=QTPad;-1FIw-PDM8y01du9#a17@mVdT+I_br|Xl zsDHn^UO^B#zzTx%&)^EK4MJ`ZjUR{TlG*~&|EQ5RM5niyAu@YmvrNR>8>gZI=oQ5+ zs1YRhRsU2WOy0dVL(aU4zC5C$3iDlY0l&*SjnXq|eNuU43@ObN;ZAU{7fPC3l#m5w zYRYyDjp#%-c-bztJIczDP|J!0YSiN96VK7S)U<0dt1SJjGe8_9t(I67`d1qO?loT) zK3!m0f6dy5vBI}O*?(=3V_j*F{$r@TJXOX1K@tTYVPNRK3K#NsAFn(5lbS~2rPpA} zu@tkai%;DOXyHcyQX4#?+LqS5<6G);NsAQdxJ1<en~#>A7Yb`NPZC>>m3{M$I{U2J>NXfV>F|f%)SMCLmzP1Kli6>~i2tT^ z>JeE%ds$Op2ZE~W4_t>pKI#m8F^Zu|zyH3jryzwt92WIlqd2d`LUQcg-4WjOK3}pU z-tJ9TU-w^OuUr*axkSYfP-_uP{papo3Z^Hb%QCIQ{oqE~QW`Nl?JF_|F!)u%?Z-J-3{KI?iG(Z z!21N8)4&=H{y#t~fV@5M*oE7LSurn4**Fh&tt%43Y35=OQoASJ-c%4GAU8W`3^bl; z@HgT|JjK7;4C!+R5OllwnPxb)mR*ii;O-trVZo*{vm zHOm#t;t1$io({*Fiq5M3j(m8e2+dwQA1G{COEWp%B0oGrXdnM?sLy%Tzdg{c@|{J+ z^bno*+o2XJdmWkkRwRMD$I-_1P-x?0W<;g{ZBQa{RQ8!bbJ3F$lfl91YhCf$S1GWQ zrWkgTi!ZJYXHu=>%4Gs&{Z_APkK`WL8UwZ8Fb6iVy^A|Z&xLN7d7KGnj>eh|`%@KE z7e*7MP#g<1XlYK-)Rs|(uusFZbDXs#;A;!C+K12&Rxp2-&E&*Ls zy_d+=7xO?Y1>9wal_cBtWYqYu+sj!l6@Z zw&SSxdSaU&1HsV+G;dx{*p3NV!F`?3_8y5(v9_=2c|t<-Q)=fQ9@hFWS+H&7QN!5& z4ZLr_(EOaU+8F0XODil2JSt#M-HUVIA?c~4+=2Lxs9C=+Yr#fC&#N3q2U!c7ub87tXdN`C9mT4bhdV>4N z*$eZl(GisYY#Z#SbhoTvnEmW*X*J>Z{qlq>^E`{gj?9Z-p%~6bN5l#DKS_m|491aw zOa>rRl-#v-nq!i7OjDlD6tDpEom=5;`Uu^7CtyLasS8i>rKG{SW4#>oACVXi_IQcx z^-)?2zm#K&wrlRY>g~5eU2LRCHkL6%|MJa}{}d>;(+$=;P{)@h8dRr@adb^3UL-<*x_>yOKxtUFG%{ZS?#k(XowJKhEN{{e?~5UXWl8z$?! zz58_1l{M*k!e{1r+-c%BDh}#r0jQ4~DL$D^li}io7f)achAu}NtB4L(K5Ljwdl*@A z$84F}Fb6TyrAyep+qBf;kdmf~dewz&<+`0_P}V%X9rMu?=9Oc6oepS<@BNG=#IQN9 zXk{EX`dD-70YPWE4~_C8hZ!0)Savs z8E?XG&HGePKIRXXsHA(}&8@YJ9e&koY9A`nv)Wi&J#GHaa+A1m<{a~i;+o*6FG?n_ z-ONp?G`j=!c_#KTu@I__Zld?~;A>oDqz*=3jRik8=JEO16VK5v<8a=D@yD0U^s+WT zsF&UI+L6BptG((r0iFXQU$-h-Hq$pvV7gL8-g^eU9f%AP4bkxr$Gw`~^oz{<&p`QZ zN%_#X32+|1ld&=USYHXtlJ-CV{m7vrY@@pVn4Xse6`WU3*3#H#0kYPVP#6HhUvNsrWOFj`(A=D@jLJw$P`{@THbZ*&>&6 zBEI8T3`?ZE!ShFIUqSYth1(WI2^t9q|BdOtHYVn+^XVORlbfx)jr{pgMRLx9s29S! zK@M?nzkf4P{j_k=@c}|O4{EXDc+@4C&P+=k*Db6?nT!`}8`l`RyOIS@ zWdL9Hh=Jt)d-g+sBu|x5|1|I1h?mab^xc_BqaBm}Ev7}n(T06rJ^#`~qy~>F;S!QQ z@Aai9fH+uI>IkweqB}w-73O8-OlR2qPS8$IPj%Y;M8I1y#_tX&7Cpg^oi2ChZwU$D zd-)&x;TQO z>(e&8Wyk@;S&yRHz)n8ecf-zErs|$U$)!1lJB9uEgWTsrml;{5S|RZ(!L<`u-=b|= zc3M0Aub`KmR|q8qHOJl_iv0mJ){3waXQU+&e4ZdOzQS4iic#U+%69WQsaI*gb_N7` zo;E~g9p$`7Kt`2=jNmfm@6BO4GNpxX8~J~ca2pk&Hf>Xc(Me$*lWuJ7+^lv9db2gb z9Q@n4Z(jeoF5LA6ehCjJYV7yppN3?Vav96dj$o(w9$-?Rjs6{fIHeXXebD+0K5?=F zl9I1{feTwq1AtAOQ?^0agT-8gQs{a*ee1uXd{_5(t*g=0^V^R_@SAoLH9ZhBFrr~D zyj0pe;x~Iim>&Rew=Tj{Sd6wdxs)akl4@f}yixR2=3I^)>-pZgEtd4_N``muA+=~+ zjwJbFYqq*iA8r{!&c&_^-Mi-E0_N^4tt;Z1y8VpWjbTBA$|w zBg*&zLT$oSAYWC$xFHW?^S*K5LikBYBa2{E%}Oy}t{s3TX2`@jQc^~St!S(B zw$nZPIJAlbW7ZTYXe%MrhN1e|+(+u!WCw2-{ia!3+nnSn`q!+zGg%j8)e||4U6N!N z3q{s3fysNnWc9(JU-@aVFHN^Mnv#XvbvH7Zw&s%@Hu2ccIPHJZwVTtK z=^sR=JV@f}^!BG`iFBBJ^_*v8i@2Ef?g1(rb=a}_r%#-~e+O*hj0|G~bkFazT=5_{ zVf9lNSvCAEk4AQ7vah{J?HP-^czqi?L{4Jqhd zG=KSi_PhTY{aX!~#IZ*zI{H)(a515={Lq2DpDmj(W0KEW+TeGgvt=by`P3LRrwwB} z)4i+~Sb;7Ha~ay4!Om-fSRYro1WKi=nok%59X>kfZ1xAx-a}27dmW5!54c zS+(?#<9AI45(lJPgdfBfb+8@3Pm$s*AK3*=&;TjjdnG)eJYi>GFH9QqW*!sb1pQZ2 z>Mf-M`8Z&APz8PZRvKMdt12E@OxMfI9}c?AK*R}f{p2G%MtK$jy6Av5GQ*uT@?i&h z>zj{pe)U4YH-D+B<}jIoVIahEUyYCF{U#v+SE+Tlgf9y@X+0Ny4<4e7LI3nWk+HoO zUc%m(#4ggvrRR!oGhSnoPAbQL6$Wrck0|)?ws-IJT8@kk&U9Wk*m#GVrj(Z6&k9Ob z`&1ZF+>^;G^d>DzylE>LfD3onAL(=mz zt(S*bdR6#s`m&BI zB*W}0{OH!mhr*XS)jKmU99&hRJFQgtZBiYuWpN>u7!GK(&KZIJeK_v z&lZF%0CNswE`JPHZv+71AE6Bp+kQ^r04GN#rMcW`MCYo#({tx%9A*wcT3)f0Z> zQg37e@)$%FNUrwQ&RO1YT36#prDGI-uC*!Pd0b>F7jTf`W0rx3#!lDaNCto5&XbkU zlag0`kxr@*_0HOc|%R(-Jq#JI~)=rjQrseJH z>)S9N#1Ix8#qKu0EuQ;)rCn#qYWJ2RW@I1Y+5*SVbF?4mP(g{RQ`c%{8qc@<(KnSI z8fCJyk#>;QKtvA={}U&=E*YTablcGpM*_n#HVZec9M+EY7ik7B@G`UpFZJYLX!Rk-BhtFEVtNZVMzWH7E`xi30q8X4W-ozU zuV{z^*PLh$c82w%6=u;<3%ZB{5J-F_Bnl|yb0m}h| z-TLK#H|;$KA;{?$rt2*84F~8=TUQQ`Mg2A|)H~$Ou50=8;LR3Tc@!|w$^!k^tgrfu z>X$$I$`b`ZG_!ZGR4_~@_Q;wh?_VaAmjPw?3u$@M6~Vr5V(VDCyz_@bs}(`)M;iQR zRNR;?;qad!;5zY%38q;w!lMPoGNA~YMFF$s7a6l?71#J9o)Y_*{#F9O6ExkfjCFPU zPAWNOCw|P-MSsFc0v8Hvy)w-9h6zymo~!ZN&3A)Qg~#<;nCIo3<;}j)6DiCkF*Del zPUd9zu;{rv99%xQ5)tm`MB&Kx4qd*F@I%{xu*7#RdEz*-!j=5Pf50{0LBPTZcRwz| zA#cQwP`kk(5f80TzsB6BQ~}@;>7jD+0jr7s`_%}^#`od8`#J5ZU|G=5*sY%xAHQ3= zQB;EZ=E#uEn(i21lTYo#WUzRL&2Bw%iNjL-_{@K5YWQ)Bh(~Crl84w(+rH7^s+m_NXJG$bj2n{{}9(6<9P`!(OUm*#nj?TTCrs0naED*Z{R1r zD_4?p%5eOrP(Eg@q87=N_bu~+9;qv%E_gk8W#EB*X4=jRqwx$y7c&edOVq>PiAK~% zF2~sN%WL<)3aRvF=wYN+wtqLztl!evbVKQeY=$k-@n_Bly3Vz68X(&{%r(3MI0qE! zlk_=EK4GaO4g*xglh$TkK&}RUe-MJ2;KQ8aG}ZIA0E=Tyhm%O|%=D*zJM=q(O&6)f*r z`O7^FJfvH3@Cua}+`Rt|^5T9~)MCa-fsa`SfqP$bfD@f|`Iwm0?gRoU?%u{xBOqWUd(aSWL?8BUUk?R zA#zL2WceO3x=7az^w6osd5LpgV&hJ?V<^FxP0g0^-8wI>=qx}Kld^p$X#JZfX zA40*h-2`nz&k!<)mUyr|irusu*}i#~-q7#HVi}mL*>m!woKIf^*lRr--)`5@l1ZeY zEXXv4xJ5<2deAsH$|$6fnPCMf=RtIbcX^luu_GKT<}(|Ns02WN@82jfO2Fqw#IV;} zhb+$hYdjmkOu8{#yfw8ECjj9Dkdlyi`$GUHm7_|aVX&6x7lR4;SDfvs?+lp+3wi?2 zLR7w}W{)FZ6pU;MS@v-Id@#J4=nTn)m>wh*B;AyIDZ4oPK0#Q{=zg?cE;Tw4pf|nC z$o(F1jCW@R*SBuaM)7f3=g1u%^b1uA=HwcJ8J@`=%~qDxa%Ej zB96ShzQmT#QIh-yjjv^ce~i9srEK+Iy)|gbb%rE1m05Y2;XkC!Ord}QmF9;J9>ZIt zAk{=bKwwBo9WU21esC~BNF71JV1j>+l~P-VC&)pm-CfX0=MdOY;KrqUmXk|4oo#&e z$x?gaed^8t0~{lgMK6U5G}pYFDVo=ibf*{X$**k z`o{!19EF5(%I#qgJtEobmMi_iuq#4(-S@Lq`RfI&r_OSQ-~UIn9%^Z^Z51BqbvK(8 zdN8DauX0r}+GuCTGB-i(c;P?6ItB9*5N{LV+WW$ZexD)pwE-G?Z{Gp7;FyDYF`D zCpw9z&+$z8XxbpkY!NMSAjnInL7yK$Vh`E4f<`(ueMpXIsd!0&XD@ppFQvx4{evyc z!W;bavz80<=`wLy9MX!GWYnZUBDSo9{Y|f*OI0-0X~;;fm0wHOHu#FOpvJdq@8gS8 z`g;r}LM^KE)=%^M?(P>V4q+S6BXkxjtL`7V+wGewolIQ09!QaS!TJL`t|dPOa}9(- zYgxM@cFvcz z4o;1F7rcUIwj6h3lo1ibms96e@MQMwl-FM?-JcQBEZFW8^+|J%h>ZBx=F7FWj_l?B z9En7O@6R6zv4(i~e;Zs0+xPz>@DzA5^DfRwx8akq$CcEJU-%#P>F&WW!^dxC(v*gs z!HOjAVt7U>esY_w77ffF{P?8MWmx__hHj4el2?BgQPDO0XK|Jgt#q<1^$u5%Iz|Fy z3;s22XWO{kxr~bRh2zi&`l#dfk0Njg5Mk!V0!fyX+(YvH+k=rY&hzJ>0tqkeJ}m+C zg_rW!yhqTl9S4iMD;e)hgV!rP3!PRz%Fa<&cRI=Js9yU*?%xHVxlJ3x{c?#t#VQ9P z2$V)(_fuvfF$lx|#7tq0q%613o8J3vuDX-32gS<<40SrakcHd)e++MU8c|w%%vXgW zGaWPvhJlu$ICsk-KO-BHF5>xcp#La~nSevY5$riuIBFx~()NnVhyhN()crnv>i z*jL*`%L*NGg<6>&0dtET=Y~|u1lV<0?_F)nOX|w8^DYEqdoIqY@`RW4FEZj^hc8c= zsGc_SZbKvV#Fi1{X}Ti!ZWCF>wd!f34Yvw+y8PTj^Y?F%1={(q~M zrF%maY_8b93CL?{%D-=HNPM7k>y}Avbd?ybBA=ux!jz-o68#3^`YSN2oDKZ+v*ro- zM0Qly>cK%s{U0O4l+sRZNWdWG!)U=(ViW+iPv4UIeCj`BI>Aw<3NNN@+@UMKbN#@H zZx@tO*frqKA*>*z&4GvZ+&JrurkUQ{0;^iB-i$?Uo8Hw3)8N04qB;HrLZ84pSW^||0bVBUnAsLbc^WnC zL#(;d!tYdnz^vg{8&-~euU1Snl`>5h<>vK@I)7mWRq)3DPfc*rN3~r)V`%p0E49AM zFwgVP^Y%%;WsjgY*&eSKw;AFy>k7Jm;Wu=TD992oFr@`EZ~+8QxWU|Cu5Z>T591Rc zh*swC-k^bgvLxHz<{BSIg1;#@t=>oOt{msv2S8D8ApGUny#<}HmBtJ?&ER#eZ*a;` zX+i{vmwn2wug*Y|xm)o|sxl7D4VQ2jouN{O+BtQ^M|9?$bDKY+)qJMa&1mKcQ2o|+ zD9zPJ*wCIz4o~3`rRlQ0!u!XVpW0V)L;jJ%Q}KazJD`I2g%{}pz!> zoz#B8i83A?O5?TlLCYp7wCH&DkhT-WlABo)Sp~-SSiJ%cSkS=y&lof}D`(;_Ip_A3As*QlK!w? zbRz>=*CJU&8(7kfnKt8iYfLPt?Xri-PnOAh4fCs5dh+&q+jHpd4j$=%fsFk)0<*fh zZk~&qow9OKhY>n>kxRbR9TVaS1+PBDjD(hHGGJDv&g0FI;7MaksNmn)o=&H2nAKdC zKX`kh(Ti-?Qz7Cd`Q!H#GO)+qY|c_XCj+)(PqWnM-%?Cdl#Uq`=Jh8toC8b8iRHS-R?4}a9n z?3SJRjiimJA14<`Q@}KBU6j?k-0IzQ+=&K?wmg85MzJ=BQwX^qUoJR=-I1#xpPrpP zuUwD}MK|dV$MFFRQw@COzu|rPmzqp8;uvm#GX4qd#6ER`Uuemmw_*)O*&S?=0I87MW;M2B%XNnB_bpQ4DUO$-fRNV{W#wN z@!_dE!RuGPU4ZE#wFOLC{_+-Wuj#p-VIIU>IL|lbe$(xx*Spq+mV(7sgy+k|V8_u% z6j}DShN4A8ZMh#Gl@6g>L*%s1LxC=8;3y=eS?|L?3b-=0bM@XMVR@1$oAg;VouE8y zXTr=KZg7z*A9c?9&+;ekr*NY!fc=Z2_bfU>S}+RCa|G8IhwXSawKo&C&o~dJyXTfV;$$PW20ygar=?Bv=6J5W`Bn7up6Ro_ zW8A>G>LH}a7tZ!yH{(xI|;Frg70 zBn|9h%_8WUeBh1rV4uuSBz|75LfI>YLp=@Ps?%J-ExCtyq-=WP3v`wUL;CyZAVUKi zSlRtJpyQ;9rik=t(jHh)P=Q5pwRwPw-?prKfJ&cf2!=}6+ibF@MYV`G1_~f0H|-+a zzEsi##e}vG3Q+zCh)yeVt46QMu+WmA1<_*gj6GU9i+-o%r_0C9SXsNSUXN(X*j97B z7#`a@*2b~E&LPtH877eGa4l|=Yr)a3#L?7FU9yf}pxcZw8u*9sJOCrEMk;9jg)DMf-8cXzj{z=+bDZ$mE(m|Z*ruO~(+Na|0g4C7W+0K;y7jj(N+3-6>P^#ZtoA z8(||m*VYnZnsWOS3r;9`8M=l%puc&UJx|CJx0^Wvl#0Kt@>joX-*kxO$mE><+~(rljQP)G%-(Rd`3nDr;T(ANgf6IZR5sqRib-r2BAcERonRdh zDgz;J00jQ>{+6Ltog*H;2g9cz(QkbVQzA-RK{(iIWdd?A`YMp<-K7!>BGl4;EfpkX z>H5%>1yC4@5LnT_E>&W3JctIjXn;6Hv{s2xEU_F8Twqo}dP)RHKTZP;=1mmwWHf52 z*;n3X>;KcCGUoCi7E=I#SHkVGZ{{1vS2f>KR~GR-4--d~`jL-N$SHs0NbzpnuND_&ZVWwtGdyjSk%rykgMZ0c!e?7=#O6i1%YbK%JooDTIs+8)>pAj z9K}v)C#JRo7aukMs|sr15)rJ`l#$j9{o)ZcE$8rv+~J}~&GWnvzSqd`!C12Wg}eXp z2LOIbrc|P0sw{1f7+tSi&5s6%b*1h~)*o-OTXmU#Z6u(s|iF93V;h%F$*d~awaa+2sEgfEJ>t7gDt z-NW#d(1iOClOh0w^;Z%C!8@q!wE#>?mYouzUmBI@`2Q`O%Job0;zEy|Jq|Xn7@ZB1 z84Hgb3h>+WdbH7VCCyfknaTjJdVBO_axDwZutNF+&qT|21zx<@4Fq(Gvu8swXKOp3 zg-Qeu<$8*3vZM-aB*jh-elBOm9VGs@2+kaL;`EFc_1-aP7hnf`jjdK$wX)1u=9@9- zA#QQ~(!`-n#adW4CjG6hSx7@y)p#n#X_hwP2-VzYbB9DvTAB!$qIYk1NZ(>$jKjB# zxrqT-oAyYEm*uEQIgJzxz)sHw5bD;nd~-JiKXeQl*b7%xbv^;P?P_(pL}@J;%9h%k z=F!E~Z&G3~*k{|FiaEl8O~u0SZlXph#XmP_>|RxƶWe>YDWh?t55S6;`H)ZuS9 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 z zP~X+TH~I&DM7O@H?dfwLBt1efHL3kynvHyzCxB7y?!ArKXaRF_%YJlYZEY zNidT@@r3mp=H6y?LTaWXt_@%>yYi+XCsbaDfe@Hy}{s@HrQ$Ck<695kr6dv>I zE1aBf;p~^h#hXBQlTj3P`SW9thsu-V1JE5>rQXj~bcV93O;_dHo11ZyyWg9=7=rHZ zwT+E}o=o2&q?HL2GtaOd2YObG%SJjogMmBN$k^C^M1TA47QhJ?D3AGYF(*S^3749JGTgm;mzqd;JoMt*+wgp* z1L+G-Ngd{U{00WJL10YFzQM!2VR_Zk?tv1h@V0xS&$HcwK>TK9Rh7LiNXZN^fDu9D z(YYorz{K<%(TH)+1LD(HgfJ!oqIf>oAsH&MR)#{FXnr#i0Mm(&{tWrsJu+tzv-gIQ z)2Q(^MQM5Y!-bL2(NS9mhlbJ7IE0=RZvHhr?H3zMt1P~EMX%i9BP@`ne$`b{G#VWl z53t_R@yyLlhbu}b~SeI-d?9_2yOB#WQ?>%yW0FcPU2wFBlM&bRxn>dKFLxlgobV-*_Ga!@#M+ZA* zhr4U-aUxNLg#xViK70kUeh0ui!joO)q2F&pFv>4U89SCoD-crwx(TuXum;sBV1!ex zwp>F*=FBZE-$0$p+lzvjQ(H+*x!X77RJJ_eP%zi~_upBWnWZ^{X&5hl8jH9QWbam* zfsmH7q|9X_^|;}@@?3m;e0f+{n7G5-eK9^b73d8m1^P}f!+y%$Fpd+L8vAVBGF9ub z$}%f!>l~PV?F1of{h&o9)-Z98eTUKhel5fZ9Bj@fGm1F1%V$wgFpG=pBi4iA!i5x( z8#m^lK&l@F#E4=nERA-wgH(OvU?0{!B#_N7z5X}FxG?dl!50PPoo#KqM@L3BfpA<- zSxzpuPWf`Hyx{?)J(9lcd<25V+!6n!Hw&|xIaFm(#i8s4=D<#u75s!=2fhC5SJABh zkKUsc$o9eC-~Vs7Cfz5bI_~b z|MwB<=U~(ORHxF19wYzxua#g*Re}Sf<$M;buEl%%Vo2V2XdLA z%J6#*Dq+4iEi5t;C*7_=3*`|3(EA|2o{~cwL-NTJj$n!78^9BG;Jcvzu}vjPI)7pzJ#6X2b~d+bexDRcCHN=@Yhyg58NvbC{E)UR@_+?$D= z-iNmNt&|1(b-Uf~d z^bavXcl34WsmA&OlmrkqJU@d4P&NTy@ClMn;G$6{cR$|K2N*&ML9DCyaC~aNz-g0T z0FkvJFN6VxW9n0s{;%X<@g$|#f0hOd{E>$&EwzJr*_-eo-QAl_*gHO0!6zX21zPbz z!mIk1mpQWZ>D&KCOe%h#9~L3W01T^znG9$}7<6dTfTy(;Az993M_iH?l=*ES>Y5^T+PofkS2BPy&S@x*x z7_xygz(!>{kZXtmSpb{eRYUQECH|%$`Zl;253+8>!&V?S;38;|)X<+w=U;z;l+}B&!h^Tpqbw-WRK@ zHlBcQIwxJHTH46;C&UV12a+%%94w@)Yo+ES6%j-zv5i~=YVO#{ZJ=ub-)gG#Gx*fH zr8eG^&B0VLqZ(x3XMsO)!((3{`A#s`s*{zKRUn;kC^YNyx$oNS@2n^*DiQ(cHXg^H zKJIMDpKON=MQCWKw7U9*#8zsF{khBJ=g%V*pKEJtA4HskR;mwzkhHVwmIc`1_{l{d zAD>qN0lDE^<>lo)$#+PtAe#i5$p9>}N>D5akP87ZJPnoNShc^9g?Lh>6&1ZTUS6uI zs=F|arJhGO!IYYAFAeU3+mWh73-1aRzp=BEl$10$|Cj=Su%ws#+HPk~2bwhJd9b#lD9(Dw#%zIl*5 z#PB>^yMq)igSYp1sPI~+_`#ESqTD*s{kdfKwMHtSgie51vI|}bU_??*4lglP2J(tw z2m#2)Te$GwdhVJ-BlFMPr=p@MFgo%?>c7!dI)MG&y-)w2!S~PW|1WX<{}u9&8HHEB VB + + + + + + + + +genQC - SRV demo-dataset and fine-tune + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +