From 679100f955869512429c9e7cd54495d9c51b1f1e Mon Sep 17 00:00:00 2001 From: jsanc223 Date: Fri, 10 Mar 2023 10:44:19 -0500 Subject: [PATCH 01/23] Update README.md adding group members --- README.md | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 15749d71a..0e9aa828d 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,7 @@ -# Instructions +# Name Entity Recognition using Deep Learning Techniques -Create a GitHub page for the project +## Group Members: +#### 1. Sara Ericson +#### 2. Andrew Campbell +#### 2. Jorge Sanchez -## GitHub: -#### 1. Create a GitHub account and Sign in -#### 2. Go to https://github.com/acohenstat/STA6257_Project and fork (create a copy to your GitHub) -![fork](fork.png) -#### 3. Change the name of the repo to *STA6257_Project_NameofGroup* -#### 4. Go to *Settings* -> *Pages* -> under *Branch* -> select *main* -#### 5. Wait for a few seconds and refresh the page. You see the link of the page. - -## RStudio: -#### 1. Go to RStudio -#### 2. Create a Version Control Project and Clone the repo. -#### 3. Commit and push to see changes on the website et Voilà! - -More information: -- [GitHub](https://happygitwithr.com/index.html) -- [Video1 RStudio connection to GitHub](https://www.youtube.com/watch?v=MdmnE3AnkQE) -- [Video2 RStudio connection to GitHub](https://www.youtube.com/watch?v=jN6tvgt3GK8) From 75f033afb9982b1f02fec561367c9c811f84ade7 Mon Sep 17 00:00:00 2001 From: jsanc223 Date: Fri, 10 Mar 2023 10:44:33 -0500 Subject: [PATCH 02/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e9aa828d..63eeac51b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Name Entity Recognition using Deep Learning Techniques +# Name Entity Recognition (NER) using Deep Learning Techniques ## Group Members: #### 1. Sara Ericson From f7f124c6ca5a1b93d91375a90055217503561fa6 Mon Sep 17 00:00:00 2001 From: jsanc223 Date: Sat, 25 Mar 2023 10:45:52 -0400 Subject: [PATCH 03/23] Updating title --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index f8ab42114..9151e100e 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,7 @@ -Report Sample +NER Using Deep Learning Techniques + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

NER - Deep Learning techniques. RNN and Transformer Model

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

1. Introduction

+

Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions.

+

The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER.

+

In this literature review, we will explore and compare the effectiveness of RNNs and the Transformer model for Named Entity Recognition (NER) tasks.

+
+

1.1 Recurrent Neural Networks (RNN)

+

A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN’s memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems.

+
+
+

1.2 Transformer Model

+

The Transformer model is a groundbreaking neural network architecture introduced in the paper “Attention Is All You Need” (vaswani2017attention). ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model’s strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures.

+
+
+

1.3 Limitations

+

[In progress - Pending RNN Method]

+

Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers’ ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.(keles2022computational)

+
+
+
+

2 Methods

+

[In progress - Pending RNN Method]

+
+

2.1 RNN

+
+
+

2.2 Transformer Model

+

The Transformers model has a unique feature called the ‘attention mechanism.’ It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next word in ‘I have a pet ___,’ the attention mechanism considers the context (the word ‘pet’) to make a better guess, like ‘dog’ or ‘cat.’ It’s like the model knows which words deserve extra attention! ! Let’s look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula (phuong2022formal).

+
    +
  1. Scaled Dot-Product Attention formula
    +
    +\(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V\)
    +

    +

    Key Components:

    +
      +
    • Q: Query matrix (requests for information).

    • +
    • K: Key matrix (used to calculate relevance).

    • +
    • V: Value matrix (actual content to retrieve).

    • +
    • d_k: Dimension of the query/key vectors.

    • +
    • Softmax (...): Function to normalize attention scores.

    • +
    +

    In this formula, the attention mechanism allows a model to “pay attention” to specific parts of input data. The attention scores are calculated using queries (Q) and keys (K). The scores are normalized using Softmax , producing attention weights. The output is a weighted sum of value vectors (V), where the weights represent the importance of each value for each query. This mechanism is popular in tasks like machine translation to focus on relevant words.

  2. +
  3. The Single (Masked) Self- or Cross-Attention Head Formula \(\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}\)

  4. +
+

Key Components:

+
    +
  • Q: Query matrix (requests for information).

  • +
  • K: Key matrix (used to calculate relevance).

  • +
  • V: Value matrix (actual content to retrieve).

  • +
  • d_k: Dimension of the query/key vectors.

  • +
  • Mask: Matrix to prevent attention to specific tokens (e.g., future tokens).

  • +
  • Softmax (...): Function to normalize attention scores.

  • +
+

In this formula, the attention uses queries (Q) and keys (K) to calculate attention scores. An optional mask (Mask) is added to scores to prevent attending to specific tokens (e.g., in language modeling, future tokens are masked). Scores are normalized using Softmax, producing attention weights. The output is a weighted sum of value vectors (V), representing the importance of each value for each query. Masking is useful for sequence-to-sequence tasks and autoregressive models.

+
+
+
+

3 Data Analysis and Results

+
+

3.1 Dataset Description

+

I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition.

+

Data Definition

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Column NameTypeDescription
TextstringSentence including the labels
StartsintegerPosition on where the label starts
EndsintegerPosition on where the label ends
LabelsstringThe label( Medical Condition, Medicine or Pathogen)
+
    +
  • Labels: +
      +
    • Medical condition names (example: influenza, headache, malaria)
    • +
    • Medicine names (example : aspirin, penicillin, ribavirin, methotrexate)
    • +
    • Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli)
    • +
  • +
+
+
+

+
+
+

3.2 Data Preparation

+

The following python code will load the required libraries

+
+
!pip install -q nbclient
+!pip install -q requests
+!pip install -q pandas
+!pip install -q nbformat
+!pip install -q plotly.express
+
+

Import the data from Github to local.

+
+
import requests
+
+# Accessing the JSON file from GitHub
+url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
+# HTTP GET request to the raw URL
+response = requests.get(url)
+# I am checking if the request was successful (status code 200)
+if response.status_code == 200:
+    # Parse the JSON data from the response
+    data = response.json()
+    print('Success, the Json data was stored into the data variable')
+else:
+    print('Failed to fetch JSON data:', response.status_code)
+
+
Success, the Json data was stored into the data variable
+
+
+

Parse json data into dictionary to manipulate data.

+
+
training_data = []
+for example in data['examples']:
+  temp_dict = {}
+  temp_dict['text'] = example['content']
+  temp_dict['entities'] = []
+  for annotation in example['annotations']:
+    start = annotation['start']
+    end = annotation['end']
+    label = annotation['tag_name'].upper()
+    temp_dict['entities'].append((start, end, label))
+  training_data.append(temp_dict)
+
+

Convert data from Dictionary to Dataframe. I am only showing the Text and Labels for each sentence

+
+
import pandas as pd
+# I am initialing empty lists to store the data for the DataFrame
+texts = []
+starts = []
+ends = []
+labels = []
+
+# Iterate through the training_data to extract individual entity annotations
+for example in training_data:
+    text = example['text']
+    for entity in example['entities']:
+        start, end, label = entity
+        # Append data to the lists
+        texts.append(text)
+        starts.append(start)
+        ends.append(end)
+        labels.append(label)
+
+# Create a DataFrame from the lists
+df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
+df.head(5)
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
textstartendlabel
0While bismuth compounds (Pepto-Bismol) decreas...360371MEDICINE
1While bismuth compounds (Pepto-Bismol) decreas...383408MEDICINE
2While bismuth compounds (Pepto-Bismol) decreas...104112MEDICALCONDITION
3While bismuth compounds (Pepto-Bismol) decreas...679689MEDICINE
4While bismuth compounds (Pepto-Bismol) decreas...623MEDICINE
+ +
+
+
+
+
+

3.3 Data statistics

+
    +
  1. Our analysis begins with examining the frequency of each label in the dataset. The dataset contains 134 instances of ‘Medical Condition’, 94 instances of ‘Medicine’, and 67 instances of ‘Pathogen’. This data provides an overview of label distribution.
  2. +
+
+
import plotly.express as px
+
+# Count the occurrences of each label
+label_counts = df['label'].value_counts()
+
+# Create a DataFrame with labels and their respective counts
+df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values})
+
+# Plot the frequency of each entity label using a bar plot in Plotly
+fig = px.bar(df_counts, x='label', y='count', text='count', color='label',
+             color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels')
+
+# Display the counter label inside the bars
+fig.update_traces(textposition='inside')
+
+# Update axis titles
+fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency')
+
+fig.show()
+
+ +
+
+
+
    +
  1. The chart below displays the distribution of biomedical Entity labels in the dataset. ‘Medical Condition’ is the most prevalent at 45.4%, followed by ‘Medicine’ at 31.9%, and ‘Pathogen’ at 22.7%. The chart provides insights into the dataset composition and label prevalence..
  2. +
+
+
import plotly.express as px
+
+# Get the counts of each unique label
+label_counts = df['label'].value_counts()
+# Plot a pie chart using Plotly
+fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3)
+fig.update_traces(textinfo='percent+label', textfont_size=12)
+fig.show()
+
+ +
+
+
+
    +
  1. The histogram below visualizes the start positions of entity labels in the text. It reveals that most entities occur within the first five hundred words.
  2. +
+
+
import plotly.express as px
+
+# Plot a histogram of entity start positions using Plotly
+fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions')
+fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency')
+fig.show()
+
+ +
+
+
+
    +
  1. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position.
  2. +
+
+
import plotly.express as px
+
+# Create box plots for 'start' and 'end' columns using Plotly
+fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions')
+fig.update_layout(yaxis_title='Value', xaxis_title='Column')
+fig.show()
+
+ +
+
+
+
+
+
+

4 Transformer Model Results

+

[Pending]

+
+
+

5 Recurrent Neural Networks Results

+

[Pending]

+
+
+

6 Conclusion

+

[Pending]

+
+
+

7 References

+

[In Progress]

+

@misc{phuong2022formal,

+

title={Formal Algorithms for Transformers},

+

author={Mary Phuong and Marcus Hutter},

+

year={2022},

+

eprint={2207.09238},

+

archivePrefix={arXiv},

+

primaryClass={cs.LG}

+

}

+

@misc{keles2022computational,

+

title={On The Computational Complexity of Self-Attention},

+

author={Feyza Duman Keles and Pruthuvi Mahesakya Wijewardena and Chinmay Hegde},

+

year={2022},

+

eprint={2209.04881},

+

archivePrefix={arXiv},

+

primaryClass={cs.LG}

+

}

+

@misc{vaswani2017attention,

+

title={Attention Is All You Need},

+

author={Ashish Vaswani and Noam Shazeer and Niki Parmar and Jakob Uszkoreit and Llion Jones and Aidan N. Gomez and Lukasz Kaiser and Illia Polosukhin},

+

year={2017},

+

eprint={1706.03762},

+

archivePrefix={arXiv},

+

primaryClass={cs.CL}

+

}

+
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/NER - Deep Learning techniques. RNN and Transformer Model.qmd b/NER - Deep Learning techniques. RNN and Transformer Model.qmd new file mode 100644 index 000000000..0166a6213 --- /dev/null +++ b/NER - Deep Learning techniques. RNN and Transformer Model.qmd @@ -0,0 +1,307 @@ +--- +title: "NER - Deep Learning techniques. RNN and Transformer Model" +format: + html: + embed-resources: true +--- + +# 1. Introduction + +Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions. + +The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER. + +In this literature review, we will explore and compare the effectiveness of RNNs and the Transformer model for Named Entity Recognition (NER) tasks. + +## 1.1 Recurrent Neural Networks (RNN) + +A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN's memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems. + +## 1.2 Transformer Model + +The Transformer model is a groundbreaking neural network architecture introduced in the paper "Attention Is All You Need" (vaswani2017attention). ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model's strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures. + +## 1.3 Limitations + +***\[In progress - Pending RNN Method\]*** + +Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high +computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers' ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.(keles2022computational) + +# **2 Methods** + +***\[In progress - Pending RNN Method\]*** + +## 2.1 RNN + +## 2.2 Transformer Model + +The Transformers model has a unique feature called the 'attention mechanism.' It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next +word in 'I have a pet \_\_\_,' the attention mechanism considers the context (the word 'pet') to make a better guess, like 'dog' or 'cat.' It's like the model knows which words deserve extra attention! ! Let's look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula (phuong2022formal). + +1. Scaled Dot-Product Attention formula\ + \ + $\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$\ + + **Key Components:** + + - Q: Query matrix (requests for information). + + - K: Key matrix (used to calculate relevance). + + - V: Value matrix (actual content to retrieve). + + - d_k: Dimension of the query/key vectors. + + - Softmax (\...): Function to normalize attention scores. + + In this formula, the attention mechanism allows a model to "pay attention" to specific parts of input data. The attention scores are calculated using queries (Q) and keys (K). The scores are normalized using Softmax , producing attention weights. The output is a weighted sum of value vectors (V), where the weights represent the importance of each value for each query. This mechanism is popular in tasks like machine translation to focus on relevant words. + +2. The Single (Masked) Self- or Cross-Attention Head Formula + $\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}$ + +**Key Components:** + +- Q: Query matrix (requests for information). + +- K: Key matrix (used to calculate relevance). + +- V: Value matrix (actual content to retrieve). + +- d_k: Dimension of the query/key vectors. + +- Mask: Matrix to prevent attention to specific tokens (e.g., future tokens). + +- Softmax (\...): Function to normalize attention scores. + +In this formula, the attention uses queries (Q) and keys (K) to calculate attention scores. An optional mask (Mask) is added to scores to prevent attending to specific tokens (e.g., in language modeling, future tokens are masked). Scores are normalized using Softmax, producing attention weights. The output is a weighted sum of value vectors (V), representing the importance of each value for each query. Masking is useful for sequence-to-sequence tasks and autoregressive models. + +# **3 Data Analysis and Results** + +## 3.1 Dataset Description + +I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition. + +**Data Definition** + +| Column Name | Type | Description | +|------------------|------------------|------------------------------------| +| Text | string | Sentence including the labels | +| Starts | integer | Position on where the label starts | +| Ends | integer | Position on where the label ends | +| Labels | string | The label( Medical Condition, Medicine or Pathogen) | + +- Labels: + - Medical condition names (example: influenza, headache, malaria) + - Medicine names (example : aspirin, penicillin, ribavirin, methotrexate) + - Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli) + +## + +## 3.2 Data Preparation + +The following python code will load the required libraries + +```{python} +!pip install -q nbclient +!pip install -q requests +!pip install -q pandas +!pip install -q nbformat +!pip install -q plotly.express +``` + +Import the data from Github to local. + +```{python} + +import requests + +# Accessing the JSON file from GitHub +url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json' +# HTTP GET request to the raw URL +response = requests.get(url) +# I am checking if the request was successful (status code 200) +if response.status_code == 200: + # Parse the JSON data from the response + data = response.json() + print('Success, the Json data was stored into the data variable') +else: + print('Failed to fetch JSON data:', response.status_code) + +``` + +Parse json data into dictionary to manipulate data. + +```{python} + +training_data = [] +for example in data['examples']: + temp_dict = {} + temp_dict['text'] = example['content'] + temp_dict['entities'] = [] + for annotation in example['annotations']: + start = annotation['start'] + end = annotation['end'] + label = annotation['tag_name'].upper() + temp_dict['entities'].append((start, end, label)) + training_data.append(temp_dict) + +``` + +Convert data from Dictionary to Dataframe. I am only showing the Text and Labels for each sentence + +```{python} +import pandas as pd +# I am initialing empty lists to store the data for the DataFrame +texts = [] +starts = [] +ends = [] +labels = [] + +# Iterate through the training_data to extract individual entity annotations +for example in training_data: + text = example['text'] + for entity in example['entities']: + start, end, label = entity + # Append data to the lists + texts.append(text) + starts.append(start) + ends.append(end) + labels.append(label) + +# Create a DataFrame from the lists +df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels}) +df.head(5) +``` + +## 3.3 Data statistics + +1. Our analysis begins with examining the frequency of each label in the dataset. The dataset contains 134 instances of 'Medical Condition', 94 instances of 'Medicine', and 67 instances of 'Pathogen'. This data provides an overview of label distribution. + +```{python} + +import plotly.express as px + +# Count the occurrences of each label +label_counts = df['label'].value_counts() + +# Create a DataFrame with labels and their respective counts +df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values}) + +# Plot the frequency of each entity label using a bar plot in Plotly +fig = px.bar(df_counts, x='label', y='count', text='count', color='label', + color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels') + +# Display the counter label inside the bars +fig.update_traces(textposition='inside') + +# Update axis titles +fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +fig.show() + +``` + +2. The chart below displays the distribution of biomedical Entity labels in the dataset. 'Medical Condition' is the most prevalent at 45.4%, followed by 'Medicine' at 31.9%, and 'Pathogen' at 22.7%. The chart provides insights into the dataset composition and label prevalence.. + +```{python} + +import plotly.express as px + +# Get the counts of each unique label +label_counts = df['label'].value_counts() +# Plot a pie chart using Plotly +fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3) +fig.update_traces(textinfo='percent+label', textfont_size=12) +fig.show() + +``` + +3. The histogram below visualizes the start positions of entity labels in the text. It reveals that most entities occur within the first five hundred words. + +```{python} + +import plotly.express as px + +# Plot a histogram of entity start positions using Plotly +fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions') +fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency') +fig.show() +``` + +4. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position. + +```{python} + +import plotly.express as px + +# Create box plots for 'start' and 'end' columns using Plotly +fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions') +fig.update_layout(yaxis_title='Value', xaxis_title='Column') +fig.show() + +``` + +# **4 Transformer Model Results** + +***\[Pending\]*** + +# **5 Recurrent Neural Networks Results** + +***\[Pending\]*** + +# **6 Conclusion** + +***\[Pending\]*** + +# 7 References + +\[In Progress\] + +\@misc{phuong2022formal, + +title={Formal Algorithms for Transformers}, + +author={Mary Phuong and Marcus Hutter}, + +year={2022}, + +eprint={2207.09238}, + +archivePrefix={arXiv}, + +primaryClass={cs.LG} + +} + +\@misc{keles2022computational, + +title={On The Computational Complexity of Self-Attention}, + +author={Feyza Duman Keles and Pruthuvi Mahesakya Wijewardena and Chinmay Hegde}, + +year={2022}, + +eprint={2209.04881}, + +archivePrefix={arXiv}, + +primaryClass={cs.LG} + +} + +\@misc{vaswani2017attention, + +title={Attention Is All You Need}, + +author={Ashish Vaswani and Noam Shazeer and Niki Parmar and Jakob Uszkoreit and Llion Jones and Aidan N. Gomez and Lukasz Kaiser and Illia Polosukhin}, + +year={2017}, + +eprint={1706.03762}, + +archivePrefix={arXiv}, + +primaryClass={cs.CL} + +} From 8b59f47218ae8d66644c3bf64dd899fd401fac03 Mon Sep 17 00:00:00 2001 From: Jorge Sanchez Date: Mon, 17 Apr 2023 11:29:22 -0400 Subject: [PATCH 06/23] Merge to index.qmd --- ...techniques. RNN and Transformer Model.html | 22 +- ... techniques. RNN and Transformer Model.qmd | 13 +- index.html | 1657 ++++++++++++++-- index.qmd | 333 +++- index_files/figure-html/unnamed-chunk-2-1.png | Bin 182049 -> 0 bytes .../libs/bootstrap/bootstrap-icons.css | 1704 ----------------- .../libs/bootstrap/bootstrap-icons.woff | Bin 137124 -> 0 bytes index_files/libs/bootstrap/bootstrap.min.css | 10 - index_files/libs/bootstrap/bootstrap.min.js | 7 - index_files/libs/clipboard/clipboard.min.js | 7 - index_files/libs/quarto-html/anchor.min.js | 9 - index_files/libs/quarto-html/popper.min.js | 6 - .../quarto-syntax-highlighting.css | 167 -- index_files/libs/quarto-html/quarto.js | 664 ------- index_files/libs/quarto-html/tippy.css | 1 - index_files/libs/quarto-html/tippy.umd.min.js | 2 - 16 files changed, 1744 insertions(+), 2858 deletions(-) delete mode 100644 index_files/figure-html/unnamed-chunk-2-1.png delete mode 100644 index_files/libs/bootstrap/bootstrap-icons.css delete mode 100644 index_files/libs/bootstrap/bootstrap-icons.woff delete mode 100644 index_files/libs/bootstrap/bootstrap.min.css delete mode 100644 index_files/libs/bootstrap/bootstrap.min.js delete mode 100644 index_files/libs/clipboard/clipboard.min.js delete mode 100644 index_files/libs/quarto-html/anchor.min.js delete mode 100644 index_files/libs/quarto-html/popper.min.js delete mode 100644 index_files/libs/quarto-html/quarto-syntax-highlighting.css delete mode 100644 index_files/libs/quarto-html/quarto.js delete mode 100644 index_files/libs/quarto-html/tippy.css delete mode 100644 index_files/libs/quarto-html/tippy.umd.min.js diff --git a/NER - Deep Learning techniques. RNN and Transformer Model.html b/NER - Deep Learning techniques. RNN and Transformer Model.html index e053a9c4f..a03c8f760 100644 --- a/NER - Deep Learning techniques. RNN and Transformer Model.html +++ b/NER - Deep Learning techniques. RNN and Transformer Model.html @@ -3215,9 +3215,9 @@

3.1 Dataset Descriptio

Data Definition

---+++ @@ -3411,9 +3411,9 @@

3.3 Data statistics

fig.show()
-
+ + + + + + + + + + + + + + + - - - - - - - - - +(function(self, undefined) {!function(t){"use strict";function e(t){switch(typeof t){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";default:return null===t?"null":"object"}}function r(t){return Object.prototype.toString.call(t).replace(/^\[object *|\]$/g,"")}function n(t){return"function"==typeof t}function o(t){if(null===t||t===B)throw TypeError();return Object(t)}function i(t){return t>>0}function f(t){return t>>>0}function u(e){if(!("TYPED_ARRAY_POLYFILL_NO_ARRAY_ACCESSORS"in t)){if(e.length>N)throw RangeError("Array too large for polyfill");var r;for(r=0;r>r}function h(t,e){var r=32-e;return t<>>r}function y(t){return[255&t]}function s(t){return a(t[0],8)}function l(t){return[255&t]}function p(t){return h(t[0],8)}function c(t){return t=x(Number(t)),[t<0?0:t>255?255:255&t]}function b(t){return[255&t,t>>8&255]}function g(t){return a(t[1]<<8|t[0],16)}function E(t){return[255&t,t>>8&255]}function v(t){return h(t[1]<<8|t[0],16)}function _(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function O(t){return a(t[3]<<24|t[2]<<16|t[1]<<8|t[0],32)}function d(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]}function j(t){return h(t[3]<<24|t[2]<<16|t[1]<<8|t[0],32)}function P(t,e,r){function n(t){var e=m(t),r=t-e;return r<.5?e:r>.5?e+1:e%2?e+1:e}var o,i,f,u=(1<=F(2,1-u)){i=Y(m(I(t)/S),1023);var a=t/F(2,i);a<1&&(i-=1,a*=2),a>=2&&(i+=1,a/=2);var h=F(2,r);f=n(a*h)-h,i+=u,f/h>=1&&(i+=1,f=0),i>2*u&&(i=(1<>=1;return s.reverse(),f=s.join(""),u=(1<0?a*F(2,h-u)*(1+y/F(2,r)):0!==y?a*F(2,-(u-1))*(y/F(2,r)):a<0?-0:0}function w(t){return T(t,11,52)}function A(t){return P(t,11,52)}function L(t){return T(t,8,23)}function R(t){return P(t,8,23)}var B=void 0,N=1e5,S=Math.LN2,M=Math.abs,m=Math.floor,I=Math.log,U=Math.max,Y=Math.min,F=Math.pow,x=Math.round;!function(){var t=Object.defineProperty,e=!function(){try{return Object.defineProperty({},"x",{})}catch(t){return!1}}();t&&!e||(Object.defineProperty=function(e,r,n){if(t)try{return t(e,r,n)}catch(o){}if(e!==Object(e))throw TypeError("Object.defineProperty called on non-object");return Object.prototype.__defineGetter__&&"get"in n&&Object.prototype.__defineGetter__.call(e,r,n.get),Object.prototype.__defineSetter__&&"set"in n&&Object.prototype.__defineSetter__.call(e,r,n.set),"value"in n&&(e[r]=n.value),e})}(),function(){function a(t){if((t=i(t))<0)throw RangeError("ArrayBuffer size is not a small enough positive integer.");Object.defineProperty(this,"byteLength",{value:t}),Object.defineProperty(this,"_bytes",{value:Array(t)});for(var e=0;e=1&&"object"===e(arguments[0])&&arguments[0]instanceof h)return function(t){if(this.constructor!==t.constructor)throw TypeError();var e=t.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new a(e)}),Object.defineProperty(this,"byteLength",{value:e}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:t.length});for(var r=0;r=1&&"object"===e(arguments[0])&&!(arguments[0]instanceof h)&&!(arguments[0]instanceof a||"ArrayBuffer"===r(arguments[0])))return function(t){var e=t.length*this.BYTES_PER_ELEMENT;Object.defineProperty(this,"buffer",{value:new a(e)}),Object.defineProperty(this,"byteLength",{value:e}),Object.defineProperty(this,"byteOffset",{value:0}),Object.defineProperty(this,"length",{value:t.length});for(var r=0;r=1&&"object"===e(arguments[0])&&(arguments[0]instanceof a||"ArrayBuffer"===r(arguments[0])))return function(t,e,r){if((e=f(e))>t.byteLength)throw RangeError("byteOffset out of range");if(e%this.BYTES_PER_ELEMENT)throw RangeError("buffer length minus the byteOffset is not a multiple of the element size.");if(r===B){var n=t.byteLength-e;if(n%this.BYTES_PER_ELEMENT)throw RangeError("length of buffer minus byteOffset not a multiple of the element size");r=n/this.BYTES_PER_ELEMENT}else r=f(r),n=r*this.BYTES_PER_ELEMENT;if(e+n>t.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:t}),Object.defineProperty(this,"byteLength",{value:n}),Object.defineProperty(this,"byteOffset",{value:e}),Object.defineProperty(this,"length",{value:r})}.apply(this,arguments);throw TypeError()}function P(t,e,r){var n=function(){Object.defineProperty(this,"constructor",{value:n}),h.apply(this,arguments),u(this)};"__proto__"in n?n.__proto__=h:(n.from=h.from,n.of=h.of),n.BYTES_PER_ELEMENT=t;var o=function(){};return o.prototype=T,n.prototype=new o,Object.defineProperty(n.prototype,"BYTES_PER_ELEMENT",{value:t}),Object.defineProperty(n.prototype,"_pack",{value:e}),Object.defineProperty(n.prototype,"_unpack",{value:r}),n}t.ArrayBuffer=t.ArrayBuffer||a,Object.defineProperty(h,"from",{value:function(t){return new this(t)}}),Object.defineProperty(h,"of",{value:function(){return new this(arguments)}});var T={};h.prototype=T,Object.defineProperty(h.prototype,"_getter",{value:function(t){if(arguments.length<1)throw SyntaxError("Not enough arguments");if((t=f(t))>=this.length)return B;var e,r,n=[];for(e=0,r=this.byteOffset+t*this.BYTES_PER_ELEMENT;e=this.length)){var r,n,o=this._pack(e);for(r=0,n=this.byteOffset+t*this.BYTES_PER_ELEMENT;r0;)n._setter(h,n._getter(s)),s+=b,h+=b,g-=1;return n}}),Object.defineProperty(h.prototype,"every",{value:function(t){if(this===B||null===this)throw TypeError();var e=Object(this),r=f(e.length);if(!n(t))throw TypeError();for(var o=arguments[1],i=0;i1?arguments[1]:B,a=0;a1?arguments[1]:B,a=0;a0&&(n=Number(arguments[1]),n!==n?n=0:0!==n&&n!==1/0&&n!==-1/0&&(n=(n>0||-1)*m(M(n)))),n>=r)return-1;for(var o=n>=0?n:U(r-M(n),0);o1&&(n=Number(arguments[1]),n!==n?n=0:0!==n&&n!==1/0&&n!==-1/0&&(n=(n>0||-1)*m(M(n))));for(var o=n>=0?Y(n,r-1):r-M(n);o>=0;o--)if(e._getter(o)===t)return o;return-1}}),Object.defineProperty(h.prototype,"map",{value:function(t){if(this===B||null===this)throw TypeError();var e=Object(this),r=f(e.length);if(!n(t))throw TypeError();var o=[];o.length=r;for(var i=arguments[1],u=0;u=2?arguments[1]:e._getter(i++);i=2?arguments[1]:e._getter(i--);i>=0;)o=t.call(B,o,e._getter(i),i,e),i--;return o}}),Object.defineProperty(h.prototype,"reverse",{value:function(){if(this===B||null===this)throw TypeError();for(var t=Object(this),e=f(t.length),r=m(e/2),n=0,o=e-1;nthis.length)throw RangeError("Offset plus length of array is out of range");if(y=this.byteOffset+o*this.BYTES_PER_ELEMENT,s=r.length*this.BYTES_PER_ELEMENT,r.buffer===this.buffer){for(l=[],u=0,a=r.byteOffset;uthis.length)throw RangeError("Offset plus length of array is out of range");for(u=0;ur?1:0}if(this===B||null===this)throw TypeError();for(var r=Object(this),n=f(r.length),o=Array(n),i=0;ir?r:t}t=i(t),e=i(e),arguments.length<1&&(t=0),arguments.length<2&&(e=this.length),t<0&&(t=this.length+t),e<0&&(e=this.length+e),t=r(t,0,this.length),e=r(e,0,this.length);var n=e-t;return n<0&&(n=0),new this.constructor(this.buffer,this.byteOffset+t*this.BYTES_PER_ELEMENT,n)}});var N=P(1,y,s),S=P(1,l,p),I=P(1,c,p),F=P(2,b,g),x=P(2,E,v),k=P(4,_,O),C=P(4,d,j),z=P(4,R,L),D=P(8,A,w);t.Int8Array=t.Int8Array||N,t.Uint8Array=t.Uint8Array||S,t.Uint8ClampedArray=t.Uint8ClampedArray||I,t.Int16Array=t.Int16Array||F,t.Uint16Array=t.Uint16Array||x,t.Int32Array=t.Int32Array||k,t.Uint32Array=t.Uint32Array||C,t.Float32Array=t.Float32Array||z,t.Float64Array=t.Float64Array||D}(),function(){function e(t,e){return n(t.get)?t.get(e):t[e]}function o(t,e,n){if(!(t instanceof ArrayBuffer||"ArrayBuffer"===r(t)))throw TypeError();if((e=f(e))>t.byteLength)throw RangeError("byteOffset out of range");if(n=n===B?t.byteLength-e:f(n),e+n>t.byteLength)throw RangeError("byteOffset and length reference an area beyond the end of the buffer");Object.defineProperty(this,"buffer",{value:t}),Object.defineProperty(this,"byteLength",{value:n}),Object.defineProperty(this,"byteOffset",{value:e})}function i(t){return function r(n,o){if((n=f(n))+t.BYTES_PER_ELEMENT>this.byteLength)throw RangeError("Array index out of range");n+=this.byteOffset;for(var i=new Uint8Array(this.buffer,n,t.BYTES_PER_ELEMENT),u=[],h=0;hthis.byteLength)throw RangeError("Array index out of range");var u,h,y=new t([o]),s=new Uint8Array(y.buffer),l=[];for(u=0;uMath.pow(2,32)-1)throw new RangeError("Invalid array length");var n=[];return n.length=r,n}function Call(t,l){var n=arguments.length>2?arguments[2]:[];if(!1===IsCallable(t))throw new TypeError(Object.prototype.toString.call(t)+"is not a function.");return t.apply(l,n)}function CreateDataProperty(e,r,t){var a={value:t,writable:!0,enumerable:!0,configurable:!0};try{return Object.defineProperty(e,r,a),!0}catch(n){return!1}}function CreateDataPropertyOrThrow(t,r,o){var e=CreateDataProperty(t,r,o);if(!e)throw new TypeError("Cannot assign value `"+Object.prototype.toString.call(o)+"` to property `"+Object.prototype.toString.call(r)+"` on object `"+Object.prototype.toString.call(t)+"`");return e}function CreateMethodProperty(e,r,t){var a={value:t,writable:!0,enumerable:!1,configurable:!0};Object.defineProperty(e,r,a)}if (!("acosh"in Math +)) {CreateMethodProperty(Math,"acosh",function t(a){return isNaN(a)?NaN:a<1?NaN:1===a?0:a===Infinity?Infinity:Math.log(a+Math.sqrt(a*a-1))});}if (!("asinh"in Math +)) {CreateMethodProperty(Math,"asinh",function n(i){return isNaN(i)?NaN:0===i&&1/i===Infinity?0:0===i&&1/i==-Infinity?-0:i===Infinity?Infinity:i===-Infinity?-Infinity:Math.log(i+Math.sqrt(i*i+1))});}if (!("atanh"in Math +)) {CreateMethodProperty(Math,"atanh",function n(t){return isNaN(t)?NaN:t<-1?NaN:t>1?NaN:-1===t?-Infinity:1===t?Infinity:0===t&&1/t===Infinity?0:0===t&&1/t==-Infinity?-0:Math.log((1+t)/(1-t))/2});}if (!("cbrt"in Math +)) {CreateMethodProperty(Math,"cbrt",function n(t){if(isNaN(t))return NaN;if(0===t&&1/t===Infinity)return 0;if(0===t&&1/t==-Infinity)return-0;if(t===Infinity)return Infinity;if(t===-Infinity)return-Infinity;var i=Math.pow(Math.abs(t),1/3);return t<0?-i:i});}if (!("cosh"in Math +)) {CreateMethodProperty(Math,"cosh",function n(t){if(isNaN(t))return NaN;if(0===t&&1/t===Infinity)return 1;if(0===t&&1/t==-Infinity)return 1;if(t===Infinity)return Infinity;if(t===-Infinity)return Infinity;if((t=Math.abs(t))>709){var i=Math.exp(.5*t);return i/2*i}return((i=Math.exp(t))+1/i)/2});}if (!("expm1"in Math +)) {CreateMethodProperty(Math,"expm1",function n(i){return isNaN(i)?NaN:0===i&&1/i===Infinity?0:0===i&&1/i==-Infinity?-0:i===Infinity?Infinity:i===-Infinity?-1:i>-1e-6&&i<1e-6?i+i*i/2:Math.exp(i)-1});}if (!("fround"in Math +)) {CreateMethodProperty(Math,"fround",function(n){return isNaN(n)?NaN:1/n==+Infinity||1/n==-Infinity||n===+Infinity||n===-Infinity?n:new Float32Array([n])[0]});}if (!("hypot"in Math +)) {CreateMethodProperty(Math,"hypot",function t(n,r){if(0===arguments.length)return 0;for(var i=0,e=0,a=0;ae&&(i*=Math.pow(e/f,2),e=f),0===f&&0===e||(i+=Math.pow(f/e,2))}return e*Math.sqrt(i)});}if (!("log10"in Math +)) {CreateMethodProperty(Math,"log10",function t(e){return Math.log(e)/Math.LN10});}if (!("log1p"in Math +)) {CreateMethodProperty(Math,"log1p",function r(t){if(-1<(t=Number(t))&&t<1){for(var o=t,e=2;e<=300;e++)o+=Math.pow(-1,e-1)*Math.pow(t,e)/e;return o}return Math.log(1+t)});}if (!("log2"in Math +)) {CreateMethodProperty(Math,"log2",function t(e){return Math.log(e)/Math.LN2});}if (!("sign"in Math +)) {CreateMethodProperty(Math,"sign",function i(n){return n=Number(n),isNaN(n)?NaN:1/n==-Infinity?-0:1/n===Infinity?0:n<0?-1:n>0?1:void 0});}if (!("sinh"in Math +)) {CreateMethodProperty(Math,"sinh",function r(t){var a=t<0?-1:1,e=Math.abs(t);if(e<22){if(e=0&&"[object Function]"===n.call(t.callee)),e}var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,o=Object.prototype.propertyIsEnumerable,c=!o.call({toString:null},"toString"),l=o.call(function(){},"prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(t){var r=t.constructor;return r&&r.prototype===t},a={$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!a["$"+t]&&e.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{u(window[t])}catch(r){return!0}}catch(r){return!0}return!1}(),p=function(t){if("undefined"==typeof window||!f)return u(t);try{return u(t)}catch(r){return!1}};return function s(o){var u="[object Function]"===n.call(o),a=r(o),f="[object String]"===n.call(o),s=[];if(o===undefined||null===o)throw new TypeError("Cannot convert undefined or null to object");var y=l&&u;if(f&&o.length>0&&!e.call(o,0))for(var h=0;h0)for(var g=0;g>>0}if (!("clz32"in Math +)) {CreateMethodProperty(Math,"clz32",function t(r){var e=ToUint32(r);return e?32-e.toString(2).length:32});}if (!("imul"in Math +)) {CreateMethodProperty(Math,"imul",function t(r,e){var n=ToUint32(r),o=ToUint32(e),i=n>>>16&65535,a=65535&n,u=o>>>16&65535,h=65535&o;return a*h+(i*h+a*u<<16>>>0)|0});}function Type(e){switch(typeof e){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"symbol":return"symbol";default:return null===e?"null":"Symbol"in self&&(e instanceof self.Symbol||e.constructor===self.Symbol)?"symbol":"object"}}if (!("isFinite"in Number +)) {!function(){var e=self;CreateMethodProperty(Number,"isFinite",function i(n){return"number"===Type(n)&&e.isFinite(n)})}();}if (!("isNaN"in Number +)) {!function(){var e=self;CreateMethodProperty(Number,"isNaN",function r(n){return"number"===Type(n)&&!!e.isNaN(n)})}();}if (!("isExtensible"in Object +)) {!function(e){CreateMethodProperty(Object,"isExtensible",function t(n){return"object"===Type(n)&&(!e||e(n))})}(Object.isExtensible);}if (!("seal"in Object&&function(){try{return Object.seal("1"),!0}catch(t){return!1}}() +)) {!function(e){CreateMethodProperty(Object,"seal",function t(c){return"object"===Type(c)?c:e?e(c):c})}(Object.seal);}if (!("flags"in RegExp.prototype +)) {Object.defineProperty(RegExp.prototype,"flags",{configurable:!0,enumerable:!1,get:function(){var e=this;if("object"!==Type(e))throw new TypeError("Method called on incompatible type: must be an object.");var o="";return ToBoolean(Get(e,"global"))&&(o+="g"),ToBoolean(Get(e,"ignoreCase"))&&(o+="i"),ToBoolean(Get(e,"multiline"))&&(o+="m"),ToBoolean(Get(e,"unicode"))&&(o+="u"),ToBoolean(Get(e,"sticky"))&&(o+="y"),o}});}function CreateIterResultObject(e,r){if("boolean"!==Type(r))throw new Error;var t={};return CreateDataProperty(t,"value",e),CreateDataProperty(t,"done",r),t}function GetPrototypeFromConstructor(t,o){var r=Get(t,"prototype");return"object"!==Type(r)&&(r=o),r}function IsConstructor(t){return"object"===Type(t)&&("function"==typeof t&&!!t.prototype)}function IsRegExp(e){if("object"!==Type(e))return!1;var n="Symbol"in self&&"match"in self.Symbol?Get(e,self.Symbol.match):undefined;if(n!==undefined)return ToBoolean(n);try{var t=e.lastIndex;return e.lastIndex=0,RegExp.prototype.exec.call(e),!0}catch(l){}finally{e.lastIndex=t}return!1}function IteratorClose(r,t){if("object"!==Type(r["[[Iterator]]"]))throw new Error(Object.prototype.toString.call(r["[[Iterator]]"])+"is not an Object.");var e=r["[[Iterator]]"],o=GetMethod(e,"return");if(o===undefined)return t;try{var n=Call(o,e)}catch(c){var a=c}if(t)return t;if(a)throw a;if("object"!==Type(n))throw new TypeError("Iterator's return method returned a non-object.");return t}function IteratorComplete(t){if("object"!==Type(t))throw new Error(Object.prototype.toString.call(t)+"is not an Object.");return ToBoolean(Get(t,"done"))}function IteratorNext(t){if(arguments.length<2)var e=Call(t["[[NextMethod]]"],t["[[Iterator]]"]);else e=Call(t["[[NextMethod]]"],t["[[Iterator]]"],[arguments[1]]);if("object"!==Type(e))throw new TypeError("bad iterator");return e}function IteratorStep(t){var r=IteratorNext(t);return!0!==IteratorComplete(r)&&r}function IteratorValue(t){if("object"!==Type(t))throw new Error(Object.prototype.toString.call(t)+"is not an Object.");return Get(t,"value")}function OrdinaryToPrimitive(r,t){if("string"===t)var e=["toString","valueOf"];else e=["valueOf","toString"];for(var i=0;i0;){var f=String(M),g=String(h);if(HasProperty(n,f)){var l=n[f];n[g]=l}else delete n[g];M+=s,h+=s,d-=1}return n});}if (!("isInteger"in Number +)) {CreateMethodProperty(Number,"isInteger",function e(n){return"number"===Type(n)&&(!isNaN(n)&&n!==Infinity&&n!==-Infinity&&ToInteger(n)===n)});}if (!("isSafeInteger"in Number +)) {CreateMethodProperty(Number,"isSafeInteger",function e(r){if("number"!==Type(r))return!1;if(isNaN(r)||r===Infinity||r===-Infinity)return!1;var t=ToInteger(r);return t===r&&Math.abs(t)<=Math.pow(2,53)-1});}function ToLength(n){var t=ToInteger(n);return t<=0?0:Math.min(t,Math.pow(2,53)-1)}function ToPrimitive(e){var t=arguments.length>1?arguments[1]:undefined;if("object"===Type(e)){if(arguments.length<2)var i="default";else t===String?i="string":t===Number&&(i="number");var r="function"==typeof self.Symbol&&"symbol"==typeof self.Symbol.toPrimitive?GetMethod(e,self.Symbol.toPrimitive):undefined;if(r!==undefined){var n=Call(r,e,[i]);if("object"!==Type(n))return n;throw new TypeError("Cannot convert exotic object to primitive.")}return"default"===i&&(i="number"),OrdinaryToPrimitive(e,i)}return e}function ToString(t){switch(Type(t)){case"symbol":throw new TypeError("Cannot convert a Symbol value to a string");case"object":return ToString(ToPrimitive(t,String));default:return String(t)}}if (!("fill"in Array.prototype +)) {CreateMethodProperty(Array.prototype,"fill",function t(e){for(var r=arguments[1],n=arguments[2],o=ToObject(this),a=ToLength(Get(o,"length")),h=ToInteger(r),i=h<0?Math.max(a+h,0):Math.min(h,a),g=n===undefined?a:ToInteger(n),M=g<0?Math.max(a+g,0):Math.min(g,a);i1?arguments[1]:undefined,a=0;a1?arguments[1]:undefined,a=0;a1?arguments[1]:undefined,i=0;i=0)var a=n;else(a=o+n)<0&&(a=0);for(;a=n)return-1;if(i>=0)var o=1/i==-Infinity?0:i;else(o=n+i)<0&&(o=0);for(;o1?arguments[1]:undefined,n=RequireObjectCoercible(this),i=ToString(n);if(IsRegExp(t))throw new TypeError("First argument to String.prototype.endsWith must not be a regular expression");var o=ToString(t),s=i.length,g=r===undefined?s:ToInteger(r),h=Math.min(Math.max(g,0),s),u=o.length,a=h-u;return!(a<0)&&i.substr(a,u)===o});}if (!("includes"in String.prototype +)) {CreateMethodProperty(String.prototype,"includes",function e(t){"use strict";var r=arguments.length>1?arguments[1]:undefined,n=RequireObjectCoercible(this),i=ToString(n);if(IsRegExp(t))throw new TypeError("First argument to String.prototype.includes must not be a regular expression");var o=ToString(t),g=ToInteger(r),a=i.length,p=Math.min(Math.max(g,0),a);return-1!==String.prototype.indexOf.call(i,o,p)});}if (!("repeat"in String.prototype +)) {CreateMethodProperty(String.prototype,"repeat",function r(e){"use strict";var t=RequireObjectCoercible(this),n=ToString(t),o=ToInteger(e);if(o<0)throw new RangeError("Invalid count value");if(o===Infinity)throw new RangeError("Invalid count value");return 0===o?"":new Array(o+1).join(n)});}if (!("startsWith"in String.prototype +)) {CreateMethodProperty(String.prototype,"startsWith",function t(e){"use strict";var r=arguments.length>1?arguments[1]:undefined,n=RequireObjectCoercible(this),i=ToString(n);if(IsRegExp(e))throw new TypeError("First argument to String.prototype.startsWith must not be a regular expression");var o=ToString(e),s=ToInteger(r),a=i.length,g=Math.min(Math.max(s,0),a);return!(o.length+g>a)&&0===i.substr(g).indexOf(e)});}function ToPropertyKey(r){var i=ToPrimitive(r,String);return"symbol"===Type(i)?i:ToString(i)}if (!("getOwnPropertyDescriptor"in Object&&"function"==typeof Object.getOwnPropertyDescriptor&&function(){try{return"3"===Object.getOwnPropertyDescriptor("13.7",1).value}catch(t){return!1}}() +)) {!function(){var e=Object.getOwnPropertyDescriptor,t=function(){try{return 1===Object.defineProperty(document.createElement("div"),"one",{get:function(){return 1}}).one}catch(e){return!1}},r={}.toString,n="".split;CreateMethodProperty(Object,"getOwnPropertyDescriptor",function c(o,i){var a=ToObject(o);a=("string"===Type(a)||a instanceof String)&&"[object String]"==r.call(o)?n.call(o,""):Object(o);var u=ToPropertyKey(i);if(t)try{return e(a,u)}catch(l){}if(HasOwnProperty(a,u))return{enumerable:!0,configurable:!0,writable:!0,value:a[u]}})}();}if (!("assign"in Object +)) {CreateMethodProperty(Object,"assign",function e(t,r){var n=ToObject(t);if(1===arguments.length)return n;var o,c,a,l,i=Array.prototype.slice.call(arguments,1);for(o=0;o2?arguments[2]:r,o=arguments.length>1?arguments[1]:[];if(!IsConstructor(r))throw new TypeError("F must be a constructor.");if(!IsConstructor(t))throw new TypeError("newTarget must be a constructor.");if(t===r)return new(Function.prototype.bind.apply(r,[null].concat(o)));var n=OrdinaryCreateFromConstructor(t,Object.prototype);return Call(r,n,o)}if (!("of"in Array +)) {CreateMethodProperty(Array,"of",function r(){var r=arguments.length,t=arguments,e=this;if(IsConstructor(e))var a=Construct(e,[r]);else a=ArrayCreate(r);for(var o=0;o1?arguments[1]:undefined,n=ArraySpeciesCreate(t,0),i=0,l=0;i1?arguments[1]:undefined,n=ArraySpeciesCreate(t,a),i=0;i1?arguments[1]:GetMethod(t,Symbol.iterator),r=Call(e,t);if("object"!==Type(r))throw new TypeError("bad iterator");var o=GetV(r,"next"),a=Object.create(null);return a["[[Iterator]]"]=r,a["[[NextMethod]]"]=o,a["[[Done]]"]=!1,a}if (!("Symbol"in self&&"match"in self.Symbol +)) {Object.defineProperty(Symbol,"match",{value:Symbol("match")});}if (!("Symbol"in self&&"replace"in self.Symbol +)) {Object.defineProperty(Symbol,"replace",{value:Symbol("replace")});}if (!("Symbol"in self&&"search"in self.Symbol +)) {Object.defineProperty(Symbol,"search",{value:Symbol("search")});}if (!("Symbol"in self&&"species"in self.Symbol +)) {Object.defineProperty(Symbol,"species",{value:Symbol("species")});}if (!("Map"in self&&function(t){try{var n=new t.Map([[1,1],[2,2]]) +return 0===t.Map.length&&2===n.size&&"Symbol"in t&&"iterator"in t.Symbol&&"function"==typeof n[t.Symbol.iterator]}catch(e){return!1}}(self) +)) {!function(e){function t(e,t){if("object"!==Type(e))throw new TypeError("createMapIterator called on incompatible receiver "+Object.prototype.toString.call(e));if(!0!==e._es6Map)throw new TypeError("createMapIterator called on incompatible receiver "+Object.prototype.toString.call(e));var r=Object.create(u);return Object.defineProperty(r,"[[Map]]",{configurable:!0,enumerable:!1,writable:!0,value:e}),Object.defineProperty(r,"[[MapNextIndex]]",{configurable:!0,enumerable:!1,writable:!0,value:0}),Object.defineProperty(r,"[[MapIterationKind]]",{configurable:!0,enumerable:!1,writable:!0,value:t}),r}var r=function(){try{var e={};return Object.defineProperty(e,"t",{configurable:!0,enumerable:!1,get:function(){return!0},set:undefined}),!!e.t}catch(t){return!1}}(),o=0,a=Symbol("meta_"+(1e8*Math.random()+"").replace(".","")),n=function(e){if("object"==typeof e?null!==e:"function"==typeof e){if(!Object.isExtensible(e))return!1;if(!Object.prototype.hasOwnProperty.call(e,a)){var t=typeof e+"-"+ ++o;Object.defineProperty(e,a,{configurable:!1,enumerable:!1,writable:!1,value:t})}return e[a]}return""+e},i=function(e,t){var r=n(t);if(!1===r)return p(e,t);var o=e._table[r];return o!==undefined&&o},p=function(e,t){for(var r=0;r0?arguments[0]:undefined;if(null===t||t===undefined)return e;var o=e.set;if(!IsCallable(o))throw new TypeError("Map.prototype.set is not a function");try{for(var a=GetIterator(t);;){var n=IteratorStep(a);if(!1===n)return e;var i=IteratorValue(n);if("object"!==Type(i))try{throw new TypeError("Iterator value "+i+" is not an entry object")}catch(u){return IteratorClose(a,u)}try{var p=i[0],l=i[1];o.call(e,p,l)}catch(s){return IteratorClose(a,s)}}}catch(s){if(Array.isArray(t)||"[object Arguments]"===Object.prototype.toString.call(t)||t.callee){var c,y=t.length;for(c=0;c0?arguments[0]:undefined;if(null===t||t===undefined)return e;var o=e.add;if(!IsCallable(o))throw new TypeError("Set.prototype.add is not a function");try{for(var n=GetIterator(t);;){var a=IteratorStep(n);if(!1===a)return e;var i=IteratorValue(a);try{o.call(e,i)}catch(y){return IteratorClose(n,y)}}}catch(y){if(!Array.isArray(t)&&"[object Arguments]"!==Object.prototype.toString.call(t)&&!t.callee)throw y;var l,p=t.length;for(l=0;l1?arguments[1]:undefined;if(a===undefined)var n=!1;else{if(!1===IsCallable(a))throw new TypeError(Object.prototype.toString.call(a)+" is not a function.");var i=arguments.length>2?arguments[2]:undefined;if(i!==undefined)var l=i;else l=undefined;n=!0}var u=GetMethod(t,Symbol.iterator);if(u!==undefined){if(IsConstructor(o))var f=Construct(o);else f=ArrayCreate(0);for(var c=GetIterator(t,u),s=0;;){if(s>=Math.pow(2,53)-1){var h=new TypeError("Iteration count can not be greater than or equal 9007199254740991.");return IteratorClose(c,h)}var y=ToString(s),C=IteratorStep(c);if(!1===C)return f.length=s,f;var g=IteratorValue(C);if(n)try{var p=Call(a,l,[g,s])}catch(b){return IteratorClose(c,b)}else p=g;try{CreateDataPropertyOrThrow(f,y,p)}catch(b){return IteratorClose(c,b)}s+=1}}if(r(t))var v=e.call(t,/[\uD800-\uDBFF][\uDC00-\uDFFF]?|[^\uD800-\uDFFF]|./g)||[];else v=ToObject(t);var d=ToLength(Get(v,"length"));for(f=IsConstructor(o)?Construct(o,[d]):ArrayCreate(d),s=0;sn&&(r.length=n)}var r=L(n),o=0;return function(n,t){r[o++]=n,r[o++]=t,2===o&&tn.nextTick(e)}}function s(n,t){var o,i,u,f,s=0;if(!n)throw a(N);var l=n[tn[q][z]];if(e(l))i=l.call(n);else{if(!e(n.next)){if(r(n,L)){for(o=n.length;s0?arguments[0]:undefined;if(null===t||t===undefined)return e;var r=Get(e,"set");if(!IsCallable(r))throw new TypeError("WeakMap.prototype.set is not a function");try{for(var o=GetIterator(t);;){var p=IteratorStep(o);if(!1===p)return e;var n=IteratorValue(p);if("object"!==Type(n))try{throw new TypeError("Iterator value "+n+" is not an entry object")}catch(s){return IteratorClose(o,s)}try{var i=Get(n,"0"),l=Get(n,"1");Call(r,e,[i,l])}catch(u){return IteratorClose(o,u)}}}catch(u){if(Array.isArray(t)||"[object Arguments]"===Object.prototype.toString.call(t)||t.callee){var y,c=t.length;for(y=0;y0?arguments[0]:undefined;if(null===t||t===undefined)return e;var r=Get(e,"add");if(!IsCallable(r))throw new TypeError("WeakSet.prototype.add is not a function");try{for(var o=GetIterator(t);;){var n=IteratorStep(o);if(!1===n)return e;var l=IteratorValue(n);try{Call(r,e,[l])}catch(c){return IteratorClose(o,c)}}}catch(c){if(IsArray(t)||"[object Arguments]"===Object.prototype.toString.call(t)||t.callee){var p,i=t.length;for(p=0;p>>0||(/^[-+]?0[xX]/.test(n)?16:10))};try{CreateMethodProperty(r,"parseInt",e)}catch(n){r.parseInt=e}CreateMethodProperty(Number,"parseInt",r.parseInt)}(parseInt,this);}function UTF16Decode(e,n){return 1024*(e-55296)+(n-56320)+65536}if (!("codePointAt"in String.prototype +)) {CreateMethodProperty(String.prototype,"codePointAt",function e(t){var r=RequireObjectCoercible(this),o=ToString(r),n=ToInteger(t),i=o.length;if(n<0||n>=i)return undefined;var c=String.prototype.charCodeAt.call(o,n);if(c<55296||c>56319||n+1===i)return c;var a=String.prototype.charCodeAt.call(o,n+1);return a<56320||a>57343?c:UTF16Decode(c,a)});}function UTF16Encoding(n){return n<=65535?n:[Math.floor((n-65536)/1024)+55296,(n-65536)%1024+56320]}if (!("fromCodePoint"in String&&1===String.fromCodePoint.length +)) {CreateMethodProperty(String,"fromCodePoint",function r(o){for(var t=[],e=arguments,n=arguments.length,a=[],i=0;i1114111)throw new RangeError("Invalid code point "+Object.prototype.toString.call(p));var c=UTF16Encoding(p);IsArray(c)?a=a.concat(c):a.push(c),i+=1,t.push(String.fromCharCode.apply(null,a))}return 0===n?"":t.join("")});}var Iterator=function(){var e=function(){return this.length=0,this},t=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},_=function(e,n){if(!(this instanceof _))return new _(e,n);Object.defineProperties(this,{__list__:{writable:!0,value:e},__context__:{writable:!0,value:n},__nextIndex__:{writable:!0,value:0}}),n&&(t(n.on),n.on("_add",this._onAdd.bind(this)),n.on("_delete",this._onDelete.bind(this)),n.on("_clear",this._onClear.bind(this)))};return Object.defineProperties(_.prototype,Object.assign({constructor:{value:_,configurable:!0,enumerable:!1,writable:!0},_next:{value:function(){var e;if(this.__list__)return this.__redo__&&(e=this.__redo__.shift())!==undefined?e:this.__nextIndex__=this.__nextIndex__)){if(++this.__nextIndex__,!this.__redo__)return void Object.defineProperty(this,"__redo__",{value:[e],configurable:!0,enumerable:!1,writable:!1});this.__redo__.forEach(function(t,_){t>=e&&(this.__redo__[_]=++t)},this),this.__redo__.push(e)}},configurable:!0,enumerable:!1,writable:!0},_onDelete:{value:function(e){var t;e>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(t=this.__redo__.indexOf(e),-1!==t&&this.__redo__.splice(t,1),this.__redo__.forEach(function(t,_){t>e&&(this.__redo__[_]=--t)},this)))},configurable:!0,enumerable:!1,writable:!0},_onClear:{value:function(){this.__redo__&&e.call(this.__redo__),this.__nextIndex__=0},configurable:!0,enumerable:!1,writable:!0}})),Object.defineProperty(_.prototype,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!1,writable:!0}),Object.defineProperty(_.prototype,Symbol.toStringTag,{value:"Iterator",configurable:!1,enumerable:!1,writable:!0}),_}();var ArrayIterator=function(){var e=function(t,r){if(!(this instanceof e))return new e(t,r);Iterator.call(this,t),r=r?String.prototype.includes.call(r,"key+value")?"key+value":String.prototype.includes.call(r,"key")?"key":"value":"value",Object.defineProperty(this,"__kind__",{value:r,configurable:!1,enumerable:!1,writable:!1})};return Object.setPrototypeOf&&Object.setPrototypeOf(e,Iterator.prototype),e.prototype=Object.create(Iterator.prototype,{constructor:{value:e,configurable:!0,enumerable:!1,writable:!0},_resolve:{value:function(e){return"value"===this.__kind__?this.__list__[e]:"key+value"===this.__kind__?[e,this.__list__[e]]:e},configurable:!0,enumerable:!1,writable:!0},toString:{value:function(){return"[object Array Iterator]"},configurable:!0,enumerable:!1,writable:!0}}),e}();if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype.entries +)) {CreateMethodProperty(Array.prototype,"entries",function r(){var r=ToObject(this);return new ArrayIterator(r,"key+value")});}if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype.keys +)) {CreateMethodProperty(Array.prototype,"keys",function r(){var r=ToObject(this);return new ArrayIterator(r,"key")});}if (!("values"in Array.prototype +)) {"Symbol"in self&&"iterator"in Symbol&&"function"==typeof Array.prototype[Symbol.iterator]?CreateMethodProperty(Array.prototype,"values",Array.prototype[Symbol.iterator]):CreateMethodProperty(Array.prototype,"values",function r(){var r=ToObject(this);return new ArrayIterator(r,"value")});}if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype[self.Symbol.iterator] +)) {CreateMethodProperty(Array.prototype,Symbol.iterator,Array.prototype.values);}var StringIterator=function(){var t=function(e){if(!(this instanceof t))return new t(e);e=String(e),Iterator.call(this,e),Object.defineProperty(this,"__length__",{value:e.length,configurable:!1,enumerable:!1,writable:!1})};return Object.setPrototypeOf&&Object.setPrototypeOf(t,Iterator),t.prototype=Object.create(Iterator.prototype,{constructor:{value:t,configurable:!0,enumerable:!1,writable:!0},_next:{value:function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r)},configurable:!0,enumerable:!1,writable:!0},toString:{value:function(){return"[object String Iterator]"},configurable:!0,enumerable:!1,writable:!0}}),t}();if (!("Symbol"in self&&"iterator"in self.Symbol&&!!String.prototype[self.Symbol.iterator] +)) {CreateMethodProperty(String.prototype,Symbol.iterator,function(){var r=RequireObjectCoercible(this),t=ToString(r);return new StringIterator(t)});}})('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {}); + + - @@ -125,169 +901,492 @@
-

NER Using Deep Learning Techniques

+

NER - Deep Learning techniques. RNN and Transformer Model

-
-
Author
-
-

Student name

-
-
-
-
Published
-
-

October 25, 2022

-
-
+
-
-

Introduction

-

Kernel regression is a non-parametric estimator that estimates the conditional expectation of two variables which is random. The goal of a kernel regression is to discover the non-linear relationship between two random variables. To discover the non-linear relationship, kernel estimator or kernel smoothing is the main method to estimate the curve for non-parametric statistics. In kernel estimator, weight function is known as kernel function (Efromovich 2008). Cite this paper (Bro and Smilde 2014).

+
+

1. Introduction

+

Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions.

+

The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER.

+

In this literature review, we will explore and compare the effectiveness of RNNs and the Transformer model for Named Entity Recognition (NER) tasks.

+
+

1.1 Recurrent Neural Networks (RNN)

+

A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN’s memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems.

-
-

Methods

-

The common non-parametric regression model is \(Y_i = m(X_i) + \varepsilon_i\), where \(Y_i\) can be defined as the sum of the regression function value \(m(x)\) for \(X_i\). Here \(m(x)\) is unknown and \(\varepsilon_i\) some errors. With the help of this definition, we can create the estimation for local averaging i.e. \(m(x)\) can be estimated with the product of \(Y_i\) average and \(X_i\) is near to \(x\). In other words, this means that we are discovering the line through the data points with the help of surrounding data points. The estimation formula is printed below (R Core Team 2019):

-

\[ -M_n(x) = \sum_{i=1}^{n} W_n (X_i) Y_i \tag{1} -\]

-

\(W_n(x)\) is the sum of weights that belongs to all real numbers. Weights are positive numbers and small if \(X_i\) is far from \(x\).

+
+

1.2 Transformer Model

+

The Transformer model is a groundbreaking neural network architecture introduced in the paper “Attention Is All You Need” (vaswani2017attention). ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model’s strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures.

-
-

Analysis and Results

-
-

Data and Vizualisation

-

A study was conducted to determine how…

-
-
-Code -
# loading packages 
-library(tidyverse)
-library(knitr)
-library(ggthemes)
-library(ggrepel)
-library(dslabs)
-
-
-
-
-Code -
# Load Data
-kable(head(murders))
-
-
-
+
+

1.3 Limitations

+

[In progress - Pending RNN Method]

+

Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers’ ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.(keles2022computational)

+
+ +
+

2 Methods

+

[In progress - Pending RNN Method]

+
+

2.1 RNN

+
+
+

2.2 Transformer Model

+

The Transformers model has a unique feature called the ‘attention mechanism.’ It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next word in ‘I have a pet ___,’ the attention mechanism considers the context (the word ‘pet’) to make a better guess, like ‘dog’ or ‘cat.’ It’s like the model knows which words deserve extra attention! ! Let’s look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula (phuong2022formal).

+
    +
  1. Scaled Dot-Product Attention formula
    +
    +\(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V\)
    +

    +

    Key Components:

    +
      +
    • Q: Query matrix (requests for information).

    • +
    • K: Key matrix (used to calculate relevance).

    • +
    • V: Value matrix (actual content to retrieve).

    • +
    • d_k: Dimension of the query/key vectors.

    • +
    • Softmax (...): Function to normalize attention scores.

    • +
    +

    In this formula, the attention mechanism allows a model to “pay attention” to specific parts of input data. The attention scores are calculated using queries (Q) and keys (K). The scores are normalized using Softmax , producing attention weights. The output is a weighted sum of value vectors (V), where the weights represent the importance of each value for each query. This mechanism is popular in tasks like machine translation to focus on relevant words.

  2. +
  3. The Single (Masked) Self- or Cross-Attention Head Formula \(\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}\)

  4. +
+

Key Components:

+
    +
  • Q: Query matrix (requests for information).

  • +
  • K: Key matrix (used to calculate relevance).

  • +
  • V: Value matrix (actual content to retrieve).

  • +
  • d_k: Dimension of the query/key vectors.

  • +
  • Mask: Matrix to prevent attention to specific tokens (e.g., future tokens).

  • +
  • Softmax (...): Function to normalize attention scores.

  • +
+

In this formula, the attention uses queries (Q) and keys (K) to calculate attention scores. An optional mask (Mask) is added to scores to prevent attending to specific tokens (e.g., in language modeling, future tokens are masked). Scores are normalized using Softmax, producing attention weights. The output is a weighted sum of value vectors (V), representing the importance of each value for each query. Masking is useful for sequence-to-sequence tasks and autoregressive models.

+
+
+
+

3 Data Analysis and Results

+
+

3.1 Dataset Description

+

I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition.

+

Data Definition

+
+++++ - - - - - + + + - - - - - + + + - - - - - + + + + + + + + + + + + + + + +
stateabbregionpopulationtotalColumn NameTypeDescription
AlabamaALSouth4779736135TextstringSentence including the labels
AlaskaAKWest71023119StartsintegerPosition on where the label starts
EndsintegerPosition on where the label ends
LabelsstringThe label( Medical Condition, Medicine or Pathogen)
+
    +
  • Labels: +
      +
    • Medical condition names (example: influenza, headache, malaria)
    • +
    • Medicine names (example : aspirin, penicillin, ribavirin, methotrexate)
    • +
    • Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli)
    • +
  • +
+ +
+

+
+
+

3.2 Data Preparation

+

The following python code will load the required libraries

+
+
!pip install -q nbclient
+!pip install -q requests
+!pip install -q pandas
+!pip install -q nbformat
+!pip install -q plotly.express
+
+

Import the data from Github to local.

+
+
import requests
+
+# Accessing the JSON file from GitHub
+url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
+# HTTP GET request to the raw URL
+response = requests.get(url)
+# I am checking if the request was successful (status code 200)
+if response.status_code == 200:
+    # Parse the JSON data from the response
+    data = response.json()
+    print('Success, the Json data was stored into the data variable')
+else:
+    print('Failed to fetch JSON data:', response.status_code)
+
+
Success, the Json data was stored into the data variable
+
+
+

Parse json data into dictionary to manipulate data.

+
+
training_data = []
+for example in data['examples']:
+  temp_dict = {}
+  temp_dict['text'] = example['content']
+  temp_dict['entities'] = []
+  for annotation in example['annotations']:
+    start = annotation['start']
+    end = annotation['end']
+    label = annotation['tag_name'].upper()
+    temp_dict['entities'].append((start, end, label))
+  training_data.append(temp_dict)
+
+

Convert data from Dictionary to Dataframe. I am only showing the Text and Labels for each sentence

+
+
import pandas as pd
+# I am initialing empty lists to store the data for the DataFrame
+texts = []
+starts = []
+ends = []
+labels = []
+
+# Iterate through the training_data to extract individual entity annotations
+for example in training_data:
+    text = example['text']
+    for entity in example['entities']:
+        start, end, label = entity
+        # Append data to the lists
+        texts.append(text)
+        starts.append(start)
+        ends.append(end)
+        labels.append(label)
+
+# Create a DataFrame from the lists
+df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
+df.head(5)
+
+
+ + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + + + + + + + +
textstartendlabel
ArizonaAZWest63920172320While bismuth compounds (Pepto-Bismol) decreas...360371MEDICINE
ArkansasARSouth2915918931While bismuth compounds (Pepto-Bismol) decreas...383408MEDICINE
CaliforniaCAWest3725395612572While bismuth compounds (Pepto-Bismol) decreas...104112MEDICALCONDITION
ColoradoCOWest5029196653While bismuth compounds (Pepto-Bismol) decreas...679689MEDICINE
4While bismuth compounds (Pepto-Bismol) decreas...623MEDICINE
+
-
-Code -
ggplot1 = murders %>% ggplot(mapping = aes(x=population/10^6, y=total)) 
-
-  ggplot1 + geom_point(aes(col=region), size = 4) +
-  geom_text_repel(aes(label=abb)) +
-  scale_x_log10() +
-  scale_y_log10() +
-  geom_smooth(formula = "y~x", method=lm,se = F)+
-  xlab("Populations in millions (log10 scale)") + 
-  ylab("Total number of murders (log10 scale)") +
-  ggtitle("US Gun Murders in 2010") +
-  scale_color_discrete(name = "Region")+
-      theme_wsj()
-
-
-

-
-

Statistical Modeling

-
-
-

Conlusion

-
- -
+
+

3.3 Data statistics

+
    +
  1. Our analysis begins with examining the frequency of each label in the dataset. The dataset contains 134 instances of ‘Medical Condition’, 94 instances of ‘Medicine’, and 67 instances of ‘Pathogen’. This data provides an overview of label distribution.
  2. +
+
+
import plotly.express as px
+
+# Count the occurrences of each label
+label_counts = df['label'].value_counts()
+
+# Create a DataFrame with labels and their respective counts
+df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values})
+
+# Plot the frequency of each entity label using a bar plot in Plotly
+fig = px.bar(df_counts, x='label', y='count', text='count', color='label',
+             color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels')
+
+# Display the counter label inside the bars
+fig.update_traces(textposition='inside')
+
+# Update axis titles
+fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency')
+
+fig.show()
+
+
-
-Efromovich, S. 2008. Nonparametric Curve Estimation: Methods, Theory, and Applications. Springer Series in Statistics. Springer New York. https://books.google.com/books?id=mdoLBwAAQBAJ.
-
-R Core Team. 2019. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org. +
    +
  1. The chart below displays the distribution of biomedical Entity labels in the dataset. ‘Medical Condition’ is the most prevalent at 45.4%, followed by ‘Medicine’ at 31.9%, and ‘Pathogen’ at 22.7%. The chart provides insights into the dataset composition and label prevalence..
  2. +
+
+
import plotly.express as px
+
+# Get the counts of each unique label
+label_counts = df['label'].value_counts()
+# Plot a pie chart using Plotly
+fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3)
+fig.update_traces(textinfo='percent+label', textfont_size=12)
+fig.show()
+
+ +
-
+ +
    +
  1. The histogram below visualizes the start positions of entity labels in the text. It reveals that most entities occur within the first five hundred words.
  2. +
+
+
import plotly.express as px
+
+# Plot a histogram of entity start positions using Plotly
+fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions')
+fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency')
+fig.show()
+
+ +
+
+
+
    +
  1. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position.
  2. +
+
+
import plotly.express as px
+
+# Create box plots for 'start' and 'end' columns using Plotly
+fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions')
+fig.update_layout(yaxis_title='Value', xaxis_title='Column')
+fig.show()
+
+ +
+
+
+
+ +
+

4 Transformer Model Results

+

[Pending]

+
+
+

5 Recurrent Neural Networks Results

+

[Pending]

+
+
+

6 Conclusion

+

[Pending]

+
+
+

7 References

+

[In Progress]

+

@misc{phuong2022formal,

+

title={Formal Algorithms for Transformers},

+

author={Mary Phuong and Marcus Hutter},

+

year={2022},

+

eprint={2207.09238},

+

archivePrefix={arXiv},

+

primaryClass={cs.LG}

+

}

+

@misc{keles2022computational,

+

title={On The Computational Complexity of Self-Attention},

+

author={Feyza Duman Keles and Pruthuvi Mahesakya Wijewardena and Chinmay Hegde},

+

year={2022},

+

eprint={2209.04881},

+

archivePrefix={arXiv},

+

primaryClass={cs.LG}

+

}

+

@misc{vaswani2017attention,

+

title={Attention Is All You Need},

+

author={Ashish Vaswani and Noam Shazeer and Niki Parmar and Jakob Uszkoreit and Llion Jones and Aidan N. Gomez and Lukasz Kaiser and Illia Polosukhin},

+

year={2017},

+

eprint={1706.03762},

+

archivePrefix={arXiv},

+

primaryClass={cs.CL}

+

}

+
+ + @@ -369,4 +1604,4 @@

Conlusion

- + \ No newline at end of file diff --git a/index.qmd b/index.qmd index 080275f87..d3fc4f0ba 100644 --- a/index.qmd +++ b/index.qmd @@ -1,73 +1,304 @@ --- -title: "Report Sample" -author: "Student name" -date: '`r Sys.Date()`' +title: "NER - Deep Learning techniques. RNN and Transformer Model" format: html: - code-fold: true -course: STA 6257 - Advance Statistical Modeling -bibliography: references.bib # file contains bibtex for references -#always_allow_html: true # this allows to get PDF with HTML features + embed-resources: true --- -## Introduction -Kernel regression is a non-parametric estimator that estimates the conditional expectation of two variables which is random. The goal of a kernel regression is to discover the non-linear relationship between two random variables. To discover the non-linear relationship, kernel estimator or kernel smoothing is the main method to estimate the curve for non-parametric -statistics. In kernel estimator, weight function is known as kernel function [@efr2008]. Cite this paper [@bro2014principal]. +# 1. Introduction +Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions. -## Methods +The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER. +In this literature review, we will explore and compare the effectiveness of RNNs and the Transformer model for Named Entity Recognition (NER) tasks. -The common non-parametric regression model is $Y_i = m(X_i) + \varepsilon_i$, where -$Y_i$ can be defined as the sum of the regression function value $m(x)$ for $X_i$. -Here $m(x)$ is unknown and $\varepsilon_i$ some errors. With the help of this definition, we can create the estimation for -local averaging i.e. $m(x)$ can be estimated with the product of $Y_i$ average -and $X_i$ is near to $x$. In other words, this means that we are discovering -the line through the data points with the help of surrounding data points. -The estimation formula is printed below [@R-base]: +## 1.1 Recurrent Neural Networks (RNN) -$$ -M_n(x) = \sum_{i=1}^{n} W_n (X_i) Y_i \tag{1} -$$ -$W_n(x)$ is the sum of weights that belongs to all real numbers. Weights -are positive numbers and small if $X_i$ is far from $x$. +A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN's memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems. -## Analysis and Results -### Data and Vizualisation -A study was conducted to determine how... +## 1.2 Transformer Model + +The Transformer model is a groundbreaking neural network architecture introduced in the paper "Attention Is All You Need" (vaswani2017attention). ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model's strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures. + +## 1.3 Limitations + +***\[In progress - Pending RNN Method\]*** + +Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers' ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.(keles2022computational) + +# **2 Methods** + +***\[In progress - Pending RNN Method\]*** + +## 2.1 RNN + +## 2.2 Transformer Model + +The Transformers model has a unique feature called the 'attention mechanism.' It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next word in 'I have a pet \_\_\_,' the attention mechanism considers the context (the word 'pet') to make a better guess, like 'dog' or 'cat.' It's like the model knows which words deserve extra attention! ! Let's look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula (phuong2022formal). + +1. Scaled Dot-Product Attention formula\ + \ + $\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$\ + + **Key Components:** + + - Q: Query matrix (requests for information). + + - K: Key matrix (used to calculate relevance). + + - V: Value matrix (actual content to retrieve). + + - d_k: Dimension of the query/key vectors. + + - Softmax (\...): Function to normalize attention scores. + + In this formula, the attention mechanism allows a model to "pay attention" to specific parts of input data. The attention scores are calculated using queries (Q) and keys (K). The scores are normalized using Softmax , producing attention weights. The output is a weighted sum of value vectors (V), where the weights represent the importance of each value for each query. This mechanism is popular in tasks like machine translation to focus on relevant words. + +2. The Single (Masked) Self- or Cross-Attention Head Formula $\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}$ + +**Key Components:** + +- Q: Query matrix (requests for information). + +- K: Key matrix (used to calculate relevance). + +- V: Value matrix (actual content to retrieve). + +- d_k: Dimension of the query/key vectors. + +- Mask: Matrix to prevent attention to specific tokens (e.g., future tokens). + +- Softmax (\...): Function to normalize attention scores. + +In this formula, the attention uses queries (Q) and keys (K) to calculate attention scores. An optional mask (Mask) is added to scores to prevent attending to specific tokens (e.g., in language modeling, future tokens are masked). Scores are normalized using Softmax, producing attention weights. The output is a weighted sum of value vectors (V), representing the importance of each value for each query. Masking is useful for sequence-to-sequence tasks and autoregressive models. + +# **3 Data Analysis and Results** + +## 3.1 Dataset Description + +I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition. + +**Data Definition** + +| Column Name | Type | Description | +|-------------|---------|-----------------------------------------------------| +| Text | string | Sentence including the labels | +| Starts | integer | Position on where the label starts | +| Ends | integer | Position on where the label ends | +| Labels | string | The label( Medical Condition, Medicine or Pathogen) | + +- Labels: + - Medical condition names (example: influenza, headache, malaria) + - Medicine names (example : aspirin, penicillin, ribavirin, methotrexate) + - Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli) + +## + +## 3.2 Data Preparation + +The following python code will load the required libraries + +```{python} +!pip install -q nbclient +!pip install -q requests +!pip install -q pandas +!pip install -q nbformat +!pip install -q plotly.express +``` + +Import the data from Github to local. + +```{python} + +import requests + +# Accessing the JSON file from GitHub +url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json' +# HTTP GET request to the raw URL +response = requests.get(url) +# I am checking if the request was successful (status code 200) +if response.status_code == 200: + # Parse the JSON data from the response + data = response.json() + print('Success, the Json data was stored into the data variable') +else: + print('Failed to fetch JSON data:', response.status_code) -```{r, warning=FALSE, echo=T, message=FALSE} -# loading packages -library(tidyverse) -library(knitr) -library(ggthemes) -library(ggrepel) -library(dslabs) ``` +Parse json data into dictionary to manipulate data. -```{r, warning=FALSE, echo=TRUE} -# Load Data -kable(head(murders)) +```{python} -ggplot1 = murders %>% ggplot(mapping = aes(x=population/10^6, y=total)) +training_data = [] +for example in data['examples']: + temp_dict = {} + temp_dict['text'] = example['content'] + temp_dict['entities'] = [] + for annotation in example['annotations']: + start = annotation['start'] + end = annotation['end'] + label = annotation['tag_name'].upper() + temp_dict['entities'].append((start, end, label)) + training_data.append(temp_dict) + +``` - ggplot1 + geom_point(aes(col=region), size = 4) + - geom_text_repel(aes(label=abb)) + - scale_x_log10() + - scale_y_log10() + - geom_smooth(formula = "y~x", method=lm,se = F)+ - xlab("Populations in millions (log10 scale)") + - ylab("Total number of murders (log10 scale)") + - ggtitle("US Gun Murders in 2010") + - scale_color_discrete(name = "Region")+ - theme_wsj() - +Convert data from Dictionary to Dataframe. I am only showing the Text and Labels for each sentence +```{python} +import pandas as pd +# I am initialing empty lists to store the data for the DataFrame +texts = [] +starts = [] +ends = [] +labels = [] + +# Iterate through the training_data to extract individual entity annotations +for example in training_data: + text = example['text'] + for entity in example['entities']: + start, end, label = entity + # Append data to the lists + texts.append(text) + starts.append(start) + ends.append(end) + labels.append(label) + +# Create a DataFrame from the lists +df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels}) +df.head(5) ``` -### Statistical Modeling +## 3.3 Data statistics + +1. Our analysis begins with examining the frequency of each label in the dataset. The dataset contains 134 instances of 'Medical Condition', 94 instances of 'Medicine', and 67 instances of 'Pathogen'. This data provides an overview of label distribution. + +```{python} + +import plotly.express as px + +# Count the occurrences of each label +label_counts = df['label'].value_counts() + +# Create a DataFrame with labels and their respective counts +df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values}) + +# Plot the frequency of each entity label using a bar plot in Plotly +fig = px.bar(df_counts, x='label', y='count', text='count', color='label', + color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels') + +# Display the counter label inside the bars +fig.update_traces(textposition='inside') + +# Update axis titles +fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +fig.show() + +``` + +2. The chart below displays the distribution of biomedical Entity labels in the dataset. 'Medical Condition' is the most prevalent at 45.4%, followed by 'Medicine' at 31.9%, and 'Pathogen' at 22.7%. The chart provides insights into the dataset composition and label prevalence.. + +```{python} + +import plotly.express as px + +# Get the counts of each unique label +label_counts = df['label'].value_counts() +# Plot a pie chart using Plotly +fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3) +fig.update_traces(textinfo='percent+label', textfont_size=12) +fig.show() + +``` + +3. The histogram below visualizes the start positions of entity labels in the text. It reveals that most entities occur within the first five hundred words. + +```{python} + +import plotly.express as px + +# Plot a histogram of entity start positions using Plotly +fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions') +fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency') +fig.show() +``` + +4. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position. + +```{python} + +import plotly.express as px + +# Create box plots for 'start' and 'end' columns using Plotly +fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions') +fig.update_layout(yaxis_title='Value', xaxis_title='Column') +fig.show() + +``` + +# **4 Transformer Model Results** + +***\[Pending\]*** + +# **5 Recurrent Neural Networks Results** + +***\[Pending\]*** + +# **6 Conclusion** + +***\[Pending\]*** + +# 7 References + +\[In Progress\] + +\@misc{phuong2022formal, + +title={Formal Algorithms for Transformers}, + +author={Mary Phuong and Marcus Hutter}, + +year={2022}, + +eprint={2207.09238}, + +archivePrefix={arXiv}, + +primaryClass={cs.LG} + +} + +\@misc{keles2022computational, + +title={On The Computational Complexity of Self-Attention}, + +author={Feyza Duman Keles and Pruthuvi Mahesakya Wijewardena and Chinmay Hegde}, + +year={2022}, + +eprint={2209.04881}, + +archivePrefix={arXiv}, + +primaryClass={cs.LG} + +} + +\@misc{vaswani2017attention, + +title={Attention Is All You Need}, + +author={Ashish Vaswani and Noam Shazeer and Niki Parmar and Jakob Uszkoreit and Llion Jones and Aidan N. Gomez and Lukasz Kaiser and Illia Polosukhin}, + +year={2017}, + +eprint={1706.03762}, + +archivePrefix={arXiv}, -### Conlusion +primaryClass={cs.CL} -## References +} diff --git a/index_files/figure-html/unnamed-chunk-2-1.png b/index_files/figure-html/unnamed-chunk-2-1.png deleted file mode 100644 index 623942f8e0e8e89d9827a16d5567ea8a7034b038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182049 zcmeGEWmH^G)IAKM2@(hd3r=t+xJ!Zs_eMHEkjC9z0wj2FcbCT96C4^1?(XgmbMwqR z|5@+M`n{j$!?13zb-CQ`TU4E@v-du`Iz(Af8Uu|84GsRx4vsG(LPOV#L<3hOwW)@Q zdL&@7pdbeGnLDo5N_9MNe)kztW4*{6YgPLxYT$4w-JF(l<1x>iK?L^`)}Nx)*wq*C zAG!|~rAJ{bIkn0;NCEV>WB1b8e+f_znmB7(VjC^nV2gL#X(v8A%Z|s(=uwT#;Dluw z1ZJXgmaU2Pn!fGsZULu1-eVZvV=PRO@r?1b@WdOP9rH&g6urwc*9|u>rU&K9((u7c zL9Q z(IH{&CswA$=Au(@1*>^Y57rB$$sF~J3Qo7BHOK+&Or+aL!?TrS*QvOKcl3Jk8CfblZm7sA70elfVG){UJbmZEw~gEQ zCJ5fgET-lHGh_VuCZV60kHa?3u|b6*-I~Q2iJzbJSsHMAX@r01rM+?L|LFX9b?>5? zo{X{{!%u)t6i&kisyqAK@2goymxrZa@8tVyeX(C*A$AZxvm=veOF5Q2_UNlfH(pZ2 zfY_fv_d~po-*6&&!)yntF@y&vYEVCv!k=4mV@y#HhKcyHkx5AQlQM1 zX~#V$YEvQ$7N`FC$#jR&mrnhinM(Z~UY$43uYC}G4;DZT+y`7kAT;l0TX47Zg|MQr zNIr{(l|fBzjy5;w9)TPN=iTJif@1m#{J42DAR1#ia1%pL>$|bMDY7==nCXydzv9=g zyUOaI@1So_?wBcUG3kE7WqDkYTZOi5o~W{z`B`U{MTp)wNVv1B(^yVv7w<p$)WVdQDVaD&ZBKSHZ>!C!(UwMj(}pC?RE#b&E&f z(N%$qkDTy)g@3Q(nUxT-p_jfFmk6$Cr(FQyN?5zf;n}3aUNsDJJ={FKwk~Bqv}<5< z!w{{4gAxDD*6%F(gXY~9lJNq}x8&Adj7Yo zP{gqZGZ>Gb=|yM@q(P%08!4=rehGrRV)~ikL<>AT0 z`vP%t1+Fpc1@VQ(4ZX)`8U`#7d=M=e69ol0M&KL;4*sV(91?H_54?zg7aSZy7Q+8t zK^DtG{NHoL-~awtkKLsL2PXz6Bk@Vy4gN44Ic>6+ppX0*_$luR!*g|QP|a&>;Okjh zY7?_}1%4I0w7VUZYq?ojfYHXrx5Te(I3Cg_Cl7hWMzp%W>m0qAe*4`I4&^@&zt`_j z_WX@Hqr~8l{__y~0EbMkh=c_P|6j*18aU*lJ~Ev*Z~psJ;Lw!Q5Gmjg{_7x<1Mc`G zT>Jk0e>WEnH;eD}f3_12NhkrhgUr*6{o{YN6u3?=W{>%w9Ri2q#thscd_89P?Y~+I zTvzs6C;9L0z&h0e?(jIw?)m+H)7UJy9{&IC4vN((q%63rS@AG`|NkC9G5Ao&|C^Ef zZGjQsZ#;NbuN0rG$C zo&O&SkihHNXoLT+SkL;jx?82@w7n?V?7brrgo=|AL#_CwCk#K2t60rqvXl1zOfXj} zVD7h&vR@MXU+4aBRs>O>$1Kcr&xu837-AicfRh;!HrHt_=^h5^f`XPL9<*ovf%~HEuV#QZF{gs)) zyeUg|`=0D~hTXx6>^=H1)FIvcF)~o}4OJ}>?|TVe+ogZ+|C`&Vv{!YDPRKz`BafB& zjyhNlb-gcFogudAYX{4R>ip~YQr_Lu@mQy)UKTWR5fTmh7tXE0=&5S6N>)#_lW#%6 z=>cL`zy#$&p)ex&KYg>TuzIxMs$Op>>~XsrGEC9#^CY`LI}(U6Y4W`Y1>uG6_uvO% z_q)HE6)5$d@BQhNGAF9>4uV+%mC{9&+AH)9B0qi(JdLB%bh*#>VzBs|g)bTMPP-wJ z6V2=4I>O~dSb_;;orRHFKc32K%kA2whpfREpPw?tq#E6MhlgBj5=1fIAN#h&g*=ON z{r&0A1pyo4q5I{md97<7(O|N$oZr=_wpE7KfE42E*9d=P;8;)p$dEt0`rj#ViiS|L z&6=&KdoN%NrSysxpZ`Qfu{w-2s8OQic|$%e@zHnMO_D!P8--Z-`|s%^PqTYyP_1>J z-u?4a%dk->J~vvO87R}kXq^q8pNvD zMl<~vx#;+xu0FHA@~6R-9yv|t1-{AK#rBS_| zQ2dE`Z6~603wKA_9y%ko@a|AF6K+mc)DE?(=nXpEUYY}g-IN$&=<+Z3RA0~Uw0XWY z-`GBK+8^S7xBNa%0ODXVQ4+oW{I2LDh#qNnYkT)h?NVJRT-f_MEkoGz6Pw;Gy^VMX z4qaAv$UFKu5DuLzeRWxZa=N=oSfOwI5%yb&huyYJ@~z?YfE4cXfTXW{eLx;r4E=p| zpsdq81ut$YobmhTTXLtq+v_FIB@X)4WhByqU(0FR z0_)FbLu>RvFk2Osy?#qZ%y?4Nc|5qFvLP)triRaDF4@-CoYL~C_rXg%L@cQ#~#%W=@` z#rYNip&o11Eu3WKXswGb@0xO`s+vya(`Kg4VaKTEi8B^#OrK z7B{mx_^CiKzSBZ*c2xwaJ$QiR-}-Zab^ECOa>pyX`K5fq;Ica#Y1X@GB`ccC;M{8J zp|VY|g>|_mG_FKejzB)YIzMb-A!Y?67@RVevh?Br_~ku_XX)S5~Wzrpy0Oqck8KdAr^M_>}*r#dKO zlBQQY)Z!S2(AeJ2o3NN--D5aeB!P0_j$`PoF{SSKbLz_+Lk&3p zP2YBku=Sg2UpXAd;qS49!)l8-q~n5(zXiWj&Y!vAUktp>#jkm zbX6JlC<|U%PG`ZUlFG79P2d;O+u~l+P%in(;&Jx3k3oFZ^zbM(QEi@!fpl6#={A8; zAIu(A)i55@gFeyA{lXhn*&y6@f7}nYm7m2#SpGth$BQ|i+P7HNN6`|OIb`!N;yoB% z%pGY(GuN~Lml~hBcsww%QzZAxf7->sSs0woW3e2v&uy`TwMBOljA##5^EtnMcuRKn za|VrRYQg1D200XD7knQ3Ndyme;Ku%vGe!?NqTgC z;3HN~h6Ri4!}KvuVAY=k3P|5Dh&G9UWx_MLVATxFErkBSf~tIJrm_T`*=0p>WA#Tu zUEjlGwfVZ!41eGPhn)6#brgFeK;mv7{pR99jC;S9Vub93-koAu*r#}Y%zRMkn9g(L zOoR_9DL0UXeok;~saw~*h1e8G#NWRIIQY}2ImzokY!Bf2BZn`xvpsVuhjXq;BECHM zeUfEm)`HiB4l?{~U$q?x=*3H?AIqlGCZ>gb$v$#sPq=J;#~{aL_jK5PNZw}CG5C_a z8Jz9L=_-ACvCYFnSlQ0CQwup@Z7~c?{{E2K!0_N*Gt1lEhH58N#|<-OGSFD`q}~-q zaeL)|4v{s(4D9*~r%mj1WCPHIl;+tBUaG!L=P=u?G8N1Y+_ zx1t=3pgD?cskVe}{F+ECa`L{WeZd@24r^ecPCf&|(2W?t=WV;eqIjrgB3`$kxh!Gx;bPxb9B3E&n3bd93vU_E|2sRa~t z+bx?w?7^W`&S`#Ms!0_^!a+m=e14y#MINvO^9KpsPe4()V}RsYfTp{JREMA z(}h~&T~Ka5!#ZZG44WVM#y(-4A|Y^>Xk>{9`{duAts}ixO!{aL>|0t>5PAJenk)+r ze=+6v7Sjwy-_WKIG9hPP{<|JDHO6S9_{0b_QN-Dl>?JRKP6->t`aCX1FTI}_#M5Tn z>q%Q`1*4o_mC8Ps#0^Y>S}p}#w~zjQ8|TMDp+)GeSpGAqayadSz@8(mLADv*=&iG0 zIa#CvU6wEkX^e=BNn+1A;OR;3g=v=C(ho%2MLI7l7P*(Ili(jnIH! z4{=swVO0i+kz{`}EPVwwp2-LpL=WFWuh9dOr{Dzd0j8@Orx?%Dt8sfCYfQ z9h_AOS8tE!lE<^W{R;vS+z+4KV%)Etd`>D~n_@>rBo7SmwLH$J?9UX_#$dlv_i&&u z@O~Ystck4?9`VsQFhY46b;F;Bg?Ip0lcmdMFW~uoZnJ_l%}-tPl>&yTQnmOPTA94o z*ACa08kR4h7*S!*=g(z2SXJe#v8w;>NNe}G2*{T_;D?tAA$YCL z!pH7G9ZU_}#r5OXfK>A9w+Q85;PA7`-PF@23xU+cKNL@=RBi?GOa@bbbO^MoclW`X zie2%1TV*a4PmWe?I-Iu{%)j@pg>Ifwzn!m_r8~jS zcgPK86rHO}s^C!Q&6FiCVR?to28hO`Y%TOfqdyjQEwa$8H2FW2%l5Im7NETL40xS*eDXm+(kmL*S}^xBMMP`QA>#=O%9tuJ7~aQ_Tww zMJH#XFO%sqA+=V0mo#rQ6XVRZLtjo?;B1j8=z3BZIz?1!t*YBcmV&dE55TiwGS}XHT%0fm*erd%cEdK(IQCs<3lkucWB|vMj_OXPFh) zI*j9gnj?a{^@JNT-_a?W>1@@G;+66!$0nq6FSxqkyV^Uul$hF zRN`-ej0}Ssb*_~*r)uFf3s(hLYF<+N|3&ytO%MiR%~x7}Vjk0!JsL+I)(_ikr)ldc z-D=PG-Qe|vnhSlM4b>pdkIP*AX&x)J%P87JLR>eL#3B2hSAE(#Rk#A54JLSXhhjE{CSHSmWWi8FzND%4;sBc}pJIEuqprKxdG= zLN0;!mreKxrgbUzioKmDKe1coO zryqX-;1985g2*N^%5L<%iB^3F8IJMamVc282~#gu6)rZ`UFmpv;+xpWf(=P(VK4DnL5h@Sq{X^dIkVC4d}S-6>~%K^7+gmEEN_yVy`^m@fVB z?Jw%|slOGrGs6t_Mw+$$g~PW8viS3cyNJ{f_-|16~F4L0s_Y0vjApa9|w_T+q1scpuH`uO> zx7?gCgq~`J(3DS+XbQUwC57Hd5V6ZZd+)o8Yq|}1Mnb#kL*CJ5>Gw!*lM@8rVEt~> zd)B(3rtg@rdNwu9k}XT&tsE$2QlmZ4vriCo|6n*gp97~$8TX5$lXXiHZ6}cd$UHIp z0jH6cVgQ1hD64Us)2UGL``&Q8=Z8SCn(&VTz`A}Ya{2>E{0kGF&&mAAsT?afbRgicr6!jgG zNWIMpRh+L<9D$pqy*U3G{A&o?g(G{}@ty5Ly%AeFpF60rSOlM~WLli25?wW37V?jq zKRZL(Px*UfYveS`QPGd+F3%?DrYz1jdhp(!(G=|}AtPA%K5i1S=ryM#gutCAvg)H( z4m*61+rBi+$>FK90x6*i*fuQ@Cy1gT2db=THCCf3gAIT9;DRVU*2{Mq?iw>hJQYi) ztyJS;tr$un@MH{z68AE0?59_fY=|eH*!g?2<)@)5^3ZS9w9q%!<9TGx$CHD{o0!`V z-x@w=WNn<1jb?VJ)55vy${SqaXa>Ts5sZAlb7Y$4-M;$%AgIsg5e{W^j{Y(@4$w;C$Oa3?kU_A3a3d9HpVH zbYNIXMAsZ&X?}}xx}e=;LY0mUIu601skG`mNVrSs99%5ezGh@efRUY zSh*Y*k2$KZb}&1$aYhigFuPX@F@7UbB?Nf!RUOQ;8UrwV|uR zk+j5;UOgwNAaVBrdNJEz)T`V+MV0ne{)pqwvcZ4`Fe$4OKGGX(KrX~$#dV=UNMzGb zJjU!Wo2PsnTgWqDNoo1kG_^k-NRwO$OFElCX#Hv)k;o!yt>Tk1&#YMx$blp5+>0>5 zIHe>U)+~bfV`3JSQ~jW%EKS7nL%MK#z~4N@;(BfEJ~mYnnElJ2To6plCP~njP*>Pj zj4_*FW{cqI9mImsW-h_Hn8mT9A~;FD;5G^dg658_LvACCqaH5^%IRgw3PzHY{sFYx zpE}$>e8{0p{gZ0S2y z+DG%bs4h6Uz-J{Gq*UdYPnk~kJ)UhN-@8 zO6qyxcY-H6enk!o*p;F0E88>=lYLmIRfD&u3+D9-Dc$z!K|YJU#hp%9g8Ji3;fq}~ zLnDGSUUDp_scgkhd5adhbUG4HA$ar;h?C*~-hk%*xb1bkC@XB4$6`hY)^t1qP`Ilr7s0ph!j@UsD=!Dxsyn9$nDH<5KUzM%psG)6Xuy#$Rze>VV5xQ zoC09OpPQ95$JMYutK&22(7`y>H1XjQ;qU!v zpRaxzz?5M10D>@XVjQbZK!`I6B?88tNYs1#`(Eijo#V%x$4x1|;AVMd?Fr0>w?sgO z*%W{p8_0=)MjU?Mnv}JCVG>n%*i>?He#*BHe<85Eu+Dg18dX}R>`y}mYwry-V}RB1 za6PVSp>d0Mk38hAJ2p>1a#V2sMJ5Wl-+ux0g8J{J%5~TSjG|9WVQkRW&Bjp@ot`4E zclh%pnu2PPhLdeG-wbJ>8RxM#f2Q>XUCFc7Ar{K%udLtnWOL6;TW-B2=l|p``MGkC zJ7qTSvDPZFLL3&f#osVjJ7vqG8^*kF8Fvv#SL(3MW>j-N5rfWF3N&EL>W(yN-(zs6 zs7mcf)raGC2KAa{c`ovehcpiNG8rAU;oB4s=aTvS$4y~Tx7#lzh*stnVUTNc?24~a z0EZFw^hnO!+RxxGeS$JiC~2}GE|>cRj)`JbrUP8BzD9ib8|`VgA3~gdzg4`O{l-`) zKaNJchfu(fHj1$JEQj(oB!lpAIiHk9CZ^wpBn_@WEBbrNky+F43?Xk&O?esd+|kmU z!|ADgs>^uW4Awd{`5J{OS_`#11lB4eGW!jF&}$Y$PYG19kf$l(4A7}|!OWF{Kj+<{ zdIgSZ+HFcByD&6f(8oEdwAoOW`iOo)Y)5v_<;=aCW%0NHOe*JLn9Xc$gaaPE_>u1s zBvy5{l_mK^$e+t=lA5L)T`7xC{I)$+zk6EP{XT7Y*mKaGLx+A{>l2$NTODDNwj_Ab zYPiI+dnT*VbO8M|p}Zk`@Q{f&>t62kAE zSBUQBd5_(D+nNk?)3Vp)lGh=7u5=>VCs6|pUf*%Fz4HWQ^pIPVmWHw%KnG^D@g^ya zLCm*Zs2$qapan$Vg?B&qIr<)~<{KmTdBC80EOv%E2^i_o-UNY;hV^nUtK|rOq^5=X zcJM9quwVye?M=Rw{gy(`4nn3zx216@hMWO96Ua{+M^VUm_cTN-wTZ<>O|F(%Yzc_Z zh~y1#fzNzowsWD*7~0yFM>n?voI0t9Rz~@dVu!k5yuwHek$ZK*TS!*|~9b<$~_M`RAD2+1APYlI1ET`=P32b7K|KChN3`>+RUD^d=?0tzr}Qo;ahb##j=Pg zR;dyES9a5CskqP)B59*Qbk`Yo&+T4!p8@G0Pik0j&MG2C(3FQrppk%7urm4DN?&|K z>Mi~pXe0HccccA69J4Pt4qK68v)^hk%}tC+&ZH!68gYb9CQZ2j_5;ROs(TS>_ewvv z+Gayks?;oDhu|8K5;e2|MfA`@=JD1(o|?@9QVX@2Dc5xMWz(YIrTHtPn6s5|0=*d1 zJ}R-V=|LW=CKWm1H%N(opOav%#i}0@&N4h*a9CgNdaPAXz6e`fv8YR(Xh)R(4rTIs zv0g4HjfooBRa|-!T0_kT^k*U>7XgEM^NzUj?Cudiqg4cvtXM`RCo@9td;w%Fwb|t1sov# z9lg!I!KBb7I@+YNF#ZP+eHc}OLPN4{)8seW`^V6$6u+(b+$C{9HEKNkT!b!Q>?C+U#ztz--%)8MBL;}SYlZ;!!|ZhV$P-k-jh9u z2P?uiAaJ#0qn%z{VbY|RGw2Fbu^z2G&y^}LbQS4P*w`4rsOPEDNMHubVWc=wfXew* z`Jf>gcHyJt!msx59Gi|v9BX}IubmEW&BeVpBm|*x8+inCH6}6DSk;U0CoOs#F0$9( zVAeXYW3PmA)mi=h<<%)k2S)o#iA@@n1LRVk|O<9eA-{fnHVjI2gbSAyy$ogcqqiv7m z=z<}6iksHMrd3UKj6&;sK^+TF#h1j<vUTjpB>dH6sCs%RCEL?PMY;dW|}XQl(=r05-S} z2Ck)`ZV$myd`;1}@U2?}dc0HPVLF{R!9NrP1t2Rr56<2707H=l8}tT~MR?roO6({e zQm@b@;^i+MmzD00Ek|6QUYmP(oRE+%-|*I1Pkr&I4xuCBlOd*y;GjHq%Sh_&1Fdp! zIIr75I@!Wx&EB|JZZ!hV9)2G?bbD>W6P&tAQV#F4JdX5vUe`IkqsAG}-ei}peGH)E?~Cm+^~}X8EVq^o74ghZVi{s)cRBQ^2<4I# zYCoI?VHdH5*FBKUH%pJaI~|(@>_!rW2zQPuXE{N|5>=n|tnKZOdRdACMo>dI3Y4fc zrp>aAWpLDf)+@w|QaPvclu$()e4v4Gkgq_Prm^WJD>Z2&pJIu)ix}ec3ga(&RjPOu zo|~!qy})k_RhK2zg+;82_EZ&`%Q}5*uJ+ku-DqpWs~N!QiBNLjibIr2EmdVyhR4DxqvP(8% z&=;ur#bb*Ha=0O5>=->+=@^GL$#IpLUmDstxcNsOrKrH$%g+v9Mtx!CF`xgsbRhyT z2-!5#3lSY3Q{;@3(wT%(?!-IZbTxU4&7o+?N7~pi$eM}oXX;n$)aV}5eJL2kvuSShk@7-Bh7#GEvmx0Xw%{Z!Ui{m`&Y zLE0ECEW=Z-oh7eo-)d5SSS|0t>pe|rh`yDDzjzRk(ztQc7u#(ua2<6mVKy!ySl?Dh zHpobvD-~f_hPrn(PQBoEah>jzdJMv9T{;TR?x6S<4rI_?x9nPUY@i-16hSndNyKxo zJEmvP}>;JyXK)}os1$fYn&*l;JN%X%AZR*a@fW?ES$Tr=L^8!5ltpRFe>*4D3~F|P3GN^`(q zzxs1I*ESO+X2fI7`La1X&5}CBtDpan&NBS+el}no5D7K9Tr`R8)05wpM_zOhZT6MvioN6IA{5us}x36wPR3FHml6_c`0K zez7lnYTQf|vbao8tBu*t>2+pMu{wysr~=t6OVRBPt(}%l_hUSVnN|(~Yh2>(iGQ$e zuYvL`M_SqD>=B<@uTwM9&o`u{;9hmVvU~iIWO|PC?T=+>mjkg; zpm!bqgQnZTtN3- zu-8z2kckPToXhd4j;datb$uwq;I`HRPqH7IcUB?a{W@8&nC{(v>U6!K_4D*TCGP-0 z7rlXou}5b|pSGH`8rRtnq_p2H&~71H{AC5bXWBamI|H5Ld@r|3YlOqPS(fnBC7#OP z$Is6ZrC)a|t;V(%4FU7RZ=0+K*Rot9XYk*;0|$1dqq#Fc{xUnSbq{4atPYy6l3h0# zeGVvLWr|~2k|;Y8l*K)$T8B=pC4otP9Yo)HvN1!#Ws^Q;BR@3CT1k~@IZFXE<{V=m zlpDtoBjcROGU~83RHB7$uHkkw&5v)c^YA9pI)QzS`Qe+Y-?>LUf`*!3`3g`(CFj&i z#syXv-8Ewe-yN5sg-wXu_(3eh-Bx!Si$Dl<`!J9V?0Oh2wJ52z0+36E2#0zLm#&5a zA>Me-`vEle5s7j-megrh~Q?^Lz*o#JR zV9(qADcZ8|gEw7kxwH(vhb8IYubDNF0f}Uee5%NR;i>@$(x4Kd?6K~voBLH^AHe(o zT820FJhS|XubyY;Gq+x{Wt?d*>Q$-Fut&#y38AjW7=7Y6YW@s#bWpCJh@amD3g8VB zsyE|DL9K*L|5+k78@e@@<#;8W2$FV+SehQxELZYusQ92%>laP|O)}n^C>*VpjCYtY zWyv$3qGM$H{e!Utce^pnxd;6wINRHLu)O$h9=LokgQX_hrzSNoqt!V^u6)@iz@sHI z^BS?EsgAY}e#>!2bv7kI+}?O3E<-U*z_LkO+XS5})~qLGljD;;2Ip0euBf1^m5li7 z8?>0?lf^oH3(+*cV!6U;RR{|@2Jv4x859~zZ$oW;>tx-hOp%HD&27gj^9=!uDQg|g z4n=NVWO`n&jou>)6~9+o?uMw$($_<^1`|B6sT7#BWUIw9XX2M=N=BKZSp?ylO6r{h z`FdzF{inyq?Vi&mbd*&+a-rABbg=@?dvY~9Eb+%;-t6qdXVFLTMJk&y#Cz^F{g>kP z7;_>6hZ9qS{gDa@@zb})3sFb0)9sZQNMft{|J;G{r|%ISzmEY*u?1^2vqKKLOINJ( zT0LGTUNlWhJWzgdT2lw7+Rb@b(e%r&blglFPe1hM;?8AmJIp~E+m@p!E)yufjLlsn=8e_cEc+Q76>0PImydFnYUBmU zfwXO^-S0Ykn3|pWW9{dMf}CLd&A)L%kUm`>bJCCE)V1R?=>)%ex=Wm=6+gHY8S0C9 z0VPez#|j|h5j@bVw0?|d(BKj~XR9&1-T#DSSMl~fU|=*k?a2G=FZW+T)2*FL87k8C zbc)oaCF~3;a%$mf;|FStp&+!uNQ_q9-K=aTif?{mUl1WGxJZlN#c~4A%x9yPoi_e{ zND(w*wqK_N>wkf~YJEN_D^FNPC$VoW9vdV6xNu8k)<1|daC{@Bo#2M@<%r9{#E;#Y<=7_(T z9&K%^c|A8a6}L3)QXU^TphJ3bmCRAVtzY}lB9HH|j0#Q{I9Dpz0JNld1{2NXEFq;y zfkBzdX4fjw`VyUm*5l^NoOE_i>?!lHAF2>~vBM0{i)m8Jo~mWUe{og&I=V}Z%Y2T1 zHZD_0XHFv5WBQq6laDJTy#HF}UzVm4qdfu2RhL#e;es{eVu19H9- z`QLm68eLG?w|TDXsRpZyy_%hb(yu0S*rnLg68OK6+yJ@d}w5J=z#`Jj$W5J9N9sZ3mdZ!9~1DVy1hH_C1kdl2e_Exy}C z@Htv(xtsk~Y(u4n$8p-6{8aqtST&E_=c^yVDsa@`PJh4XzjI1qv*#M~&Xnitgsi^;@oUJjM^kbM1o6u>V;*k|6&d zYlp{OG8SXpBEzXdaVGvztL4VCdw=RRAy5|?gYDhl<@M9=pp07qEAjo zkMIK3wm4S@SHyt0r(BT=YB&+J>)z*aU5XOa6w8m8=2J}Puc({zO>M(hea6uCl8F{# za6b>P?Xj!c6+`e5V6R}-UFDx}?$MW(yU9`w`fHq=u04uynTuH6B;I9wFqF{F(fHqoRUw4DHH^Zv& zv$SiB$Burr;KSLv3OnrbqV!{ny`$z=Bm>J%$8RSq;%l>rWr}!Hu4q=&h0-sC8>{YE zg=<*wXjHSN@(MwEz2++|$Rv5pQ2Tiuo)6}mxQCNF2$4XU1O!F`AH|Y|4P@w)3k4UU3DlcgHGNH*{I1 z*2M+T&7=&#!Wd1|sxzcq$1_YkaS-dSJ$J&_0g*vwCg7B+^<#oEpTRb|e*QW-XKeJ@ z0Fs0?n3TSLqlD*zZG~GW9&N(7l!y`6WPem6v<5?K!r0gBY^s3^2El1h`mQ1&KaP zD-g5mXj&Wnx{FBm4L-gbhfMq}gyYkro2>jyc}IQ0cjR-exLJXC6tX+Mqk1$K)tIA{2 z!$BMB4za$WZgg3yLK|y*mrXP)aJQO)(G3d4+QIpfMh}lcx)}ESepXz?%xbPaH8PV= z9B{?CG=7eYC*<5={*Ewt_Y=?a6b``(s?y|vvuEmiO$2W7!h{S(P4DH7W^l*GA;gJ0 z%$2|`)tppL@>QF{s5M5?(fu0)$%QXTk!n%_}eD)~=KLaol-cCLf1b<_LzRzIsu)wcNsgz7hM434o}1_)(maYUJ4PStEGH)MP;q zr>1s0->Z2N4y&}GN-kLCyIT7$ofOCr?~labQ6s%&-FC1^#q|CS`S+Iahj0+_$UHtx zsLyxmTu`efsa4q)v?^Ek0Ll34FiR{&vd+O+J)vZ%v2ZWt&vi4ve^Kn_rz9+A&dQvd z#?2jiu^`cTmYD|q$+8A9j`z3vlW=r)rq^I!x@FOl5QfK4RN~iQ<#hagE1|UVkOD!7 zpU>!;a(~X1emJ8+ozvhO!0~Z4=M#qanecN;6Grk52r&P4EfnJQ(9_v)SrmH$lOq+E z5|csRN)F=~P(+oG&Cgmuezj%QdM|Uo4&; z-l6NX_=M@;q#U>$&MN_C^KoXQd9At_)1U{A2-qV|>#+H%Ac`A4kV%CP+=$39z(38} zey0)%QLGEjr)+&Sk&4zm{adJDJ)eHOBTagv92r}q{g+6^(liKtdupEKTWU0P44$$1 z_VdQ8I*COdeu6Q;`99tl!l~;Z5ltmMeKg~Yh@XD4+*Wvpp3OBDw7-rla=X`(0e1T279ABei z;=5a_%9?2?U}XHFK`d&HUqujtO~`4JqHd4*(lsiQ!Mb|1C;fio!sMTaAMV=pF(>UOH#xZN#LK}HwLv0@|e;#<a3 zKz0o;08;HSiF|@XdZx0wSw_5X^0Hoc#S=CV$G~jk^0+btABHoAP3zX0 z?OC+#mnHtJlPcexz;`6o6L=D(wlcA@wbmSEQrJQF} z&O>0)ZD$qBsftK#Kup0M=}!Fe|jtdn3|=3yZtGdbv3e+yK|$6B>F^2v$h zk51n(_8rAwE3Q%>P%=zpl*X@}VeC!>HDAA{p5h)U8D{Gs>9g{y432fb9>#SHG%)G78kvv~0vLb`1Qnb!Ap^er#HRb-=uLSll&>rXf~(2qHw zhbERQoTgVS%fJR9xnhZRRz)d8puT=09{v7!`$(`EMKQBUOeI$WbPb!n*IBpOX)tHD zVi;gA;8)BsuRbgd^rXn_^5}>_S?f~k3_J_bojb$>@o-zKgN-K>)E3LMJCaBATjj%c z6bgojW-^WhZ&YeP9fTv#-upxD>!)ZOXB2n$3k{m4#Rt4fB=~H)0X|1#-*vdkq*c1_ z=$J^P0Vw4>NF9@5_^T`{oE~R!OQ_2DO6y}4?a9i6N}a&4`M@IswIH_jTtdZ(B}}6P zhT7fMw-88o$gc+w!V|8atQ(9&1H(CzVTN_2*YCbyiI%@(?cWtfxbY~}O0V}n`2+YY zqcHhZW#s*qnp`t!(ZX!B`AZEHUjFt;*C)em@x3zpWkb3Pl=2avn&4GSlYF8G^ZUGL zP)%nIo&b0kra0~VR2QK>%T@Q>xFK-r(wF-~B*0I^AIqn`;d1!ma^VvyFYRx%Lat;q zY$g^+Ao;Nte|P9aZLyka3Ks)|YByj(9jGI2*xjE>4Q*+)@;tovQ8O0dKF^sd5Pz#v z>6S0=8qX0T37t^sx@S0ZH2xk;jsqgLitc(V!_hgde~56f_cu%C^*VtkRVUj@+Lw@} zkNgECclIVhuQTaLJVQ)NZh+EwpJG~q1Nj#7`EcrF{4rX`8yb0F`w?YhT5#RJ{ZNB3 z{K98)v`i#??JL0MulyTx?I@$-XZE7k+)&Lf2Q@!PWKVafmZ+#Zftebj)n1p4j+bHz zI@tA$S+qqU8CPL@;i`RSBsro${(V95(70unM!ixxd*&h3&1tIKX_6-!pZ56&3IpvQ+ldnH)VPOA zE2?6({H%@FymIL?I@afTE4bKXesp+l=NA_{Y$ZK+{2JTZQ}df2`%ILmX~p=HRRj&1 zEW5F~TE&k?7QC2mF%c+E*#KZ(jhiur{#gHT}cE(11PBezy%{a{$yguCnu4B~T6? zF8ku_{UFFdld@jto))22)ct%YiYEU~B!W?_i4}}^(WPkzo5yo38XE0UZ~4P!i;?QA zzC_y+W7JK$+`{fxT@5=yv<}^{Y*+Gu6R|f7>v-4gmD=L9lhl1hR992lQkpnS35p_) z1{@fSpmC{vtpwdFw;xGg=pjw>zH_7_w#Uri4?F!}MrA9B7k|Dz*dPsOT;d1Ml${6a z6*gU&+Z2!cewU?g+%&&nPEwf8gH~iTo#@;kOI~BU&^tg+hVjFAvVR zR}IB6#Y_{=wi7aA`O~Hs7I{%0LBg5*>Y2UQT`!DJ6!mN+W|zW@SgRhYuz4M*9x6fg0JWXwLEgI$QG>Rq z4C{XLHF3|V(ra{!e@W6(Vb`R;KEhMP{T-6CsBJP7gKnA4-Md$VZ($8uGLa*N{V*9B zKW-6BTM;Ta`bYU|jYV)Tg(7cz!PuS-s6FGcd8O5hM9e zFE$+JbLo7u&-tw}N9apper1fVPH#+_uoX~GFRmB-^|e8(`!u17$nko0hi$Us*M{E7 zVQ$v)^S*QHBrnq1e1G(ocvz8h={J8N)fwfw=6YzUW?{+FpwjXQd6#vKM_vBtw)1R& z<%DRxC%BQx*74Q<%p+d_@jhn;Y5H#5nxxHrEQ0j=9mnZ)vv4tH)5K5^T2CaLr?qA1 zso_$=>E|)X*oFZO{NOc9k-28FyMoELdD_;kpyj{BZc1MWV>;B)N zgt7k*_TDO}t|(g5O$Y=HF2UU`xO;GShhQND+qk{yK=iv_o>^b zAMX39+7GLC)n2u0t~uwJV~qd*mN-f)I=8e%@@6Zs4vtBl^OW$vJfN6vfcbPuDbUDk zZz55;v7|MVvgOk()xSgvY^=y@!we|UL?4Hx6dJNz>3AuPO{!p)y0hWiL{Bc|Y{*D6 zHm7Rq9Q*iuo-I6ed)xJ%sjkR+AK|YmwwKG7I@m&!lB(1P!U<${M-%EAvDcpRr7`l0 z(E^VXW@x*zp*br&K*Ja)zefpdIM(m}U;xSS%s*59q4;9g17}8#$*SO|xi46|slNvu z$G$9V!(|HxG!$o$(&l4S%QsqR2;)(Xt@y{fo~(6HXwd5`7dD)c{5o~6Dy0(W7CIB154V|DB0 zrydF^)C5=FZEGxFgw%UKSDj0*Avt?Nv@5d-SKbJ4U_+p#3QyCw=x*_tVFoWQ3eoHG zG%6aRkDe^7O`s(+ao5VMEvup@x|*K#&Mima4SV*-kPh@2{JLo?xvAK%dHvQ&xTRMq z8;+*b;`=@1cP127q>m9aV+v0Q;FmbABfexgn}$-hyu)iCyk<|DR%UfPeP zPTG?=mK5uawzNeyilTf!3CwOu7Yme#_N8VcY3-8FMZHYRi|Mm*=ww}D=}>AJ+Oaog z;o9Fz>rK`Hb0bs8J07vwjMjN8>9Ug}?w*dt8kV*vE`}VYY2~kUj)Df=*Oxs{Zt&Nn z0rMS}@-Ks9TF+^k8Adt7O}5(RB9^apA*BDKddRwfjj!$V(tLRECaa=p%z+3enM{Ih zbFxbO$un_19T4b6lkof$md083f?5gPQ3W)}#M+tFf6gXUM+$4ZbBC}!E2f7O z_ZwY!nik9n$Lh@fY_!&E*IAb4B2aRgEtin96sv?}S{w(9m1jz0X0w4)#?VS5kmcY8 zB%ghyEnKW>PfB?%8%}r<{$*YAAAs(BZ5M}-H{%(gnaN$68Cb;FpTd#ph>pNpj@%o= z6W^={Kg- zR7UqcE!`S&*n=2bV}xf>s=wc#>qw`mj25{OYdhQcLYiN>HQx2~aK+V+DIGWKmus^l zC^YDwZ$Qwk)N~;&0lJ*V{F2ex!>M*ZgJbUN@mh=zrsy0r7LPwCY<62ZouXGNX)`ze zhEL?Sx!8Uc{iW{WNP9ltT&`=Wp|;1)72Q7_pe!lIWvRL0o-EQ`rTWv)buNDH5jfNxCu7bbhQho}VLtp+IZ6z^&F%4K=l>=yxz1T^@)Q^aaROT! z>rlZ%tbZp`$;{|Pyear-RAvjwIc~I)5DwVNAO00KT&ZjFR!D)|VwiMq4Cg!wi~eju zCmQN)dr;n|rJv)xyJv(f&>6<_?S;Jk{u*9o;2@N@xkeGmW;=t~;Op*a>*i~qLx(#M5b0yAe*k_V)pe-oG_J6?~^@Q64nEt*f}(W+hEl1kh(Nc7mL6jy+kvW!z~A~ zawG6p;NA5O?#Dk^eqCXtE&M5mFS}H060=@jnz6zALG4d@E zhkrkdA(thI&=z7UzQ-~dNt&N(RaiEHr;`gDT!83E0KJH5ZVk6t33H7Pax^D9APi!5 zkb_UPq%r$p4TS958BCEIRh9B(8rAcSqL1gW`@@!(FZK^ZA%av~e`Ly!FsSpA{t3UtAHP7-kTv^qVbCf?xrPp> z!+L!o7T4gGJX_uk6%G9wU84Rfsw2-o85Bu)II}--qxr(6?aWLT0z)0m;pB)T@blZN zQbpVugU!F07ze>y9Ydn2z=-6?#L7U5?>h~5qF}=q6lo$ z!-EUzA@ycA*lFj~X%aTWzSJrbGCEu$57=>;Mi1#%$BmUE9vkcauJcdBXzskkeX*fv zgKt8Lxr>!}>>G(Z7wqSZ9ey8RUNQw?1U9tqp!y%Yv>*1mApuYM_d)rz?AXHbDZoh` zm)HiB(28jk9`ae_(lp{&v@u5#ISQ`?lf-$^mtz)%;1AzEi5H7!3LN}x4wGVP_&bus z|3wy4N=ogn3e=Vik5xJO&(v@-C!fJfISzSF`li?EQX0qf9;r{36B_ivF&F%&d8y{7 z3IXIa3>5PBj1Qe4JYM&-x21-l2m%37`AmLFME=UVtl@o8RwnZ?#_N-eK1S=8WO6%K z+a0=QwR6qkPFdpue)pTatE+dVwy2tzsCbhy37K@7=9tH13@Bt|5C;Tjr{7&LA95_Q zcH?=rh2OvGRxr+W>R-e81019sCRfA9hnN>Ny=i$7HW5Z2w7=Pg-(cKVH zk9@s@P&Q%v0YAwUV0J#t8}fepPA0c~{HM7}9fNl3@wKcV=?^t2#jhn=#@wHiYW>P@%;*%cj+KwRx@K0Oo4snDgQMj5ZilP|bG%<^DwOwHlN z@KWj}0EtjfvF8&0Gp!KuIB^%8f@kucU67_7g$yrOa690Mq5d3gYGO*u;8d z010cJ^PnVAPeGLv(z;Wcot}52T~m%KG6)@r?f9aor{4c}=ui{h$HC7;HqBevBL9ne z@_$~e%K+kFYyPLNJpWf>lr!hQBKXS(Bj^9~=l}B?06YS4miBTZtAR=WU;iiXpnsz7 zUZih<(EmY``9Hu-|NUqFZzKHQBlF)Q^PgANf3K$hJR1M``oBl!Kaa+LzW)C?GS1jO zfI4Cd5G5%LoQP73z1+l6C=305H)p)Me%>@8`=;~1@MZt|;)39RfXFT~whZ%tCA%*3 zV<(;Vy2Dk?q zY@5roT>VbrM5gM35&3@=w7j3uU{2pex?ltaGr9l(*1>IR;}ymmEjEp@1RO3qLI6D0 zI7n9ogbzV1?5}VtQ};_z<^O&wAo#sT5{nT@{s4rx|F{CK4;R(OUv3Qzdi=8`P)HSW zzQa;gKa3_3)3X(6r!(it=jwel*9{bm>4Q~$j-fL%oV(S4{jWmj<{M-b)cXH>bD_;z zkc}MR?U$X;L>;3Qz1ka>lf{`UNSUKi%9B7bDb3bFMg?Fk1ga(L{y?KVQ@P@~O*V##5-8vg5D<6B50{5%Q|Zt*B5B$?`}fw$D5OfkP1PYWlm*BznFdID zvrs;Qkn3Jo*>08N(_#1b2iu8_U~Ym?l7Mi@%bdIdvZ-2ygD8VfbKP*rAaV#N0rvv< zbAhSeNd2MnXD2u;W=L}6tpw)paN=g9f#l`}ZaQWN2k-!4$_Uo|23GX^EGRdUQDml3 zo|xMBfDoO1nIkmrqV@_4qLMBGDq_AZ0x)FgISsWtb&(Fr6af9P=|cH&d1o{pHJRla z112Ej8F%wB+9BH9g49Ts!>X9P_ZtkZSSNa7NSOQHHmkHei(UiL%lUhFsZ=@ub1W$6 z+tqlke=zI!#r|g9w&mDu;CJ{p;$G!}2l8T2XkZ-gPr1@v0J7(s;(eZIUAI}ySnhHc zcm~^F$QFW6fvy^X7N0`)M<}E>s9Fu-7$`sRdUq{E5+4kA7v1dqGJd+4ecI7I2;QKQ z8^4dMIxr9YdS43t2T$aKPZs3|s9%#Tg9LujA6k2!A36%0&ex~@B+OE!!A^Q0amI z26F{?j+-bR`W+bu>mo)TaxqcD^A*CxeUy-p|5itQp_|#*qtDKB_o6j}$f}_V+o)hD z3Q8xJ%QDsBFNlqP|E02^4pxA({Pe@JM#iKtyYEF)IUDjcg_S)332KHBX!)K~hr>{Zf3DaTCxHuT%}A?LGe9WEEDNxYyuDMAA3VWy zuNp0Z2ge*Mu6W$&0Y%F3!h6xJ%CVcfpQNZH@J?BdA<>V}GNPzyTs}TB*c2Brr|LKIi(vleZ?-hf5(t z>^DdHqQCr|GpUtJ3(<+$%Y-bwgK6}nfOW;lck%VE6Y@mWJB8C$DLqq4g}4EkE%7VK zz|KEt7#{dN*{ItI8Ke!d;dE9=h}*!O_fAZcP!N?L%9&T5WwkS#d~F}U_7(u>z}HLW z+KTn>{qs+{dr4HhqX4-pwAaBCWFL}$HNSJuul@GN*U-2 ziGHySFQkK&T3J%MQ1^N`fThQbZ3O%l*{O}^N(TzrR6zSTj$ilpZ-q+k{t$fH2cF`Y zPu7oLI#AF|>c`h|OFi#`^g~Hk!RjW`Qj)!`nWj?j z0~cNIu=4(Qi2!J@MhB`Fzf{^XAoZadjL|o~h6&r*^vvG1JKfycCV}ijbEQXrEmkhf zk^w_`i}3Y@9pfW?6&TmeIj>FRyorNZDq{#3N*KAeJI-0Ond zNFuOl(B6Oc6p~4!@>xMN-@h%snTW4OJoZY8+A8wc+Kr>qx}a6Iz(%JP7mG+1&K-~= zmOCq=*y;_+{TY5dc_HxB)c3lf?d9ig(Gi06T!2M5`KJC(KA_C=6&(l=&^{6 zX5dAEVwcz!#0`$1+27MSET`*klfPG9=s1lx&u0PGTw*Y#)#<&Z!w1C0Du-u+60K6~ z%lh&COB3k2uQ#$f8CXGjX$}2X%I%d~IbQiEYXnM*R2y^fO$W;_0nDZ$vUxF7X}5KgZz}rpM}sIyYn%_S8rJ zF(M-AEc@b|5ovZ>vatX{W4!DSCQi?QKWxhO672cXhYiN{&A5Q~3dsR>oaa52DnWvF zFuS!WRBv=H}1X5g8DMuogjR~$uTOsUobNYK$At11$uuFM=Gr?#J+kqt#1}1p9sPx3wdz4| zec4IQF3^~20K7T7m7wglP*IppRxT+GA$C9+f%3_L1OTQA*DpQa6HZ;mnwkyQ)Q8Tg z#|G9H9aol9hd48tV)I$i;PZHD)t}LCEf0>Y*A6V(b z0*61Ge}Fk|JjQ;)&6Q+tl~kx006akzbuuSgC=O9|uy4nr*yeMjb=}VI`H5IPd6w)!CB zaK7r1#fzSjP|we(+d)zO!dl@Z zr7BcW0*%x04!G}%WeK|Z`rUJpC?wG(ht2=IswDvOQ=1j#+3v0EGLFW?c6Z4-sR-JJ z5hC(VEcZN9^A)v+8o#rVJ}WU@*%90&1`m7wUAd@%R9vnEfLLeJ$>Pqb@h^QFVBY_1 z&1riRSCjruOMzbc?>PaK#QC8gd@zfGf@4|{Ykro|Mqmj2Qa#%Kbe&TE#!M|<1aefX zI*X~H%a}z}CD}#8T0p8I`r}rb)uiX!92Ql*Yr^ro)uJ$cA6;GjSL1|T`ov~Jk-%_r zM36N$b61T;ISxiXJ=~H>uuGL_4lS%U_?r_!W5UG=1$2w4`K&ZaR3r6zxE8(|=PmX( zosdy3>%FEAmtW=pE|VHP4l*rueI6iL?F%*54lqha#7KaxI6$;KPV!9RQ(0OL)N3c~ zd8PkeuYVKTyy}Qp%akRr-VgBru+T;z#Zwc)EsiK#Kb#3Tt3XzDQvI_r7!nUPhp7yZUQU&S$yoaBU25Zd>&ru2J zFCS^!I0NzY)n%=Iya%pmRIn}qmjBes$N8t7vfIJ)N?WxVsn*QS$Ejv&EwU&<**w9BX2r?*sazp0LSV=Z90Caxctp)CIZE_BXfC zE%%qT+7#b^QyO|*?cAG1m*v^rzx^|wj(we;U&Q8%e8g!H(TJ>0l&T-ujd$L&KnE%E zUfWwN$XwPi*`69#rmeXl!7>)IfN?V70OE$2i8R)=`hmuARibF`z7pQAOjPDRDWgruvqyvEoe#7ADBO;G!l~ z&+p6oQz$_iA?B#s=OG18XIGCR{`>B(tThJ}+vNhX2rmRd`HfD!N^!=SvZXptv6;kN zv!4XsZLHv>w@h(5qoxBjiz z05Fk_C3rha*ByLb7-x*l@c>QlOO4xY37gl+}3PEzKaP&blS@Hk-NR?@qPSY8qx~_?op+(kwoCKi08ox%>Ua5u zwDYC=i4V6L-TggV(40#IK^R+!hmPrQUb^>}9=n}?C0XjwP2YIn_ZTxfJ+o37Be>hK z5;IS2XrZVmIgPoT-eTr7%qV`HsQryKCKiTlUplT?ZY}$;>z2Uc@%$Gu_5yq_gA&`|%L zwNx0DEj(?^1Ur#I$7}NrFdG6h#VxraH4TOr#Q6oT_eSLUM`smKd2CI&^gLVjcPr9Q z+GmSgD0jJ5Y_rPZk_Ft_&aRV+2?l*RWFzk1_^Pxki_;!WM+AzOdD(JTa}TfEbEhTn}RYhFoOVLxtv_YD35 zELk@KcjJ)b1y|wQ6W@#wdKXP5I?zKb6sJkFhdRT_L`6d+$StMvRrBkjJtT>1jE6Co zVmuh#hC0rBUp6*))>oRJlX;vXk}uud2l)2+&K*1MS8I9qHMNS#WI7;`D*8h)=e;EC zr}nm<^LlIfjH4qt@|=fGR!`Y1=Z;Gm%{AE^W+DZKu=Ky&DS2xh3s0@fH!G7QHK|_g z5rmp)$h5u9i&s4G6(ABI>Uow&s*R-7)IBACfEO0HwCrt>A3^;l)J_$wAk|n$Md&pt z{j-$gD){(LII_{W5Ba&mMPYzQjme72My8wmD5oZ?XT_cB4S7OAJ5~mNTRHnvsk}!1 zHlDv7nU$x(VMyw44N@aHPC}LT>YRr0x~qP!=Zts05<(K5;)mbPus%OtBuG90h=O&V(bwMD zmhYTrN~lKiVn|^Sg~N*BZ`W6|iC6zk!AU552=5c%q7}6^xInvL;AWE+TPx5SQ6?v6 zH@Grirl%SSI}yf%v&zV)cR(hKvqs*O;0%Yp))BW>rPlF!_UurUbTnr*Ym;j8w^FlF zh>)@BsRw>sayy8Er{RaTLsVjX zV1wVIU(Da{@JEm5xyIz!QI}qe{7b$0Hy^Cs4!v(du9nQ#ebVe2Zt9)IHLg=rGUr%& zHKfPf74pvAONCDIx@%|WD_G`el>D>iImy;q&%7PIx|-=q*8*FUoLebg?b_z%`8;Rg zpm)eH5Glo5q05;lvo4jODGk!6QX<8RD~u2^wx%-;^4X34ZF$GJ5qVzPUcb+sVIoKQ zS9OPWDkLjRS8bsNe~!;Zj#lFd&f3fVPCqkaWF5ZZ?!9pd|A?;{`gO0uQCam@L5OC~0~@o~9b{ueIL<2Z+%fC40oBi@YEV>nXq_RhBh$a?YVw$TAsy1^&dZlPETKAasYJFi%#3G~GVLu?H5$Ne z20IDdY;_Q2Hx3-fL26_SeztYeg_QOXc%W`SiususJpTI8=tBa5MtueyUP?vmbQdbw zGr6rs?`=XxRGSyRe7Yzb&p?vm2;2Ko)!Gt4$s^jZ3hdTGSEc|g6=y|Qb4Ik1kApv+ z2epPh=rbn=iS&x-wK>P?*Xra)Ozq;gaAQzAyYv2TOUrEt*xMHEMUrPW2&FTCpZW+=W{(p}ylD)4k8!dJySp!b-kz=J$#>L) z1SL5t&iz{+#@|mchMC7Ora{mL^}usfPCr{ORc1rM6Wl*S%jjUU*1FZ^ZH}h1eyNKM zRkVe9a(^1hHh^%O@@p@3o_~VCUhLF%PeCO`Sh-!x#G}01Zbo?bw-tJp^I4jM=9J6A zZsKs0SI;ZS>L$unxkYk}tNy!A$MS6(R6vQU@S`pfbdcolmoY3tiSQ#;9bIeJUXq_mWC+Qrm>bcrILpaXK9Q<-y{Bkpg zZTP2LgL`K84O}YcN_D*8m36YzI$^FpQrzT`8+eEG5Op+nVEfT3!lpO;0=i>oj$_?v z?Zd;eRU?88!iGm_&}r%=0VD6R?HY%X;3d4%5Gx}h*^n(0cdBE#OBGTTHwQ<^goD@G zKG#%zWg^zPdt;^E@7Ya9j@`myr`FKg**3ErlHF44pcKPKd9nZ@Lm2%8kQK&jS=;>` zt)As&&v066qvg9iaijJ7$HaaXx~A-hdZ{{Fan@{6WD1A`DX|~fp^1d^K|gE1WPU}f zahvFTnt8duPdIgD3PO?=She5YdpXr(Jd7eOkkxwQ#r2x5KFqWOm4QysQSsUfdC6qT zGAG`L- z>;ax3JXWX-neUjHzUr@)E7C>nOSb6|Cm2A#c=1X4+NPmb>zFH76Q-a;QOa{Ry4n7r z8{UX?;1z$N9%l}%(MY?fGmJj*ymd0D(v4B0a=QaQ;W(~NyemZCa5=XJTYnC6-g=Qt z`b}f&wGiA#+ze?o8P!#IiZ&rx3|GHX&mn-^2YZR$Cu8v}F^x*s_ADe|NxZYP@NnLF z?K*i^hGy})!YF{QZ}a#=7jnVp$Mk-0--GMCYp_iaZfYJJoe^}=BiX&BlhU9=$s5zI z+H)tXe*x`zT-vB^W{fL{MeaV2K0kov4~qbxoK|j9s>U2#OY^F4L}f2 zpmL^^VTjI=v1|5Qx1YvN27-*;#sYEpD@^D9TV_Y8QRY@QqRkovEJ0p^z8Z3aYf->P z3CB7peLZj+)@n1u7a1kvGK2RRQY&aTjgi`Jsb;gtRngeEf25upkYgMGty>E}a-uIHgPJ4_~NJiZ$RJa$HX2V=;myL$HJIP7i%m}h%voX;J zJj*`2szk60Hh&T?v!%vxR6W)^!K+9<`2xI1ClYV&E)Mkw*fCCj|IMU5&G(8G_p?OF zJKy8V|IZY%{Vrzu6E}J)<7zE=X%QDHAsw05EA^R|jLuIm+pI!bgX3QBC(ppfK)*p;=OsScW zGFORQ;95-gtUwIe8w&@#w4QrY+j{hjAzLL>AqM16>h*W8UbNC^V(J~tE1K}?W|b4m zFjM};wlcguFDac^li*C$BV%7q_6YeKCCMyqB3-+P%!uMO!I%0K`~h;%;Eh+zQ+b{`)w{!$h(t?Z!`?!*0S8J0=vk%-O9P4v4XUN z2;6VIaT!_9IXt>|pOR*-yx!LA5rI46nH+IaC3nO&b(22N&tlSg&=p7eZ<}eQZPble zad~-w73zT1S&>2I^Z!;elJ2yc^Cfz7>cb}jJR=GLU&XwXr|dU|O`FF@O6yS;UDu;$ zIsb!$)l=2is|&|lopr%>x+YC(?U_>I$gM;@ftkU0mUd5`)k;<%l7#~s$?q7tgR0!H zL^`ar2fqCD&`vZ4AKb7)2y_q9Jv<$j*Wo|#ccC#^wG(3+J=-Y%T=ro#C2*oLe+?AdyweppeQV*W`LtO^F z)~Z?Xo4Q1}5~!ujHW>W-`W;EzB%0E8mmE`7w5rAL<(SV3i@6hQDC4r#ut1vw(T>&#NaROBX ztD9zYAJX0OHC625oUA5341oWFN}iW zI(H^=d;a=l7Ds--$SOYP+4?gLIDAr(p?5CD3E`H$*o<3ux}9=8(d*VUCEn(%i>5+> z>brYu_WefA+RvEwd0VwRt~xm#f8rWKk*g!WLtA%pSiI0S>*kl-U3+Tpuw`DENW1k9 z-;~7lL0Dq%qp)Bm^feKGV@i!#%pcE4pJgx7&jSfn{!EG1ibmq(Qcc~;lj-D5Zpbfp2KFo7N^Gm z;@YFsSzRbk!nNl_lm5ckNMNxh(5M87Y2(1{-mZ^kp4J`0cN)*kog8?Dk|?}Q!l<*IrMkcS zO>7{2l(#vnSu6=U^u;{hV_zD6RNK3}v1xWV2Tm9$KXKl1{er^;6MTh03eqnCAmQhM z3gYmd`XwvzG^#pYfv%R*;gwxp!|fD$KGc+MLrpP90l)mY1&)-BuY?I8Q)D8P-rJqO zs4%iw_J&zF*UO~w>eBMVW6@+~s&1`;i+_CA)i40qLz?{`(<{-VLpq69OEG=ekZPW{Q;-#;LwL}QBf zxtJUp)q^k7KCdf{rE`s+_qLjPcpbMoxzQ5a_$ib-ig?NPs1eZZP5XRWXOipPN{Gbw zcC&C*^6rVB!;<&1>KcATeZ4g!_#tx0qXO?Oqj=bh+K*KmOoKsA9DtF9!a>pE@{A)u zpFk|aRRc!Ezw~RX0F!l=pwc?S#qbmPe~!CLeOo4>@JumnHyHt=C`qg#_s$(kNm1Vl z!})#}y}ZPNVzhCG9XB&oQKCH|1+xen!0u8SU&;5@q0ZK>ImSB!VQ;-&j=GbGqeLT1 z0iu@#eVFIse#))#*c_4>megO$Rl(a(-5K*03t=Hq zzhDfp=tKXaCjFpEnrk#1wJOQwVnA!LfDkzE78fnD5w-ta*&Bzp;@XpLE1GrKzxHC` zeojS?mm*e0K`rZ89xAeufF|*ThTkC_@9;SLIZS?IYM;gbvyhCteoWf-qPmxQ%Sk~A zM^o9-`twCt*1vZ(2S&Uo%H!U9Q@ltPEfmn!zh~>ARnEHiGFhpdkPj>FmEo=JJa-U3 z8d1R;Vt9}`_0J5SAHm&xIF_Xn#A0~sjZeCYSUG;E3l(#wrxHYgzM0(Wb!~94F5bm( zWtiQ7>KW<+U#Gl0+G~8H(v5yW@EW?~x4m(80Uw?{L9v4WfHM+f9AT(tFyUaMyyLs# zU`dV7BUCFoMcn2`Gfrt8u0plgtZUTfMztGHqgqqzW|Q~Y*eSA!l2pY|Tcm7NOM4d7 zjW*yW`~LKI98u<sM!1bTYg=yQJGX-H-#_IjF zNlF4SU5Wa1ZS$5|+x0P<*a?&wZP(w2cnWao=1NpL^d?NIg2-!=i9DqR{yb||vYRVy zpzBvpjL`7sR3G87IOa^abZH?mRvgWm?~NQ-^$2Z3;nLyqLXD7W@Vmgpl{K#0RGz_C zoM%7;fSv~l=ldznicHh%n)F&9dXKUxcfnMc!!~~CW13uJS;J{uTCFPvJ!llKs2BNk zM=~kQXoOD&lYNr`IZ!o@YhoB;2Kjn-FG!gE3ce)9(yu($c9sloOR`u<{vF_Dk^=hv z^e!VPyA~{em(wi>E;40iw0(aUso^ukkEmz-v-(x%#I+ z#ssE*AYA3vr+I}=*5~a&iq5>&Vt=uUXU`Xu@~Kaw9?B9qPZ-5y>hVU| z(xKdG{aFTdZHYk@lySByqJ5-V>6kl;U#c=}?!ZPx?e&#sc=`Lqbe=(NkS?}ZIa9Rk z9|hKjt5o7;t@-7zR#lPasjMUG$@7Zynf0i)=;5 zC4%A>v#=RTsmI-o_DNr%5)!6IQyuaZq(es2Skmb+uuCW$qg%=trg zw%>n7QNr&^MR!!%7wYl|6dNt|uym>GyzJl&I^La1rSU|QulduvzLq2HPTlF+`|=*U zzbg_z21h>`YyhQ}u%F>O>jm#F!2zz8H4!Kywnd%iz&RuPFB8yA@OZ@@)*~U;nMETL znI)%oZ9F%Pn(gb_&_PD*Av0jRr*|qcPhu3}+Yb44G~b#gF{~v36dA`7zhvwc;bE7~ zmo+*TCz?*^X6c`8w`lZ(yB)~K3H4%)gcKm`eUL(fF(ftxAV3RvH?sP-YOa~IZxKtO z8cyxc?lji-SFa62v)A|7<#fEfP}`4o)i-6Saknxwh*aP(VIjr)d9CSo^Fi;i>z&Jv zDZSh>iJt6PKQ<{>RIlM6M@`fYe{-+wmkX2dSbBV8G$gEC&@Gyc9h;;^tx!M2E02yY z#hr3P-uKxGf^~jnMQdjR)~n~s3X6;k<<`^r)LozF6q@|aiK`cB>k-cQ54kBdD!tY1 zzb-RtY;U>Coey6Jq=`*V1EgmMWW7p_%|-U2Jm3F=1z-$Rweu`fq4Q5khn36Pmvh5p z(%Gd=mnz)U;VrWjwAPw>Ew2|eJIxxYH9jL?Ulf}=p{&4#j9%1~`PEQ)-%{12G3Yi3 zZ-NP9xoQOuA*EXa!V;-5+w;u#3+w6+c&u-u#KyGD#c<=?nCS@NFq_1n!1|<}WBO&~ zGAPeS{rj0V;ikZg0XlZ~R#HalX(X5GGR0k*gPL*jdIH3DTShmaF^7GWS9-Wxm-|;F zv_jv_90^8bjNOAEP&>nHIaX=NRoxApAvRlTAJ5BcB=L_y@j*n6OI7Dj$$L*|OATAq zzQd z2LB8hE<>|#W>cZ1zQn!3BW0@)FM-~U96^tIRy&Qe8;RjdyYf6VCkqlu-s|PE=J6nw z^8gCLL#Iv~`!lJZJ^WqqR)1nMB=qYX!-JN z5#67*QuSKVM(T%4W63c6pPuE$*_c9v)N1`5CCNCIUxCKkg^OP(OD1p{8FO zmaJ^#$-tdibkz6ehFp5Mm5h!Ww5`Q~8%eWPJ)a^Pbj%eW!FVl72;stH+ z`RX86-Mv_LqvCH6Y}+4S#SwJ|M$pc18d0U=Q7rXtt617?}jAW)qw@TYWc$rC;<0fbC9^8W+IP~H}$*bMl zH-c)fJrewJkF_SVFpctlnGFhxIL&?2D_A0IrN9QH;rtH$Fn`)UZ(AhsOztVAtHPw; zZU^_5D@yrl9;aHz<}rSquipn%eRtvG;vQHa`qzo-+uzb1WEErh30)rePo)C-grpP8 z<6Il(<1c*;rrIR640zmUHPmacXZxi~?;`7C67^3`3aSF&uMZ6LCACeKKJCs` z*6tq*^u?EG=9VBlT#4YX*d<6=_y=uPcHmQ3svxK~jfzMjh%vTbMKrwmL1n30mDu{Z zKV51wjKW&qC>{Z>xE+?>v_m3FObw+z$zf+oS%ln(S=3lSU z$yT~?(Rt{G$gO)EoA{*uh*aO08oB9gv_N~&gwp#sr1xwe)S$)mdo7T&Cd@09&XVAq zZm5fQPyGHHVw2b7)AhXvh5c8qyv{na`!cDv+fuo|!H~#N17FUgA7tLg;rZf$>Bw>^naz@{YP(d?9P(E7dtUx%3IZ^M7gKcC0gb6Ps@5M!|-U@Qu%RLvGLxV$Q_(!;?TidRzXe+iK zuaA|X;-NuDwA4+or%ye&R?6PAYn94_P4VOoCZqGGO4TK;<~GqJP$n}+P?D!3j<4*e z+^vSANn!vP(Zm--q5SFKPRJot$ z<=hXKYEx_TXc;`7?;z!970vQ8QuFoY#d6I;#K^-`hsGY(j+iWTv&7GT6pDxM$*tw# zc486ac}Y;3mD%NVt|$&I%rz>?)hfiydKSb(6{jY_>DTmEG_GF+*5qUGalDQE9iH>X+oxq)7)&^*isAicF4?kk-WsXE zmnlWLG-*AHZDyBaiQ|$?Ng0)8b%HHUU$)DQBb*kKQO8#jghA!%oB*h7EZ^6kQ4&zu zI#UL&#uzwD?S@BRuu_%%IuP8|2pJ(3F6yR>2}t zvZK`wkHiiy{{=`xbM4+fXOgy zMTNet5Ty;p5bCDNOz#y6XRg~i%Gh~V0TAK~EtaYl6Kee66y$C1=FwDso=KAqhLl}J zz#EqaN$rx096ythEc2WMl;4$ohfv4%F*1FN&mPT)*A-U}sM~K$aF)SQcUEN1`(c6uUP;Qh3_kJiFUeZZ1TyZ#JUD@hf_L^eguKjnGjkqLHIvQs)ZEV>)LuMKe zYW^LoVm7vWBHFR2u}oA9J))!!_ts?;3_pW;l;9IlmlM?Cw%d-L4l#tp#n$NB17G~* zA`6#T74=hXi*}8@OH~1N2fob!&BGAqThC}al+Tg~O5e`4if7=o{BH}tMWzgh(qz!j zk^YtbEz&_(L{iWf>Cyx}J)T%8_^hVC56-m1lX@l_3`IIgC!x0bqgl%)7KO|@%8zD= zILFc6ef>J5=|}F2^fVpRHp!LMvU$d5I9D>KOtz7>ZiQDf?CfeXA0gPlHA5#Q{ktK; zTu^YbJgCJbYlSh?V@jt*FLfe+93+S=QG)4h^-4P0v_siBNw8Vmep)xC{LxOBb0MAx zr&MkADteL8*5@!ym4eaH>|9oX@R=dg>66?2pNXaGTYlTdP?O*?|KWIsHN9)wTJcPvs~^8wv9wO%6CAorp8F)d z*dT(cW*G&!8&R_DSJKC#rJ{tqi$#wza>|{f1odiGYpzE65%q%T1JuuQb8V^Hocqze zPw>XC9ZL}R4}OJ?LyuvFs&K(D!!gu_I}>VBQhOB)@o?;M<~8wm2LYvIpj{Z_$iGy4 zVf(SBVLJ(jL2@Ji4|{JJRp+v-jRs551Pu^0xDz13EkJO0hoHgT-QC^Y-QC?G!QI_m zCh)!NbN0FCTZ?ta{d>pQW6VGEozmUa)zwc`J=NVzn5VNeP<1}mVBe75tVLf~poW4& zzE#C9l7g+2Bb90#$%KM8Rl3O38zF?h1)~!z97?wAt^A!BRn~Jc=6_ z?QNfP6f77nYJpB{)Nv7+HH;wqRpVPw?c8^5{f|(Gze9OT33WQyNIyha{L)h{SMAL~0#MFz)aVs8&5qE5vS4(x>pKw?5MRLk9x|z}aJ((~~ z^LvS&>I#{aQvZ{gii;uoyS$$R^ZGi&PY#3dWt^7V{!#DuF*2D&@H6YB%?r5* zVJKR0iCRdR=pTk8kj*2xd*Ow@M?W(@>i4!pn@bgNF?fIL_TNiNBSJIr{uOMA)|9zzNzo^d~i}C+%Yc_7+3W91J`}<Z(-buQU3V6Pdh`$S}@3 z;XaWP=_=Po1=mmJWtY3_3{l624RDaL>Cm6>0@GXcc_{vjiO^ajlYJ*wh<$^aChMv` zcjBI`UfN$&X9t^4Sy ztHuy%bkl<$t5Wn%eS_sTV!23|=WO{&%VXe}8n2?4vdsx_CcOOp;&BloW+jq*#z2e7 zX8(k?x?K2O9q)rc^PmzpIMLr;3T$AF?HWe{?Q+%6<@HGnW*LWb4`tnbq`l&E#Z&|w zy6f2nm4;WW0fB+C@+l43@*{^&RI;Ji#|Giv z;FSD>t}E8?ulX9Z<9c-_`D|-_9q0amj}F7U5&QCV{lczjSQbFkFK0<+X|uh9w{+fr zBNn()VKk{t@cM)cqk3<;gspi$7@I@AQa9*|;)aS$HQ#-*B_~#A0C}TfV25>awa#RP z9MA2(X670J>p9Z#>N&6L?JAo5O~nLqKv%*sM^rnOIVPI18Vl3jZd9%{5?U&rhO z1SIUGX64Pw<9S~iu2t8wboqA4viLDuQ{S0a-QiSMLSK?Ueq9Zm)gaZeW3qvi}o!}*UbAEay6dqQEb|kuv_I9ucnMbU3V)QZPlHYD^epbbYf7V z4E8fBJSJl=-41Or?!H{~QIT z_~Rqv9OKZ5Z*Xl1sGB`w6ZBmP=^;`>e@r6s9K{75oBg+f0u`{I;s533flADcev8^O zG%5oJrZ~AZ5+$NW#^Z6vaTNCi27ESOTCBR>Rs=(23Zm3I& z(J8Nes?}bM{lFL(`{65k_XWJ)R})o@(-#8Boz1lKT>YKdQK0K>KT-@NnY>ElM{-rk z;$Bu-Q{Bm|h zC`5SxrV(*Y!u@E=-MfQ!@1WD-owCKMRGSv*9@uF)nyA02b+|hrVERv>_1;H*g2v}0 zt&C7vDuEb*3uGqRE0Agl6bGSTC4G~$DKklP`zF{56eiS~KG1IKBujTM7p-%+f}XID zQKIIG#L_(t7`FTMHQ=LH&>u6XFTkg2Oox!-)Y79(u2x$pQuo9PXk<)Nd1m&g&hs^ZE}BS6Xb#FhAAlseb>FfN9HA|n-fU)Ak=1dm3*Xp zs3)1wgT!0)xKUCK&K7<46Xx;U$R!%wwlvVEY3$^ZL2o#}YCxf(BGdU{%g@tWJQaLs zmo&{mYJ2!m?L8g~1v)KB@6=VXpN&p#nPf&V5XDfjRP(89Ei4cIn_9a=N(Tc7oZL4S zCyILzk=f-wm`b@)^zo7WnIdSK*DtjHv#v?PX96$oxd1*^DA>(7;hDI&z?rx|#}ksN zIsD&?Cp~B6ZIeE2x7a_S)>U3Mde-Mi`i^RpE83F%IL_$WZ<1Zvxr5sw2C|)zDm^wM zMbTl<3X(h9`|3iGzbVm=(f?|J0Gs3;1@vhxd!Q9qg^_%3ENF_ROn0Z>4z@b9J#EVO zqWw*6|E0yyG2HuK;oxk{WZCsWSSHe>aUUPq_0T^WPxEU@t_xfguWN2SJH!GNC>EmKltrJW}emdA$|r z1YkIyv$T1UUy$yh+(44L>ycX7w#8i40PhXc1%>`=miS*?0^;M60~I(x!;vtm&Gu6F zlyx_QQzy|tw%WeNt@4pDl3Jx$fd%fb=IXx;7``m{FgP9sOD(X{$04texbS)Xp7Bvg z#p3ew1<7U0-BD>|xna>7`6(H0PPoW`>`Jr=o9&>6n@Nm|;Zj_8uU<^e(2ihhvxBpV z9_A|(_0mT^eEMv8W4@OSJr1VYZ;xbjTN8>yzuG{W%Y4hm#ZN1%j|gv#R$1W7DEPp zBqtJ7MGeHC-Z7%Jn=(C-qfmg)fvW}Z;9spA@Wdk>5(DBZ8G$_T88n~fqwmQ1uoZ{y z9v&sp=g*%dz}JuLbcQm211PxZnuR4QpozT%-#P?XxJU@MIgEz(iGe#8L%S66x>~&5h<^N zN8q8V7^HYgKzQ1=PENm^U2A?bf3qLP{hrjP% z|Mf(029oh4__yitpO3x5pdSypN#Dx22u%{P|H!B9eUhYDW})DgIg9Hm_$NrLsstW1 zt@E+_P_>yP=qP|sPc*#AC?#6p6JA_p&**|_Um!Uz;FLwL4XOiP$E#@fH<<_A8A16a zpH^0zt!`xtdIeovb`MV9*4o=XVhx%YoPbD*m#{5G>)U_StW{wYW(!uHzH7eVF$jUf zqLI=89NLmk*ij$r(!z`BD4LLn<&ess#c~S`tmyv{&LHA~JAKfboLh{Tdc0J62nZQe za}w{nX)fv|4;aR9ra>3i4Y!YBCg(vwin+?v3C^wj%3QNKlMep%4t@^eb%!CG`x8;Q zs}af3Hm8-4e1rXfsa6(bfs7I{qcrAHk(wRjs(N2qNI1lh_SWe@K%7loKm4p~h1A6v&{SNw0Uq1OT6@?Ui3^PbNf0aF^_&MgsPBVVb zC)^n4DG6b3{TlZy3+*q!a(YYHee_R4Ge~WB$f-)M#Fyt64T&mgIwEBpELEKXsP5kE z);AUdQH1tdS$`ffb(Y*gme<_TTGwfwe`wm1x5PynY9ELrEBKBG;FQB)$J6~4JziH3 zLHrVAW?OnM5Hmwka4IgTU)aJ89c}c9C;Q@Q{ns)l9xZy_2u#&b<3TE{w_8y``bS|K zMKkfvJ6nx;*FvJWF`=oE#=tO0us*Z>MOOdwR?r0UX%3y7&@~_`z)E}T&|$+D*Ex2k zC_Wij3{eY3DY3!VNdpBOQkCaXo|fb=+E9rI(djWwM;XMw@C6y`q`(YOP>cR)m1Mhu z7d;0~pK<6vNBlrWK7{%c>@OJJC?|f<&Ce9e7PpzgXM2N&_c7W^VD%c8(}N9UgL6$s z@{2x#9?qE_tdiv)bgMmv*nBUtznQD5UovL)*VOiKEh!3)jZorZAu`rCR+1iA?_<+e z7wOS*O0EhN0Y<%uM-gpew~(mXn*g*H7{E;(@h1MqnRRbhiZOBdZ59v^V*6yYa!;>c z8+6{T*0<$x-$$%qo5LaIo6Lei{!BBP>nP~hNyyf9d`s-N*|L|dBdD$@#m1Ynz$)vW zyHFO(#{WwG0%&(Hs(oz(bJGuVPIq|t(DKsTWkhqrh(^#z_sAiv@_smZKwT?K6Y}P% zG&+q@?a1qD%ZP1p|3ldbfrBaYkrBg?F(Tl&z9o`>J!k=Bw$34K4@08YWHzd&fUw#% z1F9TN5g;1Q+zn^F@|EG~_jsxaa#JFh2NDb(UPYDCV1}CBr$SJ_pvPyu|3MquS-^*w z_=n8VR;)?`FUYlME2Q4W%t9wDMohG56=ah#R#w^Vgz80G`5iSaFYNtk68FS@Sa4O9 zIk~3F0FUnbCwRnNNN6tQvz^@XwMg8!+Ek?a=uS7Zm1tx?HF_E$OlS?10sJ+?>K;)y zPR*aR6ILY4C&g@4cJ$AfSzQ~oCr-(iD#B2|?jKDX^k1LS@NMX17Oc-G+qzLmGF3yV z5Z5J?R((A~yc7i!k9H~H^|PDAjFoUlok9<10!P<-Ww^bA7%7#oYHr$jSC#<#{GO@* z?v+?EFd%MLd~?Z$C^s&SCeW!7Ba6jgt5yYH#szDI)CMalag>XTfucV#^RMu|O~s!c zQGu)(;9t>PFp~iS^K0TzHG!-Jq2z2hi7O#eo}nN0+(2d}Q6x_UgzU?55+YqE`JkEU z1T)0u##cva`=Civ>;?nG*i&M2*w;sHUW26ANK+;6OrwaIWxJI6mOvbDYN;` zXBP_CN}}qds=raH&lxC+tOlnk-!l#aA(5}c+;c!I@wFa?yPJWZq5sgM8ZAUi!>U`5 zFpeg^Aa1BzhH+3NW~2xgu+fqcPh}^5A;>p9%@G1*+n7!tSiu40o@~X5PGn5XMCHT7 zIV<33I7|+&-PvCO!o-j0TKOd*qeq{q?6{->Nd@NYubwToyHq)lN( z4PGz&rg<*MQa$NKyMF>mL`buCWLd$|0U^C(gEXXL?ZUrPqsbk`i5XdG5KKAArLM1X zkn!+n%dYRa@2~K7ze)B6V{WbgusfLG86>d2&z6$Tw5Kb(Z-sr2%SuH&G!qGjPE*e) zfk!8nP_ulb{NaSha}bn@Kee)0u((>#2^V96{60g{PxBvPV^KhRE>1#pl9O#hE15w+ zh#`eYAEQ{PP)Xpjd{W2lck;Q-Wk&kv8{$U8>0+hqN9~eLfQc%6W&~8ATpL&FpKvNQ zZ%W*yo4F|gHK;EMq)*?BsH<`x$$VhdQH-H6AG;t+K;G+L*M1W(t?cf3PcwWbaOJLt8p`*DW?i zNca9;1#eIw%{eDYO(COL^vNI|n7|o*rnuSFn( zjAE5GA)xpuU1u;_s1=i0wNfV_qUIuYAhv91AP3GL;!~?)dcuWzI0fx-Y;eM_M}tS) z$VO49U(x{;od2ZvLG4g6(2sFG70PFKH>IMb=bCU86b|Fhrd*#(KHP@AnW zw4$xpg`|T_sjk*&;Oq*aN0JYFS7FOeytw%jQjGAUb`3)3G3l6c>v@Aq*MhO23`(Dp zi?+nLKgDp)&t-o7>p5~QGzG=ESi~({r=#XtC%3E*AWg7X$IVC@d&srVxVcA8DfB=MdxVGPSLR9|`(5q8a zbIe09W&|+nUrCdaS@gLor0&*tvO_Gb+N%DAid%&`A}{9Yr?zI#Q08$SS8$4m=zpj3 zd^CwGQzVo#EzU>FeA4p~J?|Ns3g0jcX4{{N01p1xD>S=&668F5$Wc!P7`O#8O^w*9 z2|pM^`imCVj;e&PnWPLprCfN*+H0kCf6UyapJ*aGCcsSZE$yI`*;Z62 zZA}*Zp6)(n$GRAD)FxOJro)h<6|6n9hM@ubRzEwpJ!@Eb`;Xr-nhq1FNpy zHq`?~`+8lty(>dIaz*?$P{uNIwc#JB)p=9M4M)Hgp9;hDN_!m?Ac}+U#N1qM-c`JW z6O0$425e{Ms??(&PFO!vpKy{iY&bjh%pVWy{n!l-j;2+ar}8~Q@ilLwRxEya(751# zNpP2#DSEsxN>uC3zx#&VN;TRY?at#WtS7I22;5|N$l45s#Y1!>$%0LY$Cs*zi_W}k z<|AbQi#GZ~b4wh)ueOQ~YUSG=(a2UCg&^mG=$U7?-z^_bzDmOKu5)T3s#}p4NcurY zIjd6EmX3n2L>Y4TGt)+neI^Kvnkvm@QUw;RnZNJ87~mG)$(E=n^LPOF(&PN0|}s*=Tt-2Nj3eK6=dDUl7U5__zTG8r&77L_0I3L?&;I zO5PdZ=bq{pD!BVMDkUMEZA`48}N8ByK<_P-8J(|OH~^6Jxon`9yH4hMs>rIbDQJ^LEMFQ9w%p=RWF%J zCc{5&DM{JP>HXWfF-AdX5%u+l(*!N51zJ#b^vTfEB@1LVW~DSvvg`pa4<8y$+A@CI zm>wt&gn#x@byH(ey6=OXVLZ46hB?K8{tp`rB={e_;TQongb3B1CK2PO?ZKw0)D%^o zPGXjZXML8+E5g0S^oqg#r|{;BWle{j$FWN))8;kD1U9Q=z8^oJQl_kyG~xhO%kSsQ?%xS>zCSva z+R&&vfETEP?H{-0|^-1^0Q)8p`SupkrhwOW^14?x9 zBy92!n=4#e>qw2A;W%QExS>EfBRPV737h)wZY~+l!(k|DgJb*%$IwD|0j`5FcM@a3 z4dQyJ#6llw?sSfil z`}0Uj{r7HiHY|~%k5@PHEy1@X<@E?8K>3Tif0wXfAab$74j4yqc(_Ds9QiDSFd&W$VJwkuz;{jUL zwDJrUt#Y&ID5Z$r3mqt+O?zc>rQ!nbySaYQ(yE|oves1 zXegT8T+$r7isXA@iZ*N;42Tgwf`acI)r1#}t5dIT_b8puO0Cf0+c<>g90Zbjx_ZR4 z_?U6v=>|+6T6X)lyBtx26Lhg@I$oCC>5>&9|0{S85#co+sA4roYL&2p_;`%(pl!`c z>p5W-E0St$3W;OY7j906@Az4%7%^Ml(v~2Mrg6~*$#Odq0yVk1A0J(n!^m~6_=-=sE%{Q06pE}^i9}*C3go{T^r5l~ zTi%|ER)pS-9k)ZEGBG~^MHS|$J$H=p+#VM4I46i~eWTTl!m zXV+eB{SuG=eVD~Y&3CmGPi|mdkR9R7s%D=;5=&&EXw1 z=GWt7(ATnbYnTF&2qHoiswU{T-)ifKt) zPnSkEoc+`{HT41<8jh47EmC$Tuh5nxI>2WH7X)y}Z@O*M>`MA%V+PT#9={x;*&WSi zx%H)vwXxY9$C|JqkI78$s3lV-R{zRcx}F$o*62IXCROLSd0~Kp*c}>E2~#&b)ov_Y zd#x~!dpIAR-JL<-Y0*hF;KUCkd028IGkGg6u=j(!P;@;`l#}Bo& zPNgrknlGGbbf)G9Tg;nB?lB7WgOJ1;Td2>#0Yl#rRI#PYOc*P+VHGwwr?E8-O+0uaMS;ZVnHb$oLQvC~#u}UkL4dJaaxBkbDqsdyuk6_@Ci4mKtoMji{n(f4e1cgNG&!h9~j*UYuuS&}y zz+amj!Fcf$4cn+0vYR75KsB^3<}lWQ;5J}5V|O+}U3FSvo8L?m_TmfPE& zrQDXLP{OzXl)Jc~P*+;X>lfB|jpdW~-VEkGbGyXuevrsU-ThLIsRSqWS61BPV;v8< zX5wO!;yc<-N0nyX3r* zU$s%j*QhzO zNj4W9qx5~pg`^W_Dj8QH_L&|3}O zeAh@0Nn@6CY)-Tne_Ck?(Y;OYwyJ5P8!eJ;pMHGOKR8dPE#ca`DT&WUVis6aMH76I zrX?J~xVzYjFiCon(YZC6k!uipI@4eOhPl9wwTbDC%ChQYxej&d*(tYKspc=v#L?toHI2Dl6&Hr+V-h@7Ct%e%2OC0kRMDkIcnxq+<4(=>NtrzkI&f+P<8j7*?;Red;mU8zBBg(O z@Vn*_G$3Ya@1&u7#Uje6&RS#xJx+X!(tLV<*~OHj=C@OWeA<(0R;1qz-0rhPXexH< zQsa1O;NsfT@L^{49j>eJj0ca)(_!~XPf0}IV3$dn)LXCzn?18C*GLkClW5vj@y%~q zm&|2O^%GnmBD2B=cEN+#=P0u_QTA36@xf%t4C>XXTPx99iW@H%2S=8&21V7l4;An%8-OuTu8WAFurjO1SvAl@yitybxUoUtGmgClkQp~x+{t2VvR z&xxGk1%vI$ayY;%buGSFrT>d}VI1#N`R}s;{`(_)Jm_M z#i3F|-96+SV_P%!!c_?o*;byK!QE=hU>99j(S81jn6=un*&s%i@QiW7` zU&M)t1ZyTU${VMRkx%&=iZL5Maw4w7>ga>i({30|R^_&pG^bEH5h&_=kqcr^9r=>?`G%uYs2`b}Vv@(0(K$gJNXyI-vo!Q+`7p zI2}ntcb^Iw{E?OYt8=IfMnkQZFnLuZ`^ZxMKQyf4mwrJ<=p#Wcc z{M*|_eovTX|0EVP806*7OSwuux&a3k(I5CTpJce~N>xkg&Xr6(hi%8kBtr|pp{RBW z@Ymjd!ChP)aeZfn#dN{jA`*w(c1l&~@}(j*4;IqG=9^0b%g?2mnod9pw;_p)tJtFE z48Qhwh9fu>ZCY^pdOU`X+dHVp#@hjmXJ1WdzQJZYH?q7~{?>5ERH z;t>?J>3E0gpNY49-k4p-baJ41f>JBJ;6~fGCIbnzyk;e7TQKvA#Wc9DM%* zoTNd1HGwy};TI!E136Qp>1maKnI(wi)F(@BBbriw*cxbM@MR!tbU-gyljd$0?#4RT z)fXPAqj6@z!i3HQ0LAsT3HKd5NbxYMvkWT?$9_ZoXN|U{48+NdEwCJTf^t3{!d!vrlH(4;0VdLr3+`(s#o$y$0 zBU=RJ36XdtYdh)E#mOUQ~^vwYMg{ z{b=1G7)RQ&w?r~rZcnQ-@YNj-u_;~QLyeMxk%XjH2eQ#Ta*NjrGnh%hAP zpBc3`<%T-C9aAf-Rs~!on%&^y%y2rBB3=|IfIxmHv%>>`v!~rZDG+BH zN?xy<#JCOIL||=AckCwisQD9IlxtOc^t0`89%5&AFcKAf7$(FRN%^E7#!^=r7X45; zxyAW{PRN_JrY`*lkAc85V+Waa*HYFGz)#l z)@6Y{$1hjr;Hf0AtK{i^ z=!5A`l<<^gZ#pcN>bAv&>Yw9hQebDDL2)H(uovE^f@|gGHQ$&i?}!mWHc>0N2Ko@o zkxFRkBrJhDxXG+8^HqZ9>a{dySGgk!F4n7aTvX5@x~f3*K9TJ8Kz1oBc-|O)zjwo& zPWR+t<&CEK$vX%#JJsfDV{_HxwheEcFq<3SZ#Iz^0eq#joX^#vE1~7?YE5mQo#cX* ziFUkwj>EyyeB|x|8ak`=)@M5?mhUe-?Pma=8@)TcPS5gYkyO#em22IIX^XVDIwAuX zd}xNB;@MyAyZw*u4n9@U{`L++s0LUvg;;l|_905PI8-c-H2SI9z=4m()LrMmW$Ele zs+eYL$VcR@`&ps-&*m=QkV{=f-9WFBcys^1eg_=qnk{~`pR26MmEq1;*#n%iNiK#p zbA$CBEa2_Wxd2Gv)Y3IUL&MImHNTbxdp_2fNd=`C{JD3X;S9m}Ca#$v+)xQw3JWJW zrs!)lZF(w%Ggrsn(_MUl#-LZT-#7DNx(e^lyZiSFT&WkEtbf^k|Miypp7ivllnj&e zn|Lmbf6Q&r^}3U%a1E?}wpf(5^n)+MpvV-aI5Z5ieS4ntMr`l=IZD>Da$asNyx1P* zOTp*rhrvEK+mne3&M;iIQf;4D`3n0Im>~9@^L7_8D7OsZE#a8}SQbn}t6C8-a0MUm z%UTsPd6K>?)!R^P4idm6z7AYz0K#JmI8^P!4VF2ujqu-%hhnISv6vo@3ac!qlxHfH z+CLao1(Ng3T{*36y8ZVYyaZo>mI5h&J*zw_KJzw zz?~!fu@$B!m#x~`7|CIE>aClbw&|)IC2g`&A=0;89c510u#w5JxGoY$k@4I)f%hPo z1V|VC7KmC(VuBVKLavW)LKc{O>)rs@0a;Ks)hY2RZ1Wle3rx>+p-(KHfX()4L;m_M zZpA@2vhCUJrhW=Wfy*?-(&x3MkFSQrO>kTQS2^fKiyr;{|~M-)^@p(ZS64MSxix$Uk|J3p8kGcd9a&^x@7}o6Adox^;s;|vyGBdnruaO zb~LO?tUMr-@y+EF-StMXsYenQsR{YRtmtrn>e%*ARdXD6Mhw5mXn;$qHs?d3bYQCn zy@bK$501jrew1H3Z&v7U-Id~G^ECXXH`!KoILV?_U8pb@Ir=1BF9}vx31p|H$rWCW zeoK3E^YD1KCw)cruq&u=_vSgx76ykLKt>@PSGbLg$|KYPB^%T4$1%^@&9?57ux{h! z+=5hLV?N))(%&Bs!A*x*oVrI#AGH}31R z(aKzMdWyjVkiFfCl7cd)y;;6m6%Gthfcv9{RAi%=OUwe-Q+coyS2;jI*d18goN5{) zy&sz~rc~2drfk&*jugqU=wj0uq^(jFi>1~e2C9E|m2XscZzr=-e*kN|nN{!AYBlaz z82mYlir-T_`*r}}XFVqR^vv$yTWv6-baS!HRwlTUx6p9aa3cBN6weej@sx^_YOEyf z7*xs`g>&?W@8l{QOZV`#mA@Xy=A4YP*p*A#y7`+(Bi>Ilj$aGO=m`TE@m&gN^4X@D zAnB9Z`QPgu-7c=jK1|tqA%)VQ`Am<-HAZA;IIxGd+;VukE!LMaYB1Rx-B;=;rxWB_ zDk4SY<~j+S`Jiw)ci{{q+fr*9$8?*Q?tlZWe}hura@P43;iaWig}ZRa6Xnc zJ;q^e$xqS)XbZmZx1xR+-ke)7y6JB{R6yDi?4)OBLNc@ay`V72NWs;@iZ@VkO~>_e zuDEQn^LEbah*q64;VFlqjy5{G?PJ{Og==jDTue(xM`qepNcM?)dfx z!~8zoj-sfTki5GvR~Q@lTz10M@PnV`gd$AtnV+7|+m!a5k6zNXn(Ai=%{!$6Er*%r z`^#f;VB`D^lO0E+LVn^pE}?!hH&T-VM-+|>Ng$3lml%$WlXuN|gU3uZq);3I@E3$f zlP#owD7kbVEop!dG#%0z(+s@?dN=7CGSK3-=+MNf6Sej}rXAE)n+OIxd*N3oJ&knmlx&BAY$ zySI-zo&hJz_aTt}tV_b`i`&`?&&o8_=uYSeWo1fvi|qy@r|F#7>C-0ZuMfvcVZ9;y z0hJOd{_dY4mnlC;+Hm_cv-@NnYK2x6g~_z-;ATw~$$jM9zq((>8VYT_kai>BhV*}f zgb&W=4vh%*KX35Opu2lTEUsNmq8~S5s7!+B&tw*xe{lR6Z&RacWDN3ZDe3eB*f?_} zNL+V;@1Z~*jhst8)HEVxT>=sX-4dlur{nG{KIp|tEfg2`$?kai!#<)UUEvWZ787oG z_MK!DeC?=^%PL@#s9y$1{?`0|_hk}>J*>RD@o{vvqq31SCt7Dc&#`FxVK7H#b%E|J z^#N%+&k^7K(Cj;V#I-U9O&XQRKO5$s?HQ^v?{;0q0dEd7G()ssHrDN#Db5G_Qkqk* zNgSj_^d6VRgF&BmZLVqugK3SeSgC?pg{u%ByceGvJfDs%65)Tu@Nb!L(?EB3mlKu@ z!wD;4A0BCHYiBu6I*5sjf7g3vW@Z-K=Zj#qP)AS{@mI$y zR%r|d+eyUJjgxs;uKQL{8C3pEb<61u%2?I!+$~a!@v$!_GA341SV)o&?>#jC*UbI9 z%k5406ik7b zjYhSS&$(!=SMTKP*9qxz_+ZSa5}A0XY&s_mpy3@09doe=G^xNh!3?P)b^QLfj{U2r znnd7iwnu%7N?e{!f_oGJ0YbCDg?Xi>lj4y6?h(+Ze7%cCDlOUBLgu@kShd(^Jm&HJ z49COnLE3K}YlDBRFjkn`IUGQhnyNgilftHn~}8kIiqk+u!j zAkcF|4*R$tm!XX4=2XA`yJCTnO4f&yCMRS2sF|+RNKBg687~lCT3Oj3O{K9Sff0l| zfy-ZSN#>s;N1J>EA3JB@3rbr)rbTqDVe=H1Q4$+avmvI~nhi^8G4lbzyuashmydN#=AmiJchrmbjaKNsdOj@lLygO!8gCH^S7 z9F$NWUg7XO2Dr}wRLDtV4Fu}ozqIdh6Tux;isNlU8P;K>UEX){MOsEis!ADt{@w5fyVulwW3@5%`gTy~iRYEZ<)j=sx2n+++6~-l3#Hc* z|Hg6cx7@k_V6zDkV=!Q!)2He`HNHC|FZ)V=R<57=hf{5$Ue;|^rK#}#N3USTSvUhD zo-My#p9 z-nv?$k({WfnIDETa44q)dxa6&iMJP+Tlr&xxK4>$bC9^}qzCjSDL9e)c3#~NBjUeo zSgS4g0+<<*WCZTWdh>y013DM{*9c%WkN{hHj@f5SJ}bkhD2iTd;XsNi4=|C zloQ211~K?YUeg}2>!7Z5v-3O(`uo(bm@I*W+kvRCy^mbFduQgcCS9pMV_$ZH{MpgD zVon-(a|X&I=PB?)9FG+5j1-j>v8G5c3BgYi-#ECp9x!oV{B@GJAuaLS!#c_oYmh(~ z&Chc|xA{U4aybxUWAw-;yx>qdPR3BN=LSHHrL!XLcMe+dg zyN9;#)G_fNyrM^%KYx0ZrYyiXEj2tG(cO|t@S5)pBE%a1@H|$#t5BohTYV%t#b1Xv zZDG#0xj37Uv)BRA-<~*l=iTH6e&kw$!|N;4SnQr=$=JQLU@xW;i!&EIcx(Ojd{Zo? z(7EsZ$&UE)n$~{#{m{?PHNWWyzoB@5gxuM=FLs==OZ=9g>FmZq9DWg3k7o;yT*t;Qu464P%3h;V#FjQIzI z;Z`?oAp&e&6yq>?m}n(F5b;Cl;bh)0d@$+Y>ZKAJg6BcX`%u2sYv(TvJ2mt*jBq}8 z9sRccP_m_0N}nKn1v>mq;>t2cN!;HIsxNnzuZ>jkub-#c0)yJ8!eG@39|Hf}EQ9dJ z`KyrZV@^>$%4l^9;|8dZuB*{gm(%=jclQ(Kt2q=EdpnyJrK9u9F>0^Ppt_ARoFGqx zDdDh8x<)dOAj<@gP(me zK>6!3MCAhq#XHrF9-Zy1P*ymdd=JKD!C*350U{J=jn>lGVYL1axg1DfYLLf%DUvoq z5>{Fj9DY^Z{2SqsvZ``r2fe+Vki>(udh0v%ipo8@2dR;%?&$GIVHbM`b-adS!zjC$4X> zHR;5Hxn+|tGMXEDXp=||rg9&Yz*0XGc>X>s{P!d-6`y3leclA2O9ikKtf{v9Pq97=u<$t0QKj%ptx`Bfw+7FffsA) zoAtYBt>W+>m*QA~A!xQjc0Y^#Y;{VH0YC!x|Lr@#Qh{yJ-TrW+LAm~=uOIaONcrRJ zDwu}^EL+8v8K}79`3jn47Mme?(umwl!2tx(TM$lYsa<8wL7|{f*vypA ze83x|{&$dqZ${qH2E+>f-;MaUKZv>OhseXGA1&0ndwD%RAb8t8FCz+yyt}?*)2c~> z1Ly7OE3U2%r%Z@m1!eIU{A z_#7NK6&CXxFeOyfKaGqCiR$UC5hA1}3NzUGscvvb%ZM4(1E~d4%Fogn)PDrsELGY- zYt1b_yW7p7m6wYSUtK3fU;o%CT-lj_j|t4h>Jl>Ib6tOv8tDiCZ2xy#|Mdo61G(OL z>uqA)5xL2wYa#91>yv=(Ly8#TA0bUnCt&+u4U6`hT>e;An=FZ5C2N@SbWvB> zrZL#2TJu;2*0)@=urz6C^(~^OhmY9`X47Yx)cMOeWX%!q0%L4u12)c9w(GA9ulZUY zqLAtW{67z_TRQXPLkyWW>yWOm*|&49D-DlgMR8(FRMW~J#}~qi=jiMduv>n8NKh@_ zDa20g0ZCT=2CqkBO)+@x1#Xa2T2ajHe-E^90#pd4pCEFIiT!P`{Rkenw~(Tbwj{>J z#dHTdWkI>? zHxB;~TW=YV)w-<>3j&hT-O}(#cZZZ9-7VeS-6TP>xdWr3WbW>QB`{(w1YBe~QE^jSOzB8j zn=o`}Tt&=iu$R~(glp`~R5&$Id8F1O)@b844`k%lzt5xt$AJkjLle6$)R&n!+U6o=a%MPmB#&>{p5eA}TXIP-l?nT}370T!q2r%zg~ePcWytbY%P z*O**~^f7pTh}fDv63cvcx?!5gQ8hYG585qe)qS{)VUBQ9MxZK0Ip#SDW;rf+oW|Tj z#ckv?$WSg;`C~}vgo*uhI@cM}pNGny982)03~90jc!O9;-gn+OB58>u|9$U*`A?x| zN;UB@Ffe?hy%NfMJG&`tjiN-7A${UUlXZ70e2QvQnyrN$(x*oc+4|Ru70SGS%@${w z==D~fC`#h(uVwDZW$6OnwM(X13cu#CGqsHB&oE>Vc! zI-iIDM}_~3<)dtsAjBFEP=?o^xiZj^{;O=klhZp)8PAj}OJETaT)<}cds$R`#xdrF z2u1%~q9!S4TXo2LG}?r)OcX;^mF9H1AYy#FRG3Ol0J??uRNi&Va16Op2D{F?vP;WeGU-JY&h@%Tlo7QR@i20<;3&}ioKO(6$vuVyjUUnuUaG-Q-B zt$p_TmHMy#3QT`A;7`y`pybq66GQplsef+k9rqzkl4JfubyfFXvTmmD}byq+#K_W$lB!S5(!fT0kS$b(PP zCyDIse!VK`zET6$Kxz0f04~ieQKmlLg$9ZTW~`1>LP8?;H3Pn3e@i*0-<$79-nlCS zzxftU$aMY*DL?XL#;9TO`kT0T=k2sn@!V{MC;n{fL-=b_*oH47-TMbe)UqKy_s3f# z2$`1_^Igu7)a&f3LDKoZro5eya1A6JOETAwPW$kGOi;tpKI?5B=A7%J^CUXN8tL)o&<)x?a$sh3vhV$SGde-+NY|vp1Aqo@S*Cs zV$8G!lijHRO8KT7*V;a}wC5J{+`y!t&nX<0>S9niHZlZkDMsQy-a5+25L3r1w}ojP zdQTq%UGF}f&B?=OkVXrdv|l=mhqGL^yr@&bPt8I^JYHAEIg5ocZWA)-hTX`mHDSfk zCl&Vq#AHV4WlU=ao4#$g{qIH;Yb5dpV*R5>SX8Wd_MP$FQo-MlFqdPJL7E`N^PA%Z zW`en`>nX|N=<3$NIdd>Af1{%LKOK-VFpq?EY;XZOZo9(+6_xzia?g`nev`nK&zQVS z1?jir@K#88y?koi|LZt-|K!(KU_N9u4a1~E_nnv#*Q0-a6d&5-ZXbKHAofgs4l-R6 zK{(1Xs*flbs)|!KB=ppHzFB?T=xc^QWSC?l|njYP1SK27H zGU`eW@v2PBeQJkMUmx(Ks*)D^O+{1m6nA!x~ofJhQREPm;pDZZ82fzWHA z9HYaL9$wGS<#$GlIGK&6aiQ!^w$c%4k%!wytd>DsPVeb^>g$n2V$|s`_cyw@ z2}d)3(|9i}sOTNu_;$?lc6T10C!*VI9_j=JgrB)y;8iE|M@3P{$i(tV$-{ zC7dnk&T3)aY1ivH_QIsg#V-^XJVV?${t$>`EL@x`v^k3O+u}zWU`ibE!EU zlW>neTHuI8;^o+wYq1u z3xBy@Uv=G%ckQ(PHF$$;i0grHJwT16$RJr=S=bfIddJrt5RCw8Gks}u_Ho%h$ zy*gG>?&WIhlEg)W*e*9@1~5KDPKE19(~omo`a9*ZHiC zB+DG6Ua3_+@eW2D<(PZZ-{CR!Vk_>BKUJ&j;P)~s29H`#=b*rAkH{}p5~KcAgI5dY zvb#YFJz|ob#b007)a0_gAlEOj#Uzwv+?%tFP&uO}6I)II#9U%x`H zah))cB#I*vHPyO979y^t@%79ffBh4?heH`Sb6rBa?$jNOE_iX*9Kxz(~z7$*wP-r zf1ch7ocxYvu!T*s7@#Hp^Wk7j+@xU?*Wx=bV!Tx&ptFMKqF=JFB zx=ZT~=8kP&a!WiNI;cY++vDRF4>H{dRD7zO^r?;z8%M%ik15agR20_D7MYE?%N7si zCV79kZ6v9yZld5hLip3CPXaBsMnV~=p#bc;(B5r%tet}W|Cu`Y5y80+WSAV8QxbkB zs=&XxGw#?n5@7r}!@>H4#uy)-ngDfedSu1F6a2b{=e3`fp2}G#8@}ah=Jycl;&j3h zd>*V^ROf45{W@XurN#BLd9HHg7-z5an$3iFeHH;CLKFZy4Z_Ba&_&M5!}QKfC}g+t za|7^BaQpSPOJts&Pb3oMp3vrS&#`nW4Zf*58@g~@CFZ@c?wuq+C+Kv`uOaz&Cs<V#ff8i;TR zz1GlD&B)A;GfZ4_TSMaNu^T>F9lG`O*-f?%??fMz?8baU3*Skn_emyGe+@eD@)1$E zlukL7J+@;*BPpX3I53G6V4UDqX=edS!vC6t0O-?!il|t=EVlr5E7sz2U!c|Oa!!xL za!A$ZWVjZNJNJ}p^R()QD3dR%uK0NKZFsWIfoawbkk>1nH|enGol9icPWJDOU&K)r ziq*tt`xDuakzvoiSWc^o?%flUkZ+Jl@OOtbSr@k?2u0v0D|K`dSF`s=+R+Smc=E*7 z7n$AC;?v(BVGG_|8PLq@ZDEoS#~tp!l1PjBKizn2T%ZmBA0J!`T5*dHDMg`^&aj6O zD^l|A>DFW^FSOF4SNf3nfs!tcCayndwx_*Y;JxeS<3TlXt$iomE9ob_R>V(PJrdx; z+*6a~7Vu3hk$!%uCauACTa<_%G$s2pmL;6`)%#HjAS007U%C(zG0}?^7n3UeXTN_H zK!9~Pg#fM+R5;FD@1kA8`EMH}TFu6YrdqRLt(zr;Wd)B9k2gxI`}Wn;VL>FAPcx7* zym{*THybvLjhd&aLjj_%dd)g!W-&2?8ncbf%|(6fuK0yb;|F_B0W=%Bm32SU##%0C zVEMG#4O@Ms7a4OE`d4S0pkbmpy_PU=+0MRLi&1{W=ST_QUh=kIarq7@BY( zEY=s74##}X@WhgTt}ZUdm@Qw9 zP0sn;ke}|@Z*iVC^A{7jj`}4%eq3y5mJ|$0sx;i(B|jNE0!#Z9p5xe@PN536G^mea z=d=5tk#U9~#FW@+)-$)`z9p4Or}-D80g#H~>$^C79)!kqWO8@Ig1*C+@0C;r$0Q~) zxIfd<1$9lDybNi2EeVz~oW{pE6Z*JT;Hvr#TWQ(dGto38LeMvNjYm*$?g4PnNG;CbE|`t~`T=_gG*-bY|8ji)SxlaF%3i4NvV;rJb_OAoO| zxM|dxudDA0HyAxq155sy)!SDT&U1uvhvrcwt!=KxYEfO2fv;Y;ZSVHR99i4gC@o^q z>x1gfR`Ojj?7AVlAK9b~Py^!hb|uB)trlSJ<8X(lyUWPJgg8t1NI?wK&7h~8wpRzP zk{i3u-DbzEgf3KE2V)dEXZQHemRf>3eLo<*KSt_K;?7RVPSx<{@bJz~`TYXk{6Hjx zB=BKQ&l~|W^8ac+SRvl6t@y5vN5KFlgI)X4FO?#26i;|mQ^vhED%>pa>}GOOE*UJJ zYYRD3qJ<84-Y|c@FIB6CS@&QeP*PG#>bpArt^JL_Pt^_s?wUkIy0e$*adY!DzEIne z0Jicj5x_%!z=QZzn9}9s7vWxCj_ENVt{h)*fw&WN2+9cAEDB7A5B6j?P*b?P zRFMJ_s&AuWC`Y!#hm()+`kJjhyiTrOMZq4g+PjntXWX`6_FIp}{-do?g=t)WvB>_aFBLWbDEZGSH z68}cT89K;V%oPbl-j|vdIv11x= z`UyJY={E-^Y;z_2f$A`ueBb7Iw0wj6HI%blYNfV&G0ULb+=XtMi~Cnv@5`>)(FnV;4R;W27P=Z-T zTV%N~9_0)da^@Uc{^1`|FE~Y>_^!fSa=-IGs@UJNN9;N>o^@xUoPCPogPp<*UwbC& zT@SRLaHB^6ERV&Y>sGAM&Lgh?3%LFeH?K<314tRK16ZthRsSEF>@<7mDCbQEfkx<} zQp)OfH`j)2z2PqP*DNU(40XC$4@b@V}T zd8gcni2irsAxAyi$B#EEweHc>dj~UCUVRI6?Xy(xuCQ`Txo&z7m==4x&Dbor=T08G zrk3g+AWki1jzxWby{RKb;Ds_z28~LU>Y(nmj8G3F314HY#MkM4F zJNtcMuPXUU4o{8en6tdjpc%$E9G#uS!i5%xdZgqlfXRCsFMr@Xq8|c7<(`Gx)-ea< z`?gnAKCkz*hnH2Rqv~|Cygv#TrV91UFy>^Vzldw1#eaZ&4>HUj{3^$|gIR_%%I$Q+ z5>JA%P*>_aDxUPLINO3N6~=q z*fZzaG~~FThFi?=1K{z6oL_b0>h>{v_HS}p$1$||Y8z&oP(R$!!%4y!z2_g9?2^jY z42FeD_07^=)S?vLx@k(s(ar(OJ@f^m4$4`%9FV2X#`D$2pngy62gLWX*=y=noxsG` z`PyKZ8NLkf@q)7cbY4uvdZF@D74CLp+XhecBX00e+>nt)o)HfWB~yYrJ#vtd-}u4m z|IidV_e%lY1u|(aEhdzJU}-42QSV3b74|Q_#cCVll4J*+*F1D$0@L^W_HNB(VR1Jl zY9C#KTE1RZ{d{|~#r<{`^X~MB&i`?^GK3u?$=l3E99l|BNTUfp-kew349;E0$`6Xx z(fDW+g3e4LvptW`a-|7weY|foli&h3*=q{I&huI8y1Kvp9hGJ#fo@{Mc<)GtH(W(! z5d`d&xcx~lZ5+W z|CNR8$~Sb333mC8rTkW)_#Y*Gz~>#N$;~NWmg%NyZexP3z-Nt)rP}?B-zOG}b)xp# zYtgs+S(uo`v%S)^E!1$g&^rW~D>POwUF~tR_AF5y8$PW8(JS4y!*#8TCFhbm8WTGK zMyB)Ro|j+5mz_>gA1?3W54R}Fcg|!F(1%(>>doh$t~w)^UaR%Xbi!UQmRtB3&d#xG z8c_Vx*o4mKtHn|x#k;Oz?RyLckmAyOft1?&`O?ff+9|w|@)a29uolWcNa3&gv~npG_eifLPy}vmQP6Q$#_(=Y5N>m2 zP_#oEoIF?vrYO4bk8Og*KL4;a5Kr709E3^={SmiyW>IE5zUB7P)FoeYrB+KD@PnQ;S9gAzuGcghjj$sHyaH;8w42{Vj9C|9rwk z;MCyUZmfLdr=u+^0Lu-Uq0=n8H!e5T;cZ*2>z4j=SPP?}8V>*Hjsk`7DCjVfM)7mA zYo?T@9|`y3oiw3Vmk-a;WUJW+fr72B6-2(#&W%lN-*tJ0AMeJ0pKi-bVzp2O>776Q zew^0nwK*PNn6$SrfI}^dS-3FOg1R|M)0+qLSf4w3(A-Qq;3M3mS=a1YVlGT@t zaI99cZSUfdgtxF`fgTnjsb(!sYt&gRwR1CHZh-&Z$!7Dsg?x9S;a5xZisrdysl_|g zl14|*;P~-w^1cKZL8Zigz@qVb(LS-5RgdlC5Gu)rdtLm2GIyy;h7Oo79_ws8=-48TPP~QZQSa-VYtngX`>LW#6T-m5 zqRL2ra1Iu=5PC~FHk6k3MiF>{i@YrLJh4gAkp3N|4R}E)m9KsRH8}vHhO;lX;Rawe z3b^y8wbFguZP(mw(M_A!o7^V4OK%OfCZE``S5WiV0T_^u$PT-5PR|hzUS5G#j%gsY zt^rVmGW(h(&@U?V^5+BcXFIzGVCCclZ>Em(yB|CcA2AtiuM)#+%{+o_(!KK5Qcs0Z zHnfu3o?W*R7Q?LX4-q!;ubfIjLp!3}Yh<_9GfGOu2IlK^(}M%=fhK`Z z&#mZ8^tiR=CMZf>jlV9C3|vn;0$T&tg}O&t+R5+R1V1qJUw#0J!zkfdh?4mKjm|!| z@$WFLPFE0+Zq`FxiX6_e*z*QZiA&u`_RvY$SDUGO=se*)_fOw**600sF`q1fNlC?H zx!LccjJzKVBje&dthcjZy(>jq^(V>R@{#<}Gohzoccx>Ndvoi7FJYdXo=%dEYtHo(LyQkc1V=OCtQ(i7E z^GK9{?Pt5n0&sTsPJ;Jdl%eB>XnI@u?~?`V?@R!-#R_BD?$*~R@zLPUjm(pJ9c+Ao z_SqJqBcdEvj+CWHkn=k!spNm0ik%ev1R0R8_|qT%#=Aw816_#E4zYg^w3dmAdVeRo z6&1BF7E@?rPr*+A2MaVl4)+EtObk1FztUH7+li6$ct&9>Lg;TlZ+*~<7#-V43i zsjgzncx5^w@`*>ko~$R60bbrSHzGIksP=1FpD)Ms?6>JwF>qeqwGGkDNP^pb04bk8 z&%+{05Uk4`G;%E{Bhx6v3@Vzg0TfbAAT6TtDe(}b(l>(X3sB|c1XpJ8cjaP6gH3iF zq^(zVT1moYXXFxU1>b;X&o!IoPg^pbn=HI^r)4r_fVAq;kduvw%Ij7a>K8_W$RE`%0lMn> zX7nA?d2_IIW*fOyFvzG`uaTYj|BbkSjCgmev;0Kf`9@ko@DYqi z{10c@y7@G&@g=738g^#QMMElW=ipBgoFrZ-|E8c8$LU#Dt{L=47<6uCzLN=9zOlp@ zJwC0*r*;Iv85FEV zr<1_gVa#a9M~odCn_x|L!ZN;51(&iS3*n=aCyMfkkx^uH{HlJ%owd=GqnM!gGJSE^ zf2{p1qiFBADNgK7-?)*r~5 zoto!HA;(p|5j6xC?Wm-Z`E6>|JfL}!CKFcf2N0_AdToaCb{Cf8fYB;6H#0B# z`ndYOux--Lm<&F_@&SYFFinX9r_Gw2Og|b)rg{-Gu zzTb#NdK|!LJ9dCBvv-9lHcat=1A z9#XxR4mkt(RDr_Et^Ph@JmV_Ff(idsv_*O zbIbPbD+o!D@i(3r{u`g8{N`vWIlFX5aPFTCjGCM^84YQKI`wC-V|% z=vRob)dY%HSls;j!wuDr1%V7}cMo7UN`&SDm1W|z1B!89c7YaFxWyU#iClsmn{ z6_Pgx0({_pP&X)0+^%^3F72;mD^4dXQf4CpTAmUy|Fa9=r3{fCQAUfJY4fz(^w_w3 zfYI1nmv>F`fMK*X?6yKB^;hVLXnMy@%wDMB4HpKJ73*eyNnlo0LQIG0R{uStf?VJ)%2p%!Jw1HKo9p z6Wt1<@6d+fVf?#{g?$=IZ50mNbDASbuk9M84i{(bU8A$Y6`k#*OD9fZ#jO{p?V=;e zF;INckFeaQ4Cufmh9v-O9B^w~x%ht@lQZ~{Hbhb43;-+6kos&KA*ym{*053;<`)b_ zJ+Ov@In`){G&n^L13zVQzQdWy+Oh2J$oK26XV`}(`9Io+Cfg!L+|8TbZH!HSRw&c} z|A@UHdW17)wNmzgjS0}W%nRj+Tu>w1npIhU68CKQv~#I`j#EAwv~q^y zAQUPSXL3G^BcZTTZ4DTncv|V*ffAcvOj(Inu;;88<2YDFvztR6MnPA7s?1NcmfGUz zpA1y|4}+VVcurOM-lPw7Ozl@yM$t2U?ZcbjX~1*3B9CfrKNxkhs^R?Kp7G}FcK_;a zH2Bejq``(^#>sdLhAOR~H%kNH*_P^*g1PVQmlxw#v&}xF@HmMN{2X~j9uEL%MWnKK zx6o&A9Bf7aMC2GNtyw_5S{3HCbB5}piQ7kot52VmYAWi=X2^XzCOSPj`E-Xzhhgbh zDxa%wmRnBOB^7A|Ntk%dTr0}t(8o|INOo5^*#8`t7OLmDay+JfTWHX_tB@2GOfC*% zLQUNBrSM_Q|MY!vKlj;<|7KmJHQ}1572@j7JW_}XA^PLRYmKE03y?h0n>g<#ZQY+? z@eT{Bw7C#u<5E|TOK7pxkdy>5ElUD3vOb@@*BvxuSsF?Mq|(Md81vWdQiGscA3SkpR1V5BOzfvvR&&=N4MsG4-*gjzasALRw56Ve_?kh#O z1l;gwx*vid*GFayKOzDHCweVz4Ti4mrAkJ66+H~#8eugyd4kJc-+%G%>_-1YEgftR zEcj7TRoy(Fl$Rk-JnGYxJUUXenD8}50)(HlSntzUHP`&%?7_bwctFKv17E4OiCq8w zeVHsV@!n=SPz{+|w`-;GDgiRu`o1VU@#UGc^tqZjVb^f7iv*1*|4^_s%POJ2eHalg! zSEo5H342nOEQ7%PMHL zUaz`tp}XbB{jZ)$x691%Mxq;WqMOf=Cn#Se3U{i`KnTdr>BAyNJsHX znMkFUgY=@4mZbnRRmwY{seZmYOLY93P1wg>SZ8}rvuMF;#m}T?0!(e55DzajbT%2* zL#cGp|EvwC{EBe+ph`glW--K0nvIBgFGA_DH-#osV34=qXc|8r!zI16>BBJ8IOGJ7 z6!d|MPN3Bm1r4hlk4BhL>-n3mzB7ycn)`dOX9{pT3o&znKTeO_t1!PBX?81|OnapT z`TKv_Oj_Q&DcC{q>Bz{xa~LD+!UW?Wd(UK#&daJ4_;Hk#HlO4S<%1}@7YA}Lt|FV; zg?uBiNz8-u!D--*1J?#BA%#N!;Bh5SBL^#KZ7)qya#itI@dyJ9)oi+s#v_`$l3H}M z#y-&@5z_DV`sDL~@fW{->!TYFVyY>`bxHcfu`EbFIMK~}n_E>o%U!SXQj+?KR+IkkGPbkcn*voeKNDjzd!fk zW3k-OD7Fadsg&*Mo53?}h^}R~y+Xm@&N1wp1nlP++{2#VZA&k(8bb%gCW{S=u?}hE zv7)4pZ6Q#oXF4QHGZflNxTkZXooLhbZTYul^^V(@W0BT0`7D6tC%zl%Ihsgd$1J_O z?3g*C6T88DeF-}}qwz$0dH8mstzfdub(^ygWnJz2P}>f=6?wEc zN7+9GE04j4jh~GR`*`z=H$ozQd8~-hkLr2ZmQ!loO-gyd@*Q$`-7tTL#*|;SKMq3& z>3i381xz`nKEP~3I=44gd-50l%7KCLh>HK z!arta6e_!`ueZ~VQn~76XA?fl!&ZB~C|ygk0V4#OJGebW+eW+I5;0KZfWP?bp{-&2 zWcN#vFbFv1>Cw?45|i8%u~@|rUVq1S>y4MfSBKj|;#>0=dgTTu;1&Vm=1d5;&0Lri z1p7)YvE65D8a<>znRc^hOp9#0?{EEix>PRp&Rb$>)Nxpfm1o_CfWEYK`W%$ler`od zMyB`XTGPq}5(E4QhUMl-Kf5j_jwFNEfUId0tANFq4K})(vp2j3SPBgHB3V6Tc;(glFg>}DD(S>^y5Oeu> zdNjcTw{%??5Z$5s=kq=CwSO2n6t}&1)y2HZ+Rv39AFHUZm$%AudpmgSZwK!VF7M=T z_;*7SWh2S)UR1dd$lpEO9t3_mM-&9qz`au`vU zjo$H9*7&$+32`CMg8$^FlpUp~$_$#lwaA4zb0*)hL2Xm+6**a4wPrZjH<6cZ-1>m^ z+{*^al%oc05LE8WpV#N+pnzWQZS|V=t4XF620G=Y{oN}QCgkvnn-dbM)elWmRfrCy zy%7DvX05!&{e0`4=TS<}oz?4ND+R4|K^C}i8Cny%l0@hS&|aO^%~g?|DbB|JSul$y zEwroU=p1#~fVo_>8Vdx~Y?`1Y-58C{b(ryws|)W^n4i)i>JBf*y^&q%21zIP3F=p# zuj&J^+QlL)eyrKj14w@483MpDOJo5nR4tFdcuPzE@4-6<^1K(H^;B#LwVE7E5NS;h zv7MOq*@xqwr+-dba+7K|)gOV`osv zFuLY?&lwuiSXVeqUOa5$M4QAO$=T3_V->W5LP&m8Nd=lfJl)AGun- zcT|QR*kd7L=B}8PZ4^-&ubIXdG0PF-QJcmJzKJFUkvL%26ZlV*Pr;M&whm}oqs*%S z?mACHCPJLJJr0<5{2PwYF$I5Ws7u@t<|q|fZ-@u1wC*a9A+kP)ie1mAT8jvPwdIlmbvMfhw>U07zaq`do|xor+hWO~=9jr<-8*lr3 zZX0!O#YIW;LvJC!(&2^2;s}V*ph5+YbHyjYxm_B88-I|_H^0`Uk&}~)icJAek|gKk ztx{RuTZ#1gUhOf@3rN$U&9?*_35#BdSGFb=Z)b!GxKN{idMB#>c1D2wr1XaBAAIiM z^YK<<1PtF#berNkim|rkxtT%t%2#@s+?&v^`k#ph3)#CFRo11&I)`WMa|U*-bwr)R zmQ^x~vJr5aIXgy&J{{4!0;`3!4e8`m6X`wKkB{vswqy||w)?&oomZ7b|Di(xg?<_d zea5qsmbqcdELK6I%E}DGb3pYBQt#7KY~D?FQ9yTbx4X(jP^#8D?WbL=J~>#!)lQ3A zD6nrJayLW^pKH`rH3#WmTtwyPdH2Ta%qtAY|6B~xzPE$@=na!_>L}SGX}CBL6AjXc z@i!ufQNF8aB8@N9_}zW@bCH4}gr}NDS}P9(?3mE)OgR|p2lvu^dMrPtbT|7V+^^G_ z<+ZV)qrGt}i3{i(9Sv_L3|i?bk-y(5z?$KFEG?fPLA-of`|ej9BBtt1dqn@#gqTL8 zyz{xiNw#~PzM32po2dKgcEm5KSeY+_WNh=p%2v=Yx56&I80=pY;2;s{uz7KbSa3q zug>4Bjz$eAIj^+p%H4TQo&5Ml)6l#TUg##j{;{lpXdDL6xlArO-gikSxkt48+7Oqc zCg*kbG2`@?-gTWy5?b0EaNeAr9mZxF!U)XHz023uEgtH0ZW$4bp3yonsLXzgr^aO;$1+0p`1PR%MPLs-)^_)IQIb zB=J3FqipWU)diKK&7l zg&%_#xUd7wzPy(rDdrDsw6`Va1k*d^6P4t&OJ&M94i4@;@z)0xABUsV%|WST5YJn! zbpqfM0*U)#7Dz=&!uBrbG9H&`M8#rc|H`*NL`IY53hQS*LDpYYW5+2s9dRTPjjo}g zOlbKaJXLOJrl{n;u_)$ZHe+V)3PsyPx=HZZ2p0iPkWS}2At4+U4?rT2EGdH4b^509 zW)P?{<~!eGgizq8@5AJISwlpXl>t3VzclYfZN?c@Dmif**cZO538%C9=7l3Ib*znj ztOND<@H|>qPLHig*%*w+)^a~a4rf6!ZF=2gS)=i~(aipZNSINHz!aEpP5&uI_d|R_ zP2XKSyw|u_eaF+;!XC7WV8H9$NP~zfKY1-e@2E%@vQ@VwT(B~#W-T%c{DVkX%Fki?QHz}R4g&RaRP6KC~K1x&d2CM zQ)Rf;h_yaSWve?Ykg#~Xrh*MIK^H|eIFJ%AGBgM@1;)zuwUaXgixhindvdNI3V!_~ z!(EQ!r@5Bku1Wsx9_cpHqtG~==k7mj#nbMEd-`Eu$4-8sn-F)hcmEke+nHCO!-0#u z(F&yAe!JZ-nM?y!@UNf$pJ_^Nsuqr^k2LBRF|ASt!#;C-X@3Y67Uub<`K^3go@f(n zNlA}D3(4P`Ffj$eB-TJ^dv;RGv*-Q_xorz-uS$8E(J$#;Q?#l}vX1C#PW6wF$HG9b zB$@tvTs-rY*>5=RubiLp*Lh&O1u(Mbwimgh#Ju+R(6=nvoGBVfdU zX&B5Uy5=7nTzp0#K)EhX@XK<)_*(I&RpCWFk9l~zt4SitQr`b)98uq80C)m|7dH>j9|R&ju!oVII?qS<;| z?kD%2y+s!)-P$YcMMZ7=D!sp;!Rg$T zL73diAEAX5za}J_yM_4qYpvU37|Xu#1#MiOk%FV@=ht&8i7kVnt-har9+Kb%RLC(F zZw#2X5>O6JdxgUPc1!?^f1G!i1@eMg=zxCeFoK%uLT7g;MS{|$r?c@No~H}ao*dLy zR2&nzN66kgtE(6P6e9(r-793j4pgFDgUU+#jwn~J&b6;C%DH9NwRbwqrp`_iv)|0z zzQjU$s`vjC_(lacJRPTlY*b#`Ud7P;`D4haB}|vm*AxB$i|M#;&_={Kfz{6S;;Jn? zK`zY#?hvwZ9FuH9t*hTh{gvJV6~KuGK7TNQeCO1iYWRDE@`yL7X*<2)#aeadQPRK*8R%Jo z*)FAV_W|N^SS@w^<0TbKpdG`Z@9fWfHNA@gk}4fb9H>etM%HuC4U zkn`K${DpcuWWZP6kIsM_kLuzhXlkWJG+%EK)vZ6kTu@2k>5`2&dJpbPf7c4fRP8%8 zJZ&5{^t@erKVveZ1bkO6Io^+gc~a4G9f7|)65fpuAdfy#Ze*2F*{+VY@)T!52Y45O*{#h0vgpJKr?!Cygi1L^^bq`yZ?O* zM9L6F7$%TxTvp`g{(D0ad7V$_3r0eC{+Gzh)v_|>ixW~pXXmG=4}u@74@w%r>#rRn*4Kt||yiyx6Y6nE_;M?#g~3N=1eoKV!| zru;xEd>G5)ZM7JvOhwWJg>~fUHhpOAch8o8U~U@^Yx$v0$LPwX@OdVxffw65e1yMR z6jt0jm<*BLznnfq|2tQYgm?$cpq$Wr>uM@S{Z>`t7)Q=n-qBj^Y zydsq~GmK>C8VU1lEX7(x`~Clfs!RSIs&+PGQC?}L#28D?tc`TtzI>f~b4Lm)CNbvD zBum=z8NIxAL>^o*x{G}pT@4YRe*HjlFDCT^p{@0J1NElQv>A8$S`T~D; zwkXVPDdY&;@q<+IIylwU3gWc}mQc8g5;}t2G8^#Ivx??#`yzTDHB>Sw)!Y(!KUO|0 z@mek+{WaSpotA5J|2#+{`0F;D!GT@8N?)}hWqSO>QI19l&eFoQWx2qh0jJob$~?Ds z$FR=X+l)P&B7U6W+QKM$5hEQR(Q@%s!qu*2c>>`9pFLE$9DOj>(@57a#xOO&Utn0- zqUX;Ug$c{i<|&kCiH4+Vt7X{Nr?){#Q35j*+t50FV?(B7xj_@lN>4AGu0N7~A->Fq z`{w9@2Gxe{$-k_Oqh@%~=FUto{*L(iC9v7!0`DQX9M;Xk=lVlR$=>eE=qud@_*5r7(5la^u zdi*uuKXqZm&-?DRpCR&kiuyk#;(q{u_ZkEcpoS!zN4zG;H{oa4|N2{AFQVWJ_b>Cr zCSKA*@|(5PQX3q&98+^9L%+{lN-4=z52F{iK=3%j@Vdx&si95Ba`xA^jkU}^O3}#l zzC^kzWLm%PauFr0cc|5#B(FmFpYjus<{v>*)ZA>p z0N-^JIh`~?bqt00l6*Glk{f5I+!rx9TK6$GrobL)vhQzd1h9$A57?OVtKTg{@o)7J zm;s~S@uhLqyvUWbaewqFw@X;ai&Y0cPSFf87k@*pVRQQJtceNLmh$J(j{c|?h7UVj zdJ3@dO4;9_gS7^5mIn#}tFyY*YwyGwZcbJq-xAcIC-j>;e35$E#<0$z>WW)JZY2ja z4`949o~bCyl)zv)1!CKj+rQLQRlft0f^hhBeT-z953oMx9VT74EXs6N<>eOT5345h zo4K+q$ut9)aA%QQxOx{|5}V$iF3w8|@ZDiWkwjO)m}~ReRToW}=pLinkdBCFuNm1TH>=OQeSRm^4ZHdk6 z8g^;oKYAlSIEEaJed!H}DX?xz2*mW@7tE9ein})UW<~GIt`WtTeO`CSA0`gX5m=g& zr96QmSa6)5Bb&E)TCn!m!!|Mo?szeMjmF|sfwna9948kS;IR^7vs(S^>UVVL3RYOsMYgMDhXLIB_T449QM>AEXzuSLG&c&>O}`j3BOG|<^YGCJ@^FG|IFXDG{YRj7(w9{rg9-@x|*5=rHL`N1v<(77<#YU+`F@g|geFnK*V6 zG++WNrvB>sfGE=Q+Ah~=B*66#PolFl^m)l#cM{w0BYzzL{$L42D|_lnHFqfwIxtAf8`eP z1svDRY+-RRG=c*M$%eW($$UIu+NwhdBSb$0H=R_ynSuIOBZsfs7`7Z>dg|Hkpy-+a z^I)P#-qMQEc()5E0S-VANpw>yoo{bM+jrG7$e(zvHx$~2@7~5yN?Ses@CPAvR<0FIdED;!J z$1qPW(Lk>qp}V@mh%s-Mn2i{xCNY=%KTnCC3H)bI0snT+1XFeRr0qXS;bp`-K0$Y2 zxZ&2nKx@p92X=?_U0lFGJKtdukEf9^GODqYYt%`KckS9^SMk0VDa_jj zH-2-BCw2Ay$1$!Yp*a7SWBiVGmZ|+dvTW_@FZxKhCm;8=b<7OOT~oHtvuqj{>|QWi%qT{vyZ(HdA$B(i6uONRAQPF*sql-cO4lO8w-LyV51`x zPMRWPabRoUsx{F>%l^*-N0+d6XW!A*flKS8q6`jw2P+F^& z82%)MSvB9_^#B4)7-OZuGJ))KkNuV}VSPUzkjL)%L6{Hhys%9Q6d?;Vbe+4Ap*5f* zSgsMu5=ORIg*P=j+BB}X8|2Zwf85Vq>DttHi!m4KXiG| z*~SJcLUed_Ac#gS@r9i=y#MDdBgIKtzMZ7LN+2f^FLu*MyllQbvO@4bp*88Z5!C3e z(ggp1Zd#NVlqMj%#brm}9ZB70{8IMA=zJHy<3%J{mJKpC$+)O2w}yCqO(w&aCxK>o zZuC1Y_V~a6;-Sm!Sw(x=;3I8+C)be_8IhrepL%aSuIDDCEZNwBf@kUjEl{8;2{f*! zBqfnRc>oa!ZBzRaf)~(Lbw0qV*c`8;pJOHu#iT?Rw$8fL@lt&x8R>*BSW|6xc6?qE z71?N0+r85nLYw>2kq@s?f2IWO5B{`+Q((`#cKRJ;$bv?zT{;eAs4c{0ig;)Iq;XPU zvcXA3YM8|z28Z1W_tCrHu0!yvrqCp- z77o)yjUmlrZLoh}XrrINvNIP32kKX>xo!otj=OB~nH+sBBM#IWMvq_MTnU0&f7tAw zg1<>fB-Ky<)lq#HC!k_~r{xMK7c6R_?(rSKB@9UAs4y6pU{+oqpW#a8EjoYCZ_%vs zJTt%N?hVZXD10K;`@H`g>>s zW)7dscSgXrW4%H$2)i%c(TbEzIW!mo}iqmJUJ}Y?scpj=tUC(Z1mDws4iv(;aAUekG z)mMIW-W45)(L@{@a)vg2IQ2=5Nr#dsV$nQ?$pJi|;;zhpLOjKbipmB}b2U5kyx$qZ zgQoOP z9(cgscDi7ni+4e(2VL>nl%4=_2=U}(5!Ex(_#(QUdtsr$CUmzdP-XOn(<18=!&Fcz=s`3b`Bn&*@9@ug`ex<)ua4tOz2lF*Qv!3+YGIE%9{aC71G3w(qgc zQuSin-aOKd=rr=1+S%B2>21uVYl4x6yfs?h@GF*2!pSUWY;7OdHIiy}564mAS!ru6 zH|~rF+8T;)_La5Bhly9aOO;b>c{!S{i6isI9+iwTF)=BWYBhnx7qi6&(5kk|lX|PC zvUm3UL?%RfU6h2LKY!ERI3uOu>nGw}6Dz5jdBBc7Hr7KD`2~%{%wp()b2P5Z&nq+b zF=37nRt^TK(xP8`B%NE%!b{xs`l=Lis(zr^d1*Jka?m7g(?UKb>*a25{W)|r2tB4M z-}XtAgx^;mVxpSGd?RU|e;RT2Y9Ap3k(M76C=~GwLR>8Co zNZyUu1Sx17jq+OCThxHOQd7T#ilr!eF&SB37jiwJ=c7ycrCdsDOrCk~r6DiaC;#`2 zPH#ws;hPfZwPgVeBlTNzckKDN;k-lIzvDw17#5*d7^Dh{u zRm*9C%UFd?(bmDqLDY>}O1R;=yjH9+y**u&3y?V^89i)Igz_x%Nw#?- z9Qq7|7Qo*a8`^Zs6J(Xar%j3p#vrphVu*YR1&TbS4<5-Eb$tSIm_H#qs; zlC;m3pBHPx4D*l4?`G+@!4rNQP-r~ox`;i)J;fwadAUHEYoS3wJ^AhIx&3_Ef~=De z;c@?7xDblyA?16YY+dUGlHG73bV_}O!Y${9kEI7Q4y?fReDhf5Zo%Eyxa^S;*t(;T zHT~EJhaZUl<9M`kCVV^L!RBU*8oHz=`)61^+iK0HW9Bc7?F;2m+K;qP}~Aoe>H z4K{?cjs7PTg%M8_>RHTgo-|)~hv}e;CqxzZL7<6)80coMUhE&%X;9e|ixM`FJdq~J zH({ z$j0a8>VyAEYND`GxE5EBwb&LwMOX+i_36k=fBVdQj_=P7iZTJQbfG^vWX&YuQYzz+ zx>#w_Qrwg}a(sNvA}iYHt&nw}Wi;L!bUBnOg5Z}Vnx}R2Es0q#PElr%XZyDObqMj^ zuQi&BlSWY03oqCqx?+axcD$l+AIiLu9S0wrYjYIC;r3IuvN;Gp|5lxu-PSFEqm;u| z7yt43^)2d;l`EXcaymY1UOtBvM=ADuF%-BmZ~0pkxGzAco_3jI|j9rfnZz zyEe_|e)LW$H5)Jj&Uh#eW-20eRA{_a=q&M#bQeOQLnwO8qse&VOR#Lt;xhsZ>$6Rr z3QwsGXQad9WFL+W%_VNTq%_sIJzh&o`DL;q(R=&Fz*37DKTy+#L?+HnI1UZS`o|e- z>li>{q#s?tTx6@JDTZKBhfU>$^tz=lOP%4RF_;|U6b%>GrOM{G8b*CClXMl#`nbG& zDF$5{lS;n9gsdlao^QL}sp&jm5A0a5yK`pd2mg9{nV|HOPUl(Rec+Q`4kDk(+#=;g zSo;;os4~mHjC~a;W|Auil0;(awh0+U_{VT8gXLmf! zkkdd90WQ7d67MP>$dK*wJR5U$$3l|L5xj~hd^2sgEg5<%XAwcuAFB($KzuKMWriZk zB4GtTA>f5>>mm5H<4}>B<@l+_)k;ZcA+Wl)`++bb>nNbd`H2e?O5E`xW&4CQRoWLI zST+6$^1P48x}eM+E?1_%>!H8n{=g*!#qK6OlP7An4^yA?4?4d%OtYFLe#K0)&P}Bl zQlnlNLteT?+@(6d90AL^J5{H;MmtrqT4;`+4&gFBbgnt=HLlvh5T`pN9A19g!Pxe zNFuf7$jd706Zrm$j+gT0M2#XkWXEWbNA7j3F|IWdr=%HrPUeqn@V)9^l}&N&ZvA4N zAGm%RMxGRYmB*LEt|xW>vH5hE?ym?|c=wdz{GbcR?aG32)r+AQtI3NLta;0E@iF!l(sp{Gl+8W2EC zLiI6!(*=*vH36~8#0=VOoQf!5zmN7UbFTP9W7aL5|3)}%Xddt z7i z)Y*&&2|Ugtn;ga>o4;5lzu4$IcwF+*#d%$zgd-@CrTg=_M72Rxf~2&q%5Z=98#??x z`KfpiwSKAe&+5$sXwNeTSD6N!1+N^D81!6uZGIs%vrKz5T_+rOd8Mm1TRw{myYeS@ zlUoJFuF8e>#!EOP-sv1(kXCCRAi>s(fW1PXOh%ht>hQapL&f<6xpXeCq7qkqF!!aisM6y{eu)Bx_Y=)`H(o2@Bko3A9uXKT$_Hz}_ z?C8ap0Tg;}Eg{dI0A|^F8EFmKTE<(5`Obv(eCI2jNXn`EnBQ<20 zVHO1f85_umS3GEZLhl$vc85ixAKVUTB`PB_Q(YQko({8t{EGI7j3GRpA?-`xEJyjrH z2%6B0^4XCp@q1j`m}PBYTrkZoG8MfZF23j_t@m+~L$rpNeJL(CdaR4SF;_K+QU<1n z(83AUk_g9oQLSlEbfbzwzq=iB|kKVM_ zR^S!cZZkN;ra|CBfdy)v5Yp;}>J6t-B=oOC)c|{JsN_nk-k5p#`r6%J+`J5h2!{tqA5Pi^1( zxzDxs=kAIQ-_Ez+)ux~Bl&OM#w%onjCUdnoNL$__$!HSU?o{jmHNJ2`nuBcM=dEq+ z;rwzUlWl&oTR2yW^8?1*JH7qe-4hvUpzio1R}5)Gof5o>jKRrr)e=Y;9tR}!)&yCT z2`-Q7YhchFWel#|!CW4#GF>X{j^`|`lvuU$%WH`^gvZSg?3Q4d&Oc$m1F90%{nmy4 zf#g4Fbm9x>(0#k!m81LpJv18~o`T_kwB<%QQS9xpPGZ-~fgPvEEf@(hRSf|KwYq4v zCW(`aj0`;l1jNu-sU+6EM(q)4Fx`&7#?iqRhmhmpHQFe9kokGRxTb7Vrw)>3gTa^G z<6{c76w-duy74)y#dmqL<~i@`4BIf^zrf_E^pc(J^?Mi4+sK)U zt=2u(3Uav+Ct?%mTFG1=UpFd(eX`m61jp(LS+UG(GJ+0P+ZHTp3qK#NbeZw9*B ziNWdC0Ef%-BPxgev!KK7sMXDcKofx1)oDQPT%}If?5vs&q!*OcD#Y<-5i(N$D>+qB_zvJys<@+6o7$4&yl||}jDUobk z*%)w#zr^E?pz#@-Iex@7Lj4JTCh_^{8H=Bp{=J7k=+K^tZ=aCx&!HKTp4TWp^`AtMMT+@#zr>CTO#@QF=*%9e$Kd9?N$`ZejRROPaB>|ZMQkof=oPnL_R4;sfn$p-(tNx6-{UH*7zO z)#0sC`c%DZ*vP)N8{BeTo+Z{3kGUtKVb?(0J^QJi0`$Xg}*Rf#r;_cJ>PU^a+XR*>=~+ z^OwN5EOxC{BZgh;FYkW14%0JBSMd`w_N&j!7k^=oPm33QRs@@vp6>Rm>b8EKU{!)s z7k9mVxi>MMZ>l&nQ(WNT($3&?$yd+sV_Wpn0r*8x7SFTSoMLvBKev{^3`G}qqV(nU z;xzdmjuMnCsvM$NkuDN|oSWY(?Q_Eh>ps@@>R>12i0ZM`J!Qg;_y$Ib$jXMHX=SWx zA>R;gWF|mx2&bnAFcT5 zy4=0lEP&vQVwviKR{M)(#4HyIR9edIj=lqA0kw+Ijs}PBmdcHU6J$0KsdU;45QS{J?qpv4c}B<6;Uk+;Z#!BbVUKZ7mR&9N5t?j`k%Z= zso~m164+Qt;-|;riMP4C(M#HS@?SKct$2iC%=SAP&Y}Z=_LaPN)OG*mgRyKy{&JE0 z%31J}-7L<-WmEB?Ew!OUB1kX92LyzEpvV@3x5GFpMXVCuiGxinA3W&u_;c{Qfe@-7 zvxJ)IDgS~a;66wHtoE;w?GO`@tv3kaQ_Imdi-HpC;#>Gc8pTw=g2!$Do|I*gs8o=W z3_l*ZHx%&ePdAN@g1u|HQpv^qKAzqoNE)ryEYZ)pKUKuC46}`bmHL4%K?{iNJzaTT zg)}k}i8KKp%+O2HnA$!Lel@?}7mLy5H*++{MPsVw!zz)8;v$%b)ys)Q7rODmuR-mX}TwaPD3172vJOJ)=61B$x&B&y>7spPH6 z6!hb4g})pTA#zhzhua%c+2UOvK>0CPTq4NtI%t(u{J0Bt3xg~S4z3DXqofZgvn{=3 zY0#oO07u^$r!#b0o^AOS4say0BRg8a!M?=LoCZ>>j8@*#MgJ;rd{VwxY_O`HunCHHDanvli8jreaPvaTc ztjyBw9q73A(h*|12Qt>~%ZkmBc$l}u6^=(M1iI5{PLhWfYW35*I4rJ$I<&+2GSF)0 zoT(y@#g>lPfrIUB5OR@dOi`#&kB*aK+b;>|qnTcGkTkt!^E06tLnk7b_gnJG^@R=( zU|~e&xx2jd#D4D&Iwxo%NONp?*;~;oi%3?DJOraVI^ZQb$D3^EYT;O6Hm*#ap%%<}5=K)1iXs)gzI;~c?LczFx+kIuWbrzUO zqxy3Z#d5%Ws*`+9NvK`O)_F{l1p2O?o}N1Cx6lskcKtv3ZbXn5Y5RqS&pUmjmTMLE zKj)gn`;C$1E$>U}GQ59gVONk`b z#n>B)*7rsh24R>jJ-oT$0UL-<_cJzf&rm9LdIswT_Jc6#JbVlym6&MxgDdIL=B?3j|C!OAZyZ{_BR^xf-5xQQS$nC4m6>|x> zxsD(^u;03`L@^f3RH?uwSGRTS8M(kTJn+M}P+6!1D)bjauf%9^kdS<^I%v88Xb%sw z#p}<#pTuJX(|)q>rAV*Hw4g^wxhYgsY|wUTVY7E@m@;L2wXW8nQ@kp;ZH-%T^x}E} zHm+D!rnw-4M*?G1o=c*fe{iMm?X$q)<tdp&={^Yo4d2Ql?R^fEY1S+-xy%>!#+lBn` z4UsFPGQ>?Ib&LyiXLd{PrD4VaBuss1tW)~651eHU0#~zC6Xc_i6Xy(Ot*)OC(<1|k zXnN#s>v3+-52iz&+lDcOK1K<(?e? zmc5(6Vl7oNKi=we>0y4cWE}ta>k<`h`BGgT9aEvgP)+D=1uUx5s(Kv|cbV6h-gs{QqQvPiUZRl6BataR2?pKu|=< z!BD4dwq}uvka^-YZeTqkl`uMbMF`gn@f)8J+|r`X%<+;_}|Bx0QLFZuDS@U zF=4f{Zp43WJM$^%0^V~{@_3H%|$}JzlT+`;b<_4D=-+hy`&Z_z?Bg! zJ&cg(mh^l>309NK6HFx{z27Y|qRUjdhNAFB%e;*G_sZOZ-1TDZ* zqxCDpjD$?BoR8a=t-6nNL9DU;$RpLgD{G;Hu5-n$2vIdwQ}YEpWZLENUK$R6N@dok zx>u!a7EGhzM7b`nmVYk4JMcO>0GRjQ3=E#0Aybg}%%j#7ff5|j)ve!i%iY#85OI-g zP1pW+lY2x2z(6B+>E{vu!9YJD>?PMTMO|}CY+rZK-QivHN)DLZwW}Ae5MGk#o}d_A zVN;R$WcP<=xgiS%j1=&Q%}xYYe_WJNnG{z}XgWJOA&;H9Li=Q-K)4q zLdUuq2f-a)Adhf3#9E3nQpub)s39=JDpUZgEmAYbCCFcw+iT!Dm#f4^p|uN(HWHaU zO_uu&mNVh+PZ0|gotJ3=yKCtW==+=eoS+3oIMZ-G@K7)c6%75Ay{BV7x$um|Wus{S zsHQJ`;NO{5>?Mr6Hk7Ajo=KvN58lu!uqiHN0=S%@R} zFYqmU9sC6WuMCVK0ouOm6GzkW?v*HI)GdS^)YqPvaQfS-5g!g` zdv@#sCvxSqlw_*G%H(Ul02bm|rqlIb&CSC)SZPGG=Q*b)0C+11@Hu(TIc^9z@ynY! zuB~0^FCq*MeeMSffc1D@JIR2hY74}-kAC_VcReqE5CDNbv^DyD*v@##f5={M=v*dH zB`|#4a<}0l5OqL6*Nyhc($s@XU;+&*@2T-e!d!l(E$nDxH(5LHh3`B+0a6z82D3!d#5Y@l$5M_LmK5h?hcP^f!RcBTy8 zzkOFVCqJKz0hzy~LNw%hxHZpsvXl_8#z@eWUs(ls&91SIdC@AiH#S37eu3`u&Ab9s z4Erg+XiSc8Py-g)OY*su*kgb_HZbD9InpF?juf0qv1)AV|7prfwFUzIlmFKC?&e?l z7yvs>zl+7DRfN_5GObD85zzabK9RpVWX`eOk+C-Hl3Nb%nX#BW=$KSwTNShtzsFnT zk`72M@enX54JX5fa#zFU@~ce{6A|Y%1Jus~7`7n~LS#_a!_t?Fak2NyHf+(mQCE?{ za;WOF@Vt@V+O4bR&4o%Thao*Sy6|2OKV;Ku3o%1yWq2Ud3vKFhV^9pmf6um6qmbM_ z8(bcNtMN<^0u|^Nr#lA^cqRxA7$V^h#+cR`j`C@fD-lM!K4n8jz~ko2b@s|1eg5#4 z&K_Dv?J1DXDXmU#36Q*jcNU!;p|;I17!KGkXW2#i6scP+WUKLS9})e*Oh{kh(_T{t2g- zLszl9`x~BUC+v4h!M;2Z_&#DN!bK}O{-)uiHZflfR+}#?7P-Y(5{hLJ0Giud30|Vr z#f7@aa?>~~iNS;nu+GRm6d<~(?yZ@uS5i>Y5U1kf>m-HgEu(gm}D_Va@s?yyJXF&VuUM@7AJKTx9orlYYZ@nwgC zEI6ZCTT}u4TBhAqwSM%YR6rBKqGO2p1yhCsCfVJSw}1pELuQ&xaj(o~CgS%3{+>HU zRBAXOBsPj4$93pDvlp7p)(Iq%Q%oU{;*5Mu#Ys?Xul`q_eE_>2HB44e`@vR+T;(>4 znEbooNE~{|ky@!SA+v=h!f48jNbshR>a!%JBwqjT96az9;uj=$Xq#TE*8lLZaVSAy za~{j$JEv2`!uhsk*PgVNI{4oLl%ZhmW*4U7HJ3_u^BdzxLW-zW%2#@JI~>I$7wb&O zmJ3UYj{;1UsERFAzVQ_}N56Yl<%P%PW)URyzO3>s%-`BA5!mg4UMNeW8giyqqiLN# zq+M})uJbVs=Y;Vrk#e72bDfxoh`0RQNah&HB}qOyh_VUNkkf3k6qG8C$IsKZy&ou* za*@0&@3D=>b^0DzLgni1p|NVL|K{m+!5AUFdUZ1){r7=@4|)_j2@@)D!=CD(Ntqp2 ztS&68ozb-ErgI|@R?)<%_mDe~1oONg*cn(z~5Y@y>=CeRr1%w6>2eKK2;HNwTZ? z6D)g^mrk42_Ydz&t#<>8_Q_=KXHbH}KPo~CR-m_2$noB7pdp{~(4Mw9Sp=rJ!Ea7P zqcqyxWyPVIT=qK0moN$7KY(Nb9H?^`CFwKLd-HbvV9*SKnB zU-&wV%+odC4I#RMKJ;ChkrLE{X5}8wqW@Rs8=MHCXG$>ZXje*+4QeyXMQ^)*1%pvf zAPu!A6(zkI0}85DEKF0^TC0c514XyC*g6iAErB%d5@-Y1L#{{E?5Uqv%|x+>RjbDx zVfSqx?4NAFJ4Xlq~s*NXhbg6$i(ViYomrHguwDj&Xl9>mUT=f1*|E#@iS@u|j%jMSrZl_0MxTtZpW6 z8H98FRVJZ9$%jbmb@oau8&fzUKQcO6X}h3luGu0OUwg1sFmAk-hu@CRqclX2p>{j; z^tT#tMCf+`b>n$%`TrGAnPCbFdUb^wcZWmeRm!I9+|mIuIwS3L?>uUdc7<7s7A0m| zwI&KKsrHZZ!jp)bb1%62iS;+vaIE?p)iF*k58y ziZ}wxmo}Tb#x*LzfI;WUn;7-cwRQ_TO>Q^D+2TI3di8cwaML*}U!X!VW5ICx_6Ph| z_yYZ3o&Kkh0)xMP`1?ff`G3wZyl)>Y;Leg(=dETL51isRcu5iWOohQzGQ$AchB-G? zqi|)DO~*L3^e;7IJ>#%Wk_^uET!kE8b%#`A^2;Xsh>L4 zGiXcTGq(k<_9Ub0Wy*ns7bZ1_mL3BDrdQ-WdQGv*0XaFwxoVSmwbkBUERnl6e<1qv z$U*X*ZxLm#-#mbKish0UPdV0NM7!zUIWu@*nikZVGk-ix3bW>?@5~OUokE z=y!BvU?~+F0F=Kq4UzVckb@YjH}%3DG8#NO?5@YkIHKPoonX8l>L4DBg~T3 z^jwuS6yCeNeR^MgQ405`SQpwUT`=joY)^Ugea29JFc{Pm)2&8h#1MSataN5Y2#1mC z9Ld6$C9&EK@<~R1SA;cPXQ#nzrLL3my_CvmOzp?Ey?&pR(BP%RB;Xw?C?ZmFf`N)k zQm3IYT+^(?A@*I^!^7kGvnNCZ{xfztKVly8$BzM%`URQ#4X*@u&VMstKY`J~(`Sh! z`u{vHaK%J<*QbrFmYbeH02yQV7#+rC^Df`UcSzo~?N(E79I5>Xe zAA)poJBvL(!Pb=3BMkSN35ci^$EKWg>SR zR?m0rc65H;#-gF6Js;buFJ%;Spo%I%-iHZ=3J4sRYQ1p_^R68KZr9kumDmKUSvE|N z*kmRTblO*VM19iUc7N`6e>v~ec+KFrWkoWUdtvz|Qw)DLUQyMfg`c*lD7-L5DqojT z%IQ4#U9GFQ21yk2&0=zhq(kQFGlzIT$;D*%Ro%4*?%gs;pVvJmvGC$zKAj@}vP=9; zu@cq#R5Cc`#fyRYT9u3`FkqlV$v1U~b|qIK{lQSh^G|B`sfhD_enWE4^S=M}PeA$W z^DH7hUp%5ElO`kFfoWZBm0-pS&RFrQTL8o;a;>Txg5z7P#?&)f&9>kGeHqZ<<;^Sw zjCxdAua3)eMLIy+)80|DYT?tC&Jk_V#b&#@>?s?oIva=d<@XX)J1%+cH<}jz-q!%g zNGVkEbBk%YsD^iLT227Ger3f$I^#Ia#3U zPgtGb71QkRNuT;eN6We55KfnE=vt9Cb=@I#u{U)+Jv@}G=(o4h72nQ!S$1AiZYka= zsx`aQ#?hV6`l%L$ekJAprP|?&1Q4;|lUw-&1O$kHRDd_MzKy}P2ShUMnrmw4MH}O3 z@5>*Yz}o<^{Wi|q@U*`0Z|lIPB8u19xp7DXI z)ROgK#}z?|AYC&d@0@CUyUBMi$J0o1Pb&S}$zp@7hyKOULd7=9U3$&vZ`e)t53ZaS zcK7Sts?1)^23*COxwQ%?aHY-g`2j_C!xjX7<8=IzqXU=o^(&cYlty~td)vnJ7CVtF zsZ6#K2i3P68Ozo*HCT|QJiQjlGk(DJp_)wl~N1vi`W{ zaJC4K@wOBhvNK%xEuU-F?prWl^OnSoWR z*4D8IfO=yxoiw+Tck7!_sRhJa3G%8y8NBHxV$%{ntR{$t=;*csGg(g+Zm5D4$D!Um;$w6 zU8o0S`1Pv!LbC*WQB5rPZ{-Kj56J<9jn>prGDC~zMyarMri#6NbrQKGWKHI_;x7#^ zH5d{q&&glKp?k*%QAD=(GWy6kGQ!pHt}B|ANzNBYNY5E3BvyA8dYfwp)VXoDj_`zR zo|*^8((n)lSJFP|DwzDrWL<19p_`?=-Q1-=^PP$6eS?O5@0d}|8)!3zc~JshzRDKw zKqPS`dTp}f>l@0&Xt6GWDaa+^_@iEJA~uZ%o0CN49Er- zv9KHDj`(lgOi+XT%Wa*a`5F_|%8eu_S}F5~e7!9=rA=tH)kAfjwQ|oX_2+^_ELHAqowrk^cKLSxU=AjdZafy{kEQ0fL6e zgut*!SeHMHG0w~Wg@R(q3Rv9Wa!-${xT(A-iD-yM+?k8~psVP!IptT+DZIjwAFO;K zZx~MSUvAC^WSyPYx>`V-AObvv740D;;b?_6(_05pYiMY~Ep{YhEj68onzQtx^^7&`QB7NJ zgv0{hB}+fU!NVh!pE4#_9L*Gyd1%EhStUkT>{G-bI@~TB7NyU=y4;L`*v&0u4q9W- zEPW%^c&6Dv4{0J^)j#{LvOm{DpMGET0et9t`ZPNkH;o}*fuFV}GfHOZIlx>Ah9AZ= zX+Gz!EN<8K%}G&Lsy1Fy_x@6;Xq_k&Qjr9(y4ReUr$p2H-=zz|Fbbd|9q#aV2l?l+ zF8K03)sN=-Mqxh#^bQN2>C+fyXMyL+#{oT)Xag^CTS5QVeWegHF$c?)Y(@%cQnYFq zQoiueTZp;RCy9@ObSEiEb-x6q3{5!#2$$xNb zte!16sm6npip<{@Gun~?78*`B%)Z^9hix%$kXix;0uWCkC z?vm4+r=0o+5S6sF@9GV1$^yt(deD$h#u3>w$pq^9sT_MOZJByA3O)W-u*2%xxE4{b zUw+1e=AZJP;0alD#|yfe9+MmE-@+}b9b)-%PoU`&X`YbS{gh(d1rJA^%&L@DGDx3r zkPT|6w1UYasc>3+CA^^-y;LnSkJsI+uXq@>LbKm?NLr)H6z#Wf`2=#QFlu12l|@Ce z8OlT(NKI`Djt@MZ8G&c64wK9@OPo3lHmUaL)y9^jg6@WdC5J$K`POiFp5n!D`iT4=SWo{B-w1&)uyeG)tC{N_55dIAus>*nG+P$>29w$ z;rT&R(ZPZ$o+?hs!RwXZV~WZ!uyK>T?!)04%1U#s68G3`Mcm9$M-4`vUA@(`o?UYO1PHr`SUG!myR-KNwPi zst|{KXDx>1(|=mEPl?;-?;bi_ji_L0{v?rJnF!0fiL7jhW;#$@eqN_tYJJ?q5w`D064K<-XZ)f{Sq48A&RDm zb{g@PdI=km@wt1B+f=Ne^x~i#Fc@QE?z%1JK>y$|-NP$#3H4Epb4*|L(A) zzlVg(QCZuNCwp)Puip6JL2tfXEx?|v;p0x_bk`_CngA%NqEiM;ANMb&Z2;N$%MLd9 zh-NJ8sNZ>$t%$Vq)6wvvNOBk9y~Q=hampPGF7|zQkLdkKC_j1!-|Bd-ne3Z(^)9>P zx>b>vE!H}UwBX#vki%zicYb!YyL1{}$}g+SYO#6-1|+zG(v5MYZeLfw{C>adM&%lY8K-Xf31<~oWK@Yu?u{^(RI@vslUj&#JdNog06IHfVCI_}S#Jxl; zo)Gi1F-#7d<{_}t+m-i!RPnvPRq+$~N+|Z`^T-kKO|w$H7N4M!Qj?2ZU7qfXfiuz$ zwuT(~YGjsE+UFJ?6okmgL#%6Q8IYzi4~1d8kw)nI}?axnrr&`r0Th-b~q+{PH?a zB8j1FiAfSZo%yezytMkA{Oy*?D8!F6T*b7_K5!+Lp+e43eWAl`|yj9ek|+}_!|Dg0MYaV%x*~BpXSh^Qu4$Z{%j2LD-up@3g(q`KmGC168i{iP5#dj*@ zitq+?2RFNE269geOYd2~_{WgeOgwqWHC8EPxfpXh^p1=$1Et2XK(IGFE;nIYBzL># z{;bt+ZiHhAdI9Kbf*Lv&eEPP{3%9={5X^g064-BsN~@sYTJO2FcE5IyG$Hh(JCghH zmn-x8di)wcoy^u>>9s`zKR}^quW6P^3HRlCmrm1OT#Ohj`xO35)gt8 z?cyO}QL<=g?0BcAx7K2`Z|(`@LXl?CKWYTq*bdk1(O*n$p>gWCbP5_Ij%Tc)p~kAD zX1LkTZ+iYYz9?I;OHb@vcTc?kjHrT^LDyQWDE7Q6xZC*hU!n?lT@F$>-tG*Z`aD!C#6(Oa%idXR zv6hs@4m6whvMUy^qLL2J3th2tF&h7Jc3<*BHDxmJw+nKh&eo_3w`Q zBhwz*zpMl32Z#ao8s+d}`3iuF7q0+@7pW50q;()zKTL~at%W9(2Wv|A@}XPXiqDT( zC^4=Npry|3WaIiE2|W4GR1}uJ+QF7fdYDp2u4Z&59O*OMh@y==Hqa$xocXXMKI!lHYbUu?Baz`#Mb;(0 z-`qWV>B^=#*-}|;bWlO-t{3ZOucjRZBt>El_Tm9?=sSlVC~z5Ok?>nT{D)geyNFRg z7KAGc5|*xG-#dMd{K=|<7=7kD;28H@c`&}ZRVt%7RvG48{>5S;&3)&L{v-XFmX zW*r|#Amg#0(Fh}=XTxi1a!`pCN23I#0s`KhBSPyGMn$okI==~e%&?%+ZoYFu>WHCv z&d&b2Y%_ba#d-sQgKH~M_4x_@QTyw!Mj@4F_9yb|gB76{kV$d=gZsB$l8$WYj?e9t3}A8*=$6J)#BW^HLoJQ6jQ1r@Jo-+9l9z)(MSX zzA+=?)gyXDcm*|*K9)wQ@bL|N6KYr$Kte|+(<@WVf)fr|qXs$-{CF2F!R=n@AtaVZ zY%k$;M00d20F92bOJvZ0k00PMY6Y2*_PZ#G+W1}8o;P^2{omk!A@M}Bp?=uo2DxB} zs-@ckSv6-S7~->nLaf2lmB0l=qgfAe z>gj^8#MR;VU-8d)+~Wi%JUHfuUmt^8POJKdt*OlbxjVIg*;~X}N53JQ3_rtx za}ld;#T=p{BZvIfy5hwqEtJ}{uL+wNk+3n<(S7Hy8@m5L+>iUx=COE`n|Q8onKL5u`g-mYvb1J75!asrd7=#i`_@ItHGCXsw$p1p7Oh{01d&P!ZwkfEP7ngsu-3v9qLLBXz z_vB4f^5$&St`f!W&(~OOkMMw$xpIc|OK5NI?)t4N7;tE@UyDCt_Xl|bwqFT?C+r`V zIspz2@R*JSi1xz&$JRSX*V%R5!)=o`YGd1Gn>0yd+je8ywr$(CZQHhOC%>!D-TQgo zZ;bD+Yb0mnjGTS;UVE)M=bEcW0s%q0MDZ6`uzNBbix9aH{d#&aa#7T43X`pTRo|4J zaL|6^;nD#j&|fp(_+&&PpK=};apBQ0syu(#{Xs($LM&G;Sr1oACV8q@KtS#ua5xv- zswu(?4Dzh}VG=yzsiG#aLw%PF(8S;4IX)e)`e}qugHye;$^ovW#wu%19U9=7stF#% zpKdl|0b;vwndUlf>n?SNs-9t#(dFiyQ)snd^OdM5;Z^|4US`H4ol|ZOd>16e| z#o+hIEpBxHV^gU+>&hv#mQ*6FVFG}3!zVzHoWt}b_viEQnd>0@&17nI0;?rG=E-bx zx{M-7)mW43uExy~HpN8lXN;=8q@Ryqv$7oH${r#bRU^gd(S;}N9ANb=(1g=GZ`tu{ zj1`Yh29bn;m`yVB2Ou7}=lWB%vM#2^DnoJ9ndt9(yHv5h*Q3Mza;HO&=4)3y_th_w zIhiC@NT^`0JdTMA-PbO>oKTl+%a52{!F_tR^LFJ&PyPWBhyv`n;=J;VH1)b1pZ4_h z$f5QF0>Cv}A3+9)*ok&y2QI|pj${XZ{9f2N*AbhRQ&eqkU=nf_^0>XbjAaO8`K#+% z`V&xV^oM@@L*M?<&KvS(0H`r4yHnIr_*~ejiUFH7076w-FDu`iv2X{0p`)Vu00j}y z1{fVnt@QQXMD3f1NN`S*MKdxepexndYS{ea2{I6RvnwLe;`;vaE^BqR7foCox~jT0 zS~A}>bD`X7yS*>)ndke^9r+OMH1#qX*slXphmbN0kKVD2m14{dkfMt~*z@izt z&Y7~@74}8we`stPCYv$u*C@_iXm-5n0nfDRv;5nTA?OU`E>`)kO{@g}J#`(R^zgXD zqffTR9&Zl0+;p?j(nYf5{=nEf&C9A;U{GDejekXxqi`%GIVCI$#PB$F)q95=BTRiE z31_7WpbE$paSb1tMn~MEfXB`arEu$#Np*Pw8`?F502}6pz|mcBZ2%v2d}#Un6T6}d zLE_O;m`XHzqO1+4iSe>K@nU@8owt6A&``j^dM1cLVLH-)snbu9qML~v!qKJdh>m_}2uysJmA zXdfm%ze1ruOR_Qzb&1TgXu3X3Z8NY3CZu=b;SHD?Q>>t0dr;ZXYl+4~+xz4qLqG#? zgUFPr`aA~nvkQnzJ3ZhQ9WSaw zs&Wu5{d1$ub6^FoY)EJbPy-UrGQ9E#m3{I-Vnu?Y>k|waJ@aL^NxUCMyg{M95LS4o zCb=un0vTq0H!iO)GV2Y}OM{`7P2Ph1=UX)(#C>;XM$g}Z{%@QBlqBe&0PgEaO`RCt z0gObEYBwYSTFbUpd?^<2xZ!f_Gf`9HS>NUktL)b>xi}B>6;YQDY*KTG@1K6-2BtNO zE8~;$x+!~PJ#tSL`_iDxL-=^Qy)1eY$Y3wW=v}2gLv@v@Nr@HFGWxegSHtq8W}K&x z7U$Q z)||S&Ek?=IevT8m8x@CXvNr|DFq!YIEcQ5FQTS4-T8+T1V=t}X1Ou?3kt`wqm2Bbz z2_~`A4~PHC2@*J;;4(zdVX)aERq=NFtVP;aT~jGq-!I?@pCTTFi1f!o0!E-ATO~y^bTKEN=e z<fkx{D}UsW-5k*}ncyi^+M4H1HT|&bSwxD&ojwUFMt@V%kP;Kq3Qm4{SzqIRGA#UNx}iO7y{rptr!EZvKMzy=#;eutbLg`Foe(^vwYG4XRbrx=)zo>u3Q6xYX%CAFepf&+TI+Nyho~POI~5E#TBM$EUh`^pfWf(T8B*d z6N^#=GNGqz%ii#D)Da9PJXPG-H(*W?1Tclh)3huEqBvr#Uu@C}h-i6MI@Et0P|EJT?YsXHAAp_|!Shr_ zUUMboG)C zmqsKu3TnSnNA*SRYHb0nHrr*hLj%OH-@|_EzNE1n-C@8L5>0Ikc1SuH^&i%!x<^Bx zY|(MV0X96;JZg8!ZEzUbb>vmR?^4!%Tnw#SWhg37*rP!xQQ#n??sSDe($d zS8kWj?5ghy^g>!YZWtns=K(yCoZ23;6{mnR#UOe(`+&pN8zw;bdLNxhXly(}!T9+3 z6+ZQsM)=aH0o~NW%an}_(cr>b1|vkOM}xKME6qD_bb`0L)*+0Rzg8l2vw^moD83V* z;j=4`BR;RYNXZ_;%9n#it00QvrR6h4PRRvOc?jQe@TWO<52DUDB^9W?CvB5&u#3NY0F4K& z>7IE}G=L!fFq$vPYmyM!tvz>Tb+Cu0X*J)Ji2&pF@ugN;QbyhP^47&e9FRjJ!b0yD zA$8L`U8t?nbMR6)|5|YfG?k}RaSA4=pIFk*2silx6~d7mq*vREW}sef1+=Nve#g=L zT40)#x1$47-%4xXnFLNJ=ff@uNo5p+!D+qv)UH_~h|I7;Cm&t_dN2d}epSSty`9wu zHGs7Zt;g;)xk1D+h#(dAGB`PgYPoSB()|?9$O+6!1tf&R^MD(|Hrr2n`WUU?DAXh3 zt&pi=9WL?`0mIi2Xni^@0}Wtw4pMkJYxmeHSY`DnSB>#1-paoh)A!9NW_PtZY@ zzBsfxlw;{j7|UE@rApCHQM;sU(vX=(O@*e)jZPqYBPztN*h;MKznW}}vg>dd{|T`k zW)Kx0id5QIS^k?aMGQjFn<;|XMDn3F@{q6Uk+p3A2{oJ z@7Kx6s~#0!eDvC3FrmQEAtWR^^r-@u{TPJfmKL~3&Q+Ul7yU!kBvJ$G3Pdi%_0tXG zkWbH=-G|x<8bz30N3)z^K8O1VC#hOLrSr_1fc7`Eb3`pJTP4KKyT0zn&Qe3^FQkD`zi9muubW#@W47pfowOC%To|8?u zL$0=Y%9}+>eFR~1in$HxzA@1rmBDO1rge+eUh~sXRiO%=IMc-+Hqrgb@~fzrSQHiy z%;B-&aUGj9hj5N;sS)4*BGUiQ{ihVdxw4}f!!!0ij0thTjEL*Y?VNsb;?X7|Po z!;cb_uKm*fBwy5B=8$jM6IpSBCNm=_j#vaSqlR}!Iwk>bV?PxykE)HvqSn$Y-fk=v zeft}7`;i#sQt4$4Miy8YVfh89Ce(S(b8ut=d{O7`UIKsl`uajZNx}@~viGI3&w0hP zsn5nnL`agw5%xxlDw0Y;_oC)1X6w)iD;?!FWN)QK9p&g2N*AW+RJQ%TB>z(=6MC7c zw^LHZ57=2#Dbb3&w3vfFp}j9>#nLh|id=>KWG>Bpn9wm4*_3uuyJ#l#B4*wg_6CMJ z3d#4|EEjN@3dPLR`=$Sb5_^~dn)@P*GFFQJ9R@y#2;-MGH4Ka0C9xNLcmk|nR@}b= z)6?5++IQ|5NR>2TdNKIACROW)~y*`l40DaVM@Xn09fL@U- zNo1MpQMy80FyYhlTXjdCxBP{JF{$%lN?hatVHCQp(E(U8CK=Qsu6^ZXSzW^khR^XE zUIi3%6eUOOR{jbz{9X1rebp#Ez*$Pw{hTnCX4H(AUB^H}%QT4enu@jf{*)BUJE`Ag zB-=16BA=~s1VA#P3u;aICYu0#7hUFqMLLP16g-D`_AEo<3Inevqe3i!`AztYXRZiQ zS*yPc#9+P7(I|hkZX1hNi@?hF{D(zI3{sj~ABjTVE4@4<9cLxap*@H%JMNxP?5O*x ztnYmWE#!7PPLiyG+24j88{CMe^_s&9A$706jO(Am^-wHB+P6xY*b1I@FMz}D{)7YH z6pxk`HJ-Pj!Pwt(%NB`rT@+@Id72;G_3DxpyOqNmzj3?yH1B?Kw+sb!FLYVmpU>{O z`r^tNJpDHfFP}h=L-H5==~jZ2lAz2AwQn(YCgfYDeGReEBBYJ2>i`_8?6+cL|5A${ z7e{A_wOc0k>f*Jo_2`QY4j!BCL0=Odta+CUI<+F1U!3mHpsSG6s8~PWov?Uuy*g(a?OqKKMCrC7;T*9# z+<>;1tNL5-mly1*wmqQ8BAx&Emmp{QlQ&^HtN+hAao`gu0DyS5|D=vzQFTwO=M8%2 z&ohAQO1{5~G+23Mgzq(m!mDY-rZkO(7aM}PTd%H7RR3@b_;qB5BX0-wL-X?cll-D= zym5!TiYa3;57Qc7MJqU2f(Yep8Ev$l*ScrV#0EG}`{keIKE=h>SW|B;;#_hD++sL(bZ-@3j~~OLZtt(fmA-5LMOD4iac>v%2u_ zC#MM8(h^$-)u>Xk@WQ^gq!9T!5Xx1&lQUbAq2;QTl>Fb$X&PuI&ncI_8?2ulRFNVq#C&BS6*U+p{XN}k#1rgV zvZsu=ZEzh+Kdl_)lkpOigASfb`vmN6l#xa`2Ynwu-1>D)z%|6cv(psNqCgt${HH@f zj#l=xF8;5tZZR zo8U_gGTP}dL@`5>GhpHz#gLcBAkM0USAy?8JtKB{%_xy&=^$6~z%1U=oh>>-M#kQ0 zZn3x66!UeKiCDSe0tXS_Af3E;qHG2c@G4Z@Mm1#tRLz)n$dB;ff)Tx*0*Chi#f!5< zC<2>AQD+YmK>mVd2*_ycRH6jA=#g@}c-NPU+h4igm4VO(Z8^IivfZF_pSRwxIiJgY z{){2UCuQ{o8GBRGmymjP-e)_i>k{(TMz(#v^|Mmr(lot? ziMNb+2c^g?QM4 zzkq$Do1==TMf=F_0rwje_0MB~2Ambv*GdPEW_%1GmDVmTnlxzVL*p5YqwgA1R_9r| zwYQ}xgoy&T7hRcY#a|KU8juV&k|zB`Gp#JB)=3=vluDK z7C#o-KV`j#SS8%L3KbA>1S1Le7k6h@Xluf*IZ}Urk4V?DPa2-Ty)%dpcIKK0;O3!R zgv-F}`;pg1Xe){OR+G35zFhLJ7r?o`!d9Fr0Vkn;VH6S2E9rW3K8*!TboFg-ACRC} zQu@zl{|$PD^6BJbQu`W=`nP{p=>zcC(FWC$sgWDDjTdy}U=g+8o_<45S&a)Uex{dp zlVl81t&{#f#Q^Up+)Wz44sJ5ycvEMbG%4BJu@qxNF`j$+#1*?TvS$=_f);E6o7il~Jd~6oYP+a!; z(@QQ@uct2l*jH&f@tymVRbuS2BdE@Or`I{u32>|L5Xj#YcCNjhUJTl!AV z*oXVh*K=x$&-=s;JM%E2*qU9_z-IZg42Y^gy-w9|&UT*i?`HW8TEdIV#v{xA9Zwdb zZ55Tv=WZJJBJF2qEEazf?%}v%S_U?_aL|ZQvZOix21%4osD8swm z_ZnCljpyL8((;RWj-9e_@Z=$g$vXzX#`QxR5YwY zzG1o)<0bslecx!Umvju>WA3)5X^>f~op(d&{#}JV*x#RKFn_J||9=;TkM-52%)~hf zwzTs#Sh=dg@%Sj}Qi|Y}Te6cOnGpzy-_!N)z_{c-qqX+~Xj zF+LEArS>_K4)IRCN*ei*Y`JpI&BW@C9<+)|1v`35D>5!qV(Ss9D6|WEX(e|ojGFZ5 z(A-AYynf5zWFALMZM`!|0;hY@o|e3Z9qJv~87_5-Gh{H#I}=ahUNi)bFZAt^8a%xn zJ4`vYX03l%;WZGr6p9&<&sUqXhHTsrz&2xxw1SD_*y0Z-Y70j#A+DWA{|`W?A?v_QG-$TJbZDT3cQSnMz%al{m?L z))+2{kM_l^D5h!}pJFZQQ2_a92#0;R@K^4MZIKI_6uzD#s;&)uwrLymPaw0Z8hQG8 z317$Uku{&In@>K&|4+ z;ebs(2NNlm#y&$;Yy93PUm9}Mg!j(AhJ1=-^LbVBA>^xV+VE$rAHXo~{~Vf*YJX1l zR&A#{k3Fni98h2so5krQ`wAonWYM08W6zYYzkhKxSdc>u5A)`#RJM+@EX5>x81xYo z{7yR7mGIvff8xs-8g*K6ymxO$N2B0Qqq_7Fq&XyJ@8b5B>%EPw;;ej>$>D*?Y^B8; zeYSYP8jAC1;J7JTzQmFI)z`BXqwI$d3_#&)671qFcz&T! z$W;i2?R3P{2FEl zaL^prXz>b+*56vXRf$UVyFJcuPd^J16Ei}`=2w?0n@#Hpc;Y3KcpHf;gS1IANP8h{ zhS@eNW-$MLqFVbgHfU$?aHrr+{*ga}BF>!52dkfzuMDhYfS-2_BxnUicMam?>vG3fdzD8cw4_qC3mBOW zJ3-4)a9gwJgBlQR&OY)SBR>>5BA9$_2}i0w-?CUBSfm&C5fCg_+QN2|s_)IZ0Xjlob?DhsDBlW$4l zWYnlW~cPk+bcP^}|v1{pec2;!xNipM}3yN2q{* z#nVc%pkS!{(o9;+MN!D*C~{U!_)q(&CCie(LH5D~--6hHU@j$HcY5?xDaI26A2jWX z7@MUM{acY?FwP`lqE|_gRC}sTJNIncxhe}Z3>>rxDGH4m&+wgV&R$d(PnmS?l^;3K zvqrq-JHOxUAD)p6RiWBgrTE^DKZ67{k<$KYbk&)2M*C$-2j^3ekAAgw;pPl6okY%; zQa|Rd)&B2fa@o8rqDGI&MAg#n+`@?LOS96kW@a%*F=s*hNv|=Zyxn_hxz3z8TvNWQ z?E%>+tQ9WCcqt7hkz(_*-he%@$;>bHq676(7j&SK3vmaf6C&PG7r>MfAjWNBm6X9=os$rZfd1@|p+aYVL%yet zz%5H~7XPDNF@Zsddi>MYR^`!{+947pd$*r-r58tEI2!Q<#@8p->i^y19|$snIX#Iv z3yt#DSW$I*o1T3nn- zn>1eeHcXBW@#*o7njrXggc`n38O5KO$cMB1&BxPRLFv6jpDqW$LHX0`2lZs4=@qY> zzD)5gbvuo|SZK{>n%Hr?-C(#p*8a4)-N$K*3BcwdQu{PhF+RfpSL6+L+xdQb{5jpb z-{Sz4Z8kmWtoOAm(#iC$p+LC>iMU=lZ|TO1hX{BO03Fu8!{q3pK@E>0qdC2 zB$hg!GASIcd&Ymx96G$W-V+WSF()7W($cDjw;ex0x{P!sWTm^P67N`t5;4aPx|LHG z!>?cT^17bm1}_e(e1ZxF8<)?4{20>F)9!46{|W7ogf)pwfgI|e3*evRX)&?!lgHqy z2j@g+4&Gy--m$lUD7~{Qj-=H@=L`+g;G;pELL`3qZF41`S6?dZnbJ;x(+1+ z0i1|LJNfQ6xsYp!f8LVQ6PWW9S1E?vv0R%VcISTFz>m){xKJZB9lAtV&Z*?~Y8vZe zbfwrR{W*}3AS*=u)ybY`^%nz@Ds!L+T+^=d=bE z6@`I3rN+)XRcKYrRjGE-aue$wq5zfsu4t)T?GHh+?|cl8N_h_GYnUj3sT`o1PX`8U zSJA{|R9A{)>Gzf2agf@CMW*4Mfw?WR0}|w3xp6O|0|PxG3Oux@`~^l=(a5kQeXjN# z@U7#k-K&JAbojcO@@Y(Wr+T~K!$)Df7I9SGxzXu79iuYvW}z5*NE2CLh`^AfJ|CfJ z$woaWQTJ<*6gG2>s+FrECGUT4ir=7b#-NZPUyts5y$frkB8mKPgD{K6==C;+g;L^A@p~A zTH`yChs}MWp=RYw7v{i~o12lL#~NV7*jJqEs4O0mei$>pSEt&TpDK$|U$2CIf<{em zU(U9(!NzO3u2q@zeMKinHVjc%D*2hbKKmP7q_&-fi4t~yPJ~R0^`i#c^+nK*E#k^2A<69%>YO`I1K@ckkm@k4Ig0=#MTdII#T8MXpvt*b0YkQbC#s4 zVmR7YDXVqY8k8E3BzC9F5u=Bli;HNkPIjG4QmQ2a^M*=GfCjFu_(alYB;Qq z169qE^9j`b?KM0NT26SDh@-IDetb+?MN2CxtNE^64DzE91xt`6J6%vmCX2`^x7!rZ zjX1tF)Xi3)(s!q+#?ROt`nNcIg!J^UWW2o34TpoZC097MvasM@=|%7A;~RutRX~Ji zW*!}U3RU5{M?Ic1@7qrwsVguaktdKkeSKbAy?kl<<~1|D(daF3VSbKXV5W0+6q&n; zTeKVSp8H9x?_{@bbg&a`HmJUCNp#!l)spcFQG7+i_*PK{1hZGUk3l^^CSF*`H*`#O z*lEDjC}ic#gPs?RO2DRr(E@5NX3RxjjQdVE{>1WF5bec9=exyes<3v2} zHS6O?vh%<&p+t01__Z7rba`G)Dat`*OISx4OMfs3-6Ku*UCx7qg?fndJ(h=%0D!1Vb?%Iz<0KbxZczC!_ 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%0Aeqag@3#Qlh3K52ok2 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%0A5y!;sptJ1A$PtR~-x<@BRmCWER!7oqGY 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%0Av_>K5 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:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #cfe2ff;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg: #e2e3e5;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg: #d1e7dd;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg: #cff4fc;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg: #fff3cd;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg: #f8d7da;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #ffffff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #ffffff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #ffffff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:.25rem;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:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;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:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.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:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23ffffff'/%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:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#198754;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='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.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:#198754}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;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='%23dc3545'%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='%23dc3545' 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:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.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:#dc3545}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-default{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-default:hover{color:#000;background-color:#e3e6ea;border-color:#e1e5e9}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#e3e6ea;border-color:#e1e5e9;box-shadow:0 0 0 .25rem rgba(189,192,196,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#e5e8eb;border-color:#e1e5e9}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(189,192,196,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info:disabled,.btn-info.disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-default{color:#dee2e6;border-color:#dee2e6;background-color:transparent}.btn-outline-default:hover{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(222,226,230,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(222,226,230,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#dee2e6;background-color:transparent}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd;background-color:transparent}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d;background-color:transparent}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754;background-color:transparent}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#198754;border-color:#198754}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0;background-color:transparent}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107;background-color:transparent}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545;background-color:transparent}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa;background-color:transparent}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529;background-color:transparent}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#212529;border-color:#212529}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.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:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#517699}.navbar-light .navbar-brand{color:#fdfefe}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#fdfefe}.navbar-light .navbar-nav .nav-link{color:#fdfefe}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(253,254,254,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(253,254,254,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#fdfefe}.navbar-light .navbar-toggler{color:#fdfefe;border-color:rgba(253,254,254,.4)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#fdfefe}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#fdfefe}.navbar-dark{background-color:#517699}.navbar-dark .navbar-brand{color:#fdfefe}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fdfefe}.navbar-dark .navbar-nav .nav-link{color:#fdfefe}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(253,254,254,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(253,254,254,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#fdfefe}.navbar-dark .navbar-toggler{color:#fdfefe;border-color:rgba(253,254,254,.4)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfefe' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#fdfefe}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fdfefe}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #dee2e6;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:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#595a5c;background-color:#f8f9fa;border-color:#f5f6f8}.alert-default .alert-link{color:#47484a}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;display:-webkit-flex;height:1rem;overflow:hidden;font-size:0.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#595a5c;background-color:#f8f9fa}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#595a5c;background-color:#dfe0e1}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#595a5c;border-color:#595a5c}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(0.3rem - 1px);border-bottom-left-radius:calc(0.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%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='%23ffffff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#dee2e6}.link-default:hover,.link-default:focus{color:#e5e8eb}.link-primary{color:#0d6efd}.link-primary:hover,.link-primary:focus{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:hover,.link-warning:focus{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.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: calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#dee2e6 !important}.border-primary{border-color:#0d6efd !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.345rem + 1.14vw) !important}.fs-2{font-size:calc(1.3rem + 0.6vw) !important}.fs-3{font-size:calc(1.275rem + 0.3vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2.2rem !important}.fs-2{font-size:1.75rem !important}.fs-3{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.tippy-box[data-theme~=quarto]{background-color:#fff;color:#212529;border-radius:.25rem;border:solid 1px #dee2e6;font-size:.875rem}.tippy-box[data-theme~=quarto] .tippy-arrow{color:#dee2e6}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:-1px}.tippy-box[data-placement^=bottom]>.tippy-content{padding:.75em 1em;z-index:1}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p{text-align:left}.quarto-figure-center>figure>p{text-align:center}.quarto-figure-right>figure>p{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link,div[id^=tbl-]>.anchorjs-link{position:absolute;top:0;right:0}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{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}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! -* -* ansi colors from IPython notebook's -* -*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:transparent}.code-copy-button:focus{outline:none}pre.sourceCode:hover>.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}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.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}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] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 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] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [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] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(750px - 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.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(1200px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] 50px [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] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 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] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 100px) [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] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 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(750px - 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(750px - 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(750px - 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(1200px - 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] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 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] 1em [body-content-start] minmax(500px, calc(750px - 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(750px - 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( 1000px - 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(800px - 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 page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(750px - 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.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(750px - 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(750px - 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(750px - 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]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#fff}#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{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}.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{margin-top:2rem;margin-bottom:1rem}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3,h4,.h4{margin-top:1.5rem}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:1rem}.panel-caption,.figure-caption,figcaption{color:#5a6570}.table-caption,caption{color:#212529}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.tab-content{margin-top:0px;border-left:#dee2e6 1px solid;border-right:#dee2e6 1px solid;border-bottom:#dee2e6 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.25rem}pre.sourceCode{background-color:transparent}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode){background-color:#f6f6f6;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode){background-color:transparent;padding:0}#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;background-color:inherit;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:transparent;transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.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>ul>li>a.active{border-left:1px solid #0d6efd;color:#0d6efd !important}.sidebar nav[role=doc-toc] ul>li>a.active{border-left:1px solid #0d6efd;color:#0d6efd !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>:not(:first-child){border-top-width:1px;border-top-color:#dee2e6}.table>thead{border-bottom:1px solid currentColor}.table>tbody{border-top:1px solid #dee2e6}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem}.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:1rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-captioned .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-captioned.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-captioned>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-captioned .callout-body>:last-child:not(.sourceCode),.callout.callout-captioned .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-captioned) .callout-body>:last-child,.callout:not(.callout-captioned) .callout-body>div>:last-child{margin-bottom:.25rem}.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-caption-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:#0d6efd}div.callout-note.callout-style-default>.callout-header{background-color:#e7f1ff}div.callout-note:not(.callout-captioned) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-captioned .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:#198754}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f3ee}div.callout-tip:not(.callout-captioned) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-captioned .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-captioned) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-captioned .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:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}div.callout-caution:not(.callout-captioned) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-captioned .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:#dc3545}div.callout-important.callout-style-default>.callout-header{background-color:#fcebec}div.callout-important:not(.callout-captioned) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-captioned .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}@media(min-width: 992px){.navbar .quarto-color-scheme-toggle{padding-left:.5rem;padding-right:.5rem}}@media(max-width: 767.98px){.navbar .quarto-color-scheme-toggle{padding-left:0;padding-right:0;padding-bottom:.5em}}.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}.navbar-collapse .quarto-color-scheme-toggle{padding-left:.6rem;padding-right:0;margin-top:-12px}.sidebar-navigation{padding-left:20px}.sidebar-navigation .quarto-color-scheme-toggle .bi::before{padding-top:.2rem;margin-bottom:-0.2rem}.sidebar-tools-main .quarto-color-scheme-toggle .bi::before{padding-top:.2rem;margin-bottom:-0.2rem}.navbar .quarto-color-scheme-toggle .bi::before{padding-top:7px;margin-bottom:-7px;padding-left:2px;margin-right:2px}.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:#fafafa}#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:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#fefefe;background-color:#6c757d;border-color:#6c757d}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#fefefe;background-color:#828a91;border-color:#7b838a}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#fefefe;background-color:#828a91;border-color:#7b838a;box-shadow:0 0 0 .25rem rgba(130,138,144,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#899197;border-color:#7b838a}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,144,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#517699;color:#fdfefe}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#fdfefe}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner,body.nav-sidebar .quarto-title-banner{display:none}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.quarto-title-banner{margin-bottom:1em;color:#fdfefe;background:#517699}.quarto-title-banner .code-tools-button{color:#b9dcdc}.quarto-title-banner .code-tools-button:hover{color:#fdfefe}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block section:first-of-type h2:first-of-type,main.quarto-banner-title-block section:first-of-type .h2:first-of-type,main.quarto-banner-title-block section:first-of-type h3:first-of-type,main.quarto-banner-title-block section:first-of-type .h3:first-of-type,main.quarto-banner-title-block section:first-of-type h4:first-of-type,main.quarto-banner-title-block section:first-of-type .h4:first-of-type{margin-top:0}.quarto-title .quarto-categories{display:flex;column-gap:.4em;padding-bottom:.5em;margin-top:.25em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#212529}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}/*# sourceMappingURL=397ef2e52d54cf686e4908b90039e9db.css.map */ diff --git a/index_files/libs/bootstrap/bootstrap.min.js b/index_files/libs/bootstrap/bootstrap.min.js deleted file mode 100644 index cc0a25561..000000000 --- a/index_files/libs/bootstrap/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v5.1.3 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); -//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/index_files/libs/clipboard/clipboard.min.js b/index_files/libs/clipboard/clipboard.min.js deleted file mode 100644 index 41c6a0f7b..000000000 --- a/index_files/libs/clipboard/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.10 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); -// @license-end \ No newline at end of file diff --git a/index_files/libs/quarto-html/popper.min.js b/index_files/libs/quarto-html/popper.min.js deleted file mode 100644 index 2269d6696..000000000 --- a/index_files/libs/quarto-html/popper.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @popperjs/core v2.11.4 - MIT License - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); - diff --git a/index_files/libs/quarto-html/quarto-syntax-highlighting.css b/index_files/libs/quarto-html/quarto-syntax-highlighting.css deleted file mode 100644 index 0bba76702..000000000 --- a/index_files/libs/quarto-html/quarto-syntax-highlighting.css +++ /dev/null @@ -1,167 +0,0 @@ -/* 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; -} - -code span { - color: #003B4F; -} - -code.sourceCode > span { - color: #003B4F; -} - -div.sourceCode, -div.sourceCode pre.sourceCode { - color: #003B4F; -} - -code span.ot { - color: #003B4F; -} - -code span.at { - color: #657422; -} - -code span.ss { - color: #20794D; -} - -code span.an { - color: #5E5E5E; -} - -code span.fu { - color: #4758AB; -} - -code span.st { - color: #20794D; -} - -code span.cf { - color: #003B4F; -} - -code span.op { - color: #5E5E5E; -} - -code span.er { - color: #AD0000; -} - -code span.bn { - color: #AD0000; -} - -code span.al { - color: #AD0000; -} - -code span.va { - color: #111111; -} - -code span.pp { - color: #AD0000; -} - -code span.in { - color: #5E5E5E; -} - -code span.vs { - color: #20794D; -} - -code span.wa { - color: #5E5E5E; - font-style: italic; -} - -code span.do { - color: #5E5E5E; - font-style: italic; -} - -code span.im { - color: #00769E; -} - -code span.ch { - color: #20794D; -} - -code span.dt { - color: #AD0000; -} - -code span.fl { - color: #AD0000; -} - -code span.co { - color: #5E5E5E; -} - -code span.cv { - color: #5E5E5E; - font-style: italic; -} - -code span.cn { - color: #8f5902; -} - -code span.sc { - color: #5E5E5E; -} - -code span.dv { - color: #AD0000; -} - -code span.kw { - color: #003B4F; -} - -.prevent-inlining { - content: " { - 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); - }); - - // 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; - - return (hiddenRegions) => { - if (el === null) { - return; - } - - // Find the last element of the TOC - const lastChildEl = el.lastElementChild; - - if (lastChildEl) { - // Find the top and bottom o the element that is being managed - const elTop = el.offsetTop; - const elBottom = - elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; - - // Converts the sidebar to a menu - const convertToMenu = () => { - for (const child of el.children) { - child.style.opacity = 0; - child.style.display = "none"; - } - - 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.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"; - 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; - } - }; - - const positionToggle = () => { - // position the element (top left of parent, same width as parent) - const elRect = el.getBoundingClientRect(); - toggleContainer.style.left = `${elRect.left}px`; - toggleContainer.style.top = `${elRect.top}px`; - toggleContainer.style.width = `${elRect.width}px`; - }; - - // 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(() => { - positionToggle(); - }, 50) - ); - positionToggle(); - - // 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; - clone.style.display = null; - } - - const placeholderEl = window.document.getElementById( - placeholderDescriptor.id - ); - if (placeholderEl) { - placeholderEl.remove(); - } - - el.classList.remove("rollup"); - }; - - if (isReaderMode()) { - convertToMenu(); - isVisible = false; - } else { - 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; - } - } - } - } - }; - }; - - // Find any conflicting margin elements and add margins to the - // top to prevent overlap - const marginChildren = window.document.querySelectorAll( - ".column-margin.column-container > * " - ); - let lastBottom = 0; - for (const marginChild of marginChildren) { - const top = marginChild.getBoundingClientRect().top; - if (top < lastBottom) { - const margin = lastBottom - top; - marginChild.style.marginTop = `${margin}px`; - } - lastBottom = top + marginChild.getBoundingClientRect().height; - } - - // 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 top = - el.getBoundingClientRect().top + - document.documentElement.scrollTop - - kOverlapPaddingSize; - return { - top, - bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, - }; - }); - } - - const hideOverlappedSidebars = () => { - marginScrollVisibility(toRegions(rightSideConflictEls)); - sidebarScrollVisiblity(toRegions(leftSideConflictEls)); - if (tocLeftScrollVisibility) { - tocLeftScrollVisibility(toRegions(leftSideConflictEls)); - } - }; - - 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; - - // 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 (depth === 1 || 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()); -}); - -function throttle(func, wait) { - let waiting = false; - return function () { - if (!waiting) { - func.apply(this, arguments); - waiting = true; - setTimeout(function () { - waiting = false; - }, wait); - } - }; -} diff --git a/index_files/libs/quarto-html/tippy.css b/index_files/libs/quarto-html/tippy.css deleted file mode 100644 index e6ae635cb..000000000 --- a/index_files/libs/quarto-html/tippy.css +++ /dev/null @@ -1 +0,0 @@ -.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/index_files/libs/quarto-html/tippy.umd.min.js b/index_files/libs/quarto-html/tippy.umd.min.js deleted file mode 100644 index ca292be32..000000000 --- a/index_files/libs/quarto-html/tippy.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!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})); - From bb5144ac1cf6a273302e3006091e755f32dcdaf9 Mon Sep 17 00:00:00 2001 From: Jorge Sanchez Date: Mon, 17 Apr 2023 11:32:57 -0400 Subject: [PATCH 07/23] testing with references --- ... techniques. RNN and Transformer Model.qmd | 2 +- index.html | 2515 ++++++++++++++++- index.qmd | 50 +- references.bib | 63 +- 4 files changed, 2410 insertions(+), 220 deletions(-) diff --git a/NER - Deep Learning techniques. RNN and Transformer Model.qmd b/NER - Deep Learning techniques. RNN and Transformer Model.qmd index 547fe8bc8..67e701d9e 100644 --- a/NER - Deep Learning techniques. RNN and Transformer Model.qmd +++ b/NER - Deep Learning techniques. RNN and Transformer Model.qmd @@ -82,7 +82,7 @@ I will use the dataset called corona2 from Kaggle to identify Natural Entity Rec **Data Definition** | Column Name | Type | Description | -|-------------|---------|-----------------------------------------------------| +|------------------|------------------|-----------------------------------| | Text | string | Sentence including the labels | | Starts | integer | Position on where the label starts | | Ends | integer | Position on where the label ends | diff --git a/index.html b/index.html index 221036922..139e437b8 100644 --- a/index.html +++ b/index.html @@ -57,12 +57,12 @@ +!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 - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + @@ -3155,14 +102,26 @@
-

NER - Deep Learning techniques. RNN and Transformer Model

+

NER using RNNs and Transformer Models

+
+
Author
+
+

Sara Ericson, Andrew Campbell, Jorge Sanchez

+
+
+
+
Published
+
+

April 25, 2023

+
+
@@ -3170,30 +129,80 @@

NER - Deep Learning techniques. RNN and Transformer Model

+
+

Slides

+

Presentation

+

1. Introduction

-

Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions.

+

Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Biomedical NER is the task of text mining to specifically biomedical texts to determine entity types (xiong2021Improving?). Similarly, medical NER tasks usually find the boundaries of mentions from medical texts (Zhao_Liu_Zhao_Wang_2019?). Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions.

The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER.

In this literature review, we will explore and compare the effectiveness of RNNs and the Transformer model for Named Entity Recognition (NER) tasks.

1.1 Recurrent Neural Networks (RNN)

-

A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN’s memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems.

+

A Recurrent Neural Network (RNN) is a method of deep learning that is useful for sequential data and time-series data. RNNs are often used in ordinal problems, where the output is discrete and ordered, as well as temporal problems, in which the time that data is collected is important. These problems include speech recognition, language translation, and natural language processing (NLP). RNNs are similar to other neural networks, but they have some distinct differences. Other neural network models can be used for medical text mining, however, RNNs have been shown to be one of the most effective models. This model has some drawbacks, but they can be mitigated with the use of Long Short-Term Memory (LSTM) cells in the hidden layers of the neural network (Wu_Jiang_Xu_Zhi_Xu2018ClinicalNER?). RNNs have the ability to allow information to persist across multiple steps which enables the network to capture dependencies and context. This is a feature that makes it ideal for NER in which the context is very important. The specifics of a recurrent neural network will be discussed later

1.2 Transformer Model

-

The Transformer model is a groundbreaking neural network architecture introduced in the paper “Attention Is All You Need” (Vaswani et al. 2017) . ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model’s strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures.

+

The Transformer model is a groundbreaking neural network architecture introduced in the paper “Attention Is All You Need” (Vaswani et al. 2017). ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model’s strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures.

1.3 Limitations

-

[In progress - Pending RNN Method]

-

Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers’ ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers (Keles, Wijewardena, and Hegde 2022) .

+

A major limitation of current techniques is that the standard language models are unidirectional, and thus limit the choice of architecture that can be used for pre-training (devlin2019bert?).

+

Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers’ ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.(Keles, Wijewardena, and Hegde 2022)

2 Methods

-

[In progress - Pending RNN Method]

2.1 RNN

+

A neural network has three layers. An input layer, a hidden layer, and an output layer. A recurrent neural network (RNN) also has three layers, but with the addition of a recurrent component that takes the output from a previous iteration and includes it in the current iteration. This is what makes RNNs useful for sequential and temporal data. Basic neural networks are optimized using back propagation which involves finding the gradient of a parameter and then using a gradient descent algorithm to find values that minimize a loss function (such as error).

+

Example of Loss function (Mean Squared Error)
+
+\(\text{L(𝜽)} = (1/N) * ∑(y_i - y_i^*)^2\)
+

+

Gradient Descent Algorithm
+
+\(\text{𝜽}_j =𝜽_j - 𝛼 (∂J(𝜽) / ∂𝜽_j)\)
+

+

N : number of vector entires with yi in output vector

+

yi : predicted value

+

yi* : actual value

+

𝛼 : learning rate

+

𝜽j : input

+

This will cause the weight parameters to be updated. When a large amount of data is used this can cause the weights to increase or decrease dramatically creating a problem known as vanishing or exploding gradients. When this occurs the weights will either be extremely close to zero or extremely large, which may be represented by a NaN value. An example when large amounts of data may be used is NER in which the context of previous words and characters is relevant. To mitigate an exploding or vanishing gradient long short-term memory (LSTM) cells may be used within the hidden layer. LSTM cells make use of three gates. An input gate, a forget gate, and an output gate. These gates use a sigmoid function which outputs a value between zero and one. Zero blocks all information and one allows all information through. The input gate determines which information is stored in the cell. The forget gate determines which information will be discarded. The output gate provides the activation for the final output. The sigmoid function is given below along with a general equation for the gates. When using LSTMs the weights and biases are the same among every iteration. This is so the RNN model can be applied to data of varying lengths.(Cho2019BiomedNER?)

+

Sigmoid
+
+\(\text{f(x)} = {1/(1+e^{-x})}\)
+

+

General gate equation
+
+\(\text{g}_i = 𝝈(w[h_{i-1}, x_i] + b)\)
+

+

x : input

+

𝝈 : sigmoid function

+

w : weight

+

h : information of i-th iteration

+

b : bias

+

LSTMs have a cell state that is the result of the gates and a few other calculations. This state is what provides the cell with its “memory” which is very useful in NER when the memory of what was written or previously said can determine what should come next in a sentence. The other equations used besides sigmoid are shown below.

+

Possible cell state at i-th iteration
+
+\(\text{c}_i^*=tanh(w[h_{i-1}, x_i] + b)\)
+

+

Cell state
+
+\(\text{c}_i = (forget gate * c_{i-1}) + (input gate * c_i^* )\)
+

+

Output
+
+\(\text{h}_i = (output gate * tanh(c_i))\)
+

+

tanh
+
+\(\text{f(x)} = (e^x - e^{-x})/(e^x + e^{-x})\)
+

+

tanh : activation function

+

These equations determine which information is passed through the cell and the ultimate state of the cell at the present iteration. The type of RNN used in NER is many-to-many RNN. This type of RNN uses each word as an input to build the state (the context) of the model. This is what can be subsequently used in making predictions.

2.2 Transformer Model

@@ -3230,13 +239,13 @@

2.2 Transformer Model<

3 Data Analysis and Results

3.1 Dataset Description

-

I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition.

+

We will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. Similarly to the dataset used in (xiong2021Improving?), the dataset was manually tagged for training. We will use the Transformer model and the RNN model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition.

Data Definition

---+++ @@ -3282,129 +291,131 @@

3.2 Data Preparation

-

The following python code will load the required libraries

-

nbclient: Executes Jupyter notebooks programmatically.

-

requests: Sends HTTP requests and interacts with RESTful APIs in Python.

-

Pandas: Manipulates and analyzes tabular data using DataFrame and Series.

-

nbformat: Reads, writes, and manipulates Jupyter Notebook files.

-

plotly.express: Creates interactive data visualizations with a simple interface.

-
-
!pip install -q nbclient
-!pip install -q requests
-!pip install -q pandas
-!pip install -q nbformat
-!pip install -q plotly.express
+

The following python code will load the required libraries:

+
    +
  • nbclient : Executes Jupyter notebooks programmatically

  • +
  • requests : Sends HTTP requests and interacts with RESTful APIs in Python

  • +
  • pandas : Manipulates and analyzes tabular data using DataFrame and Series

  • +
  • nbformat : Reads, writes, and manipulates Jupyter Notebook files

  • +
  • plotly.express : Creates interactive data visualizations with a simple interface

  • +
+
+
+Code +
library(reticulate)
+
+
+
Warning: package 'reticulate' was built under R version 4.2.3
+
+
+Code +
# do the following ONCE AND COMMENT
+py_install("nbclient")
+
+
+
+ "C:/Users/Jorge/AppData/Local/r-miniconda/condabin/conda.bat" "install" "--yes" "--name" "r-reticulate" "-c" "conda-forge" "nbclient"
+
+
+Code +
py_install("requests")
+
+
+
+ "C:/Users/Jorge/AppData/Local/r-miniconda/condabin/conda.bat" "install" "--yes" "--name" "r-reticulate" "-c" "conda-forge" "requests"
+
+
+Code +
py_install("pandas")
+
+
+
+ "C:/Users/Jorge/AppData/Local/r-miniconda/condabin/conda.bat" "install" "--yes" "--name" "r-reticulate" "-c" "conda-forge" "pandas"
+
+
+Code +
py_install("nbformat")
+
+
+
+ "C:/Users/Jorge/AppData/Local/r-miniconda/condabin/conda.bat" "install" "--yes" "--name" "r-reticulate" "-c" "conda-forge" "nbformat"
+
+
+Code +
py_install("plotly")
+
+
+
+ "C:/Users/Jorge/AppData/Local/r-miniconda/condabin/conda.bat" "install" "--yes" "--name" "r-reticulate" "-c" "conda-forge" "plotly"
+

Import the data from Github to local.

-
-
import requests
-
-# Accessing the JSON file from GitHub
-url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
-# HTTP GET request to the raw URL
-response = requests.get(url)
-# I am checking if the request was successful (status code 200)
-if response.status_code == 200:
-    # Parse the JSON data from the response
-    data = response.json()
-    print('Success, the Json data was stored into the data variable')
-else:
-    print('Failed to fetch JSON data:', response.status_code)
+
+
+Code +
url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
+# HTTP GET request to the raw URL
+response = requests.get(url)
+# I am checking if the request was successful (status code 200)
+if response.status_code == 200:
+    # Parse the JSON data from the response
+    data = response.json()
+    print('Success, the Json data was stored into the data variable')
+else:
+    print('Failed to fetch JSON data:', response.status_code)
+
Success, the Json data was stored into the data variable

Parse json data into dictionary to manipulate data.

-
-
training_data = []
-for example in data['examples']:
-  temp_dict = {}
-  temp_dict['text'] = example['content']
-  temp_dict['entities'] = []
-  for annotation in example['annotations']:
-    start = annotation['start']
-    end = annotation['end']
-    label = annotation['tag_name'].upper()
-    temp_dict['entities'].append((start, end, label))
-  training_data.append(temp_dict)
+
+
+Code +

+training_data = []
+for example in data['examples']:
+  temp_dict = {}
+  temp_dict['text'] = example['content']
+  temp_dict['entities'] = []
+  for annotation in example['annotations']:
+    start = annotation['start']
+    end = annotation['end']
+    label = annotation['tag_name'].upper()
+    temp_dict['entities'].append((start, end, label))
+  training_data.append(temp_dict)
+

Convert data from Dictionary to Dataframe. I am only showing the Text and Labels for each sentence

-
-
import pandas as pd
-# I am initialing empty lists to store the data for the DataFrame
-texts = []
-starts = []
-ends = []
-labels = []
-
-# Iterate through the training_data to extract individual entity annotations
-for example in training_data:
-    text = example['text']
-    for entity in example['entities']:
-        start, end, label = entity
-        # Append data to the lists
-        texts.append(text)
-        starts.append(start)
-        ends.append(end)
-        labels.append(label)
-
-# Create a DataFrame from the lists
-df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
-df.head(5)
-
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
textstartendlabel
0While bismuth compounds (Pepto-Bismol) decreas...360371MEDICINE
1While bismuth compounds (Pepto-Bismol) decreas...383408MEDICINE
2While bismuth compounds (Pepto-Bismol) decreas...104112MEDICALCONDITION
3While bismuth compounds (Pepto-Bismol) decreas...679689MEDICINE
4While bismuth compounds (Pepto-Bismol) decreas...623MEDICINE
- - +
+
+Code +
import pandas as pd
+# I am initialing empty lists to store the data for the DataFrame
+texts = []
+starts = []
+ends = []
+labels = []
+
+# Iterate through the training_data to extract individual entity annotations
+for example in training_data:
+    text = example['text']
+    for entity in example['entities']:
+        start, end, label = entity
+        # Append data to the lists
+        texts.append(text)
+        starts.append(start)
+        ends.append(end)
+        labels.append(label)
+
+# Create a DataFrame from the lists
+df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
+df.head(5)
+
+
+
                                                text  ...             label
+0  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+1  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+2  While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
+3  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+4  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+
+[5 rows x 4 columns]
@@ -3413,245 +424,192 @@

3.3 Data statistics

  1. Our analysis begins with examining the frequency of each label in the dataset. The dataset contains 134 instances of ‘Medical Condition’, 94 instances of ‘Medicine’, and 67 instances of ‘Pathogen’. This data provides an overview of label distribution.
-
-
import plotly.express as px
-
-# Count the occurrences of each label
-label_counts = df['label'].value_counts()
-
-# Create a DataFrame with labels and their respective counts
-df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values})
-
-# Plot the frequency of each entity label using a bar plot in Plotly
-fig = px.bar(df_counts, x='label', y='count', text='count', color='label',
-             color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels')
-
-# Display the counter label inside the bars
-fig.update_traces(textposition='inside')
-
-# Update axis titles
-fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency')
-
-fig.show()
-
- -
+
+
+Code +

+import plotly.express as px
+
+# Count the occurrences of each label
+label_counts = df['label'].value_counts()
+
+# Create a DataFrame with labels and their respective counts
+df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values})
+
+# Plot the frequency of each entity label using a bar plot in Plotly
+fig = px.bar(df_counts, x='label', y='count', text='count', color='label',
+             color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels')
+
+fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency')
+
+# Display the counter label inside the bars
+#fig.update_traces(textposition='inside')
+# Update axis titles
+#fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency')
+
+#fig.show()
+
+
+ +
+
  1. The chart below displays the distribution of biomedical Entity labels in the dataset. ‘Medical Condition’ is the most prevalent at 45.4%, followed by ‘Medicine’ at 31.9%, and ‘Pathogen’ at 22.7%. The chart provides insights into the dataset composition and label prevalence..
-
-
import plotly.express as px
-
-# Get the counts of each unique label
-label_counts = df['label'].value_counts()
-# Plot a pie chart using Plotly
-fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3)
-fig.update_traces(textinfo='percent+label', textfont_size=12)
-fig.show()
-
- -
+
+
+Code +

+import plotly.express as px
+
+# Get the counts of each unique label
+label_counts = df['label'].value_counts()
+# Plot a pie chart using Plotly
+fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3)
+fig.update_traces(textinfo='percent+label', textfont_size=12)
+#fig.show()
+
+
+ +
+
  1. The histogram below visualizes the start positions of entity labels in the text. It reveals that most entities occur within the first five hundred words.
-
-
import plotly.express as px
-
-# Plot a histogram of entity start positions using Plotly
-fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions')
-fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency')
-fig.show()
-
- -
+
+
+Code +

+import plotly.express as px
+
+# Plot a histogram of entity start positions using Plotly
+fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions')
+fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency')
+#fig.show()
+
+
+ +
+
  1. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position.
-
-
import plotly.express as px
-
-# Create box plots for 'start' and 'end' columns using Plotly
-fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions')
-fig.update_layout(yaxis_title='Value', xaxis_title='Column')
-fig.show()
-
- -
+
+
+Code +

+import plotly.express as px
+
+# Create box plots for 'start' and 'end' columns using Plotly
+fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions')
+fig.update_layout(yaxis_title='Value', xaxis_title='Column')
+#fig.show()
+
+
+ +
+

4 Transformer Model Results

-

[In Progress]

+

[Pending]

Loading Required Libraries for training

-
-
#!pip install transformers
-#!pip install torch
+
+
+Code +
#!pip install transformers
+#!pip install torch
+

The following code will retrieve the hosted Json dataset from my Github repositoy

-
-
import requests
-
-# Extracting the raw Json data from GitHub URL. I am hosting the dataset in my own repository
-url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
-# HTTP GET request to the raw URL
-response = requests.get(url)
-# Check if the request was successful (status code 200)
-if response.status_code == 200:
-    # Parse the JSON data from the response
-    data = response.json()
-    print('We retrieved the Json data successfully')
-else:
-    print('Failed to fetch JSON data:', response.status_code)
+
+
+Code +
import requests
+
+# Extracting the raw Json data from GitHub URL. I am hosting the dataset in my own repository
+url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json'
+# HTTP GET request to the raw URL
+response = requests.get(url)
+# Check if the request was successful (status code 200)
+if response.status_code == 200:
+    # Parse the JSON data from the response
+    data = response.json()
+    print('We retrieved the Json data successfully')
+else:
+    print('Failed to fetch JSON data:', response.status_code)
+
We retrieved the Json data successfully

The following code block formats the raw data into a structure suitable for training a NER model. The raw data contains multiple examples, each with text content and annotations. The annotations include the start and end positions of entities and their corresponding labels. The output is a list of dictionaries, each representing an example containing the text and a list of entities with their positions and labels.

-
-
training_data = []
-for example in data['examples']:
-  temp_dict = {}
-  temp_dict['text'] = example['content']
-  temp_dict['entities'] = []
-  for annotation in example['annotations']:
-    start = annotation['start']
-    end = annotation['end']
-    label = annotation['tag_name'].upper()
-    temp_dict['entities'].append((start, end, label))
-  training_data.append(temp_dict)
-print('Our dataset contains the following number of samples: ', len(training_data))
+
+
+Code +
training_data = []
+for example in data['examples']:
+  temp_dict = {}
+  temp_dict['text'] = example['content']
+  temp_dict['entities'] = []
+  for annotation in example['annotations']:
+    start = annotation['start']
+    end = annotation['end']
+    label = annotation['tag_name'].upper()
+    temp_dict['entities'].append((start, end, label))
+  training_data.append(temp_dict)
+print('Our dataset contains the following number of samples: ', len(training_data))
+
Our dataset contains the following number of samples:  31

This code formats entity annotations for our NER task. It selects the first training example, retrieves the text and annotated entities, and presents them in a table with start and end positions and labels. The output includes the text and a table of entities.

-
-
import pandas as pd
-example = training_data[0]
-
-# Extract text and entities from the selected example
-text = example['text']
-entities = example['entities']
-
-# Create a dataframe to store the entities with column names: Start, End, Label
-entities_df = pd.DataFrame(entities, columns=['Start', 'End', 'Label'])
-
-# Display the text and entities table
-print("Text:", text)
-print("Entities:")
-print(entities_df)
+
+
+Code +
import pandas as pd
+example = training_data[0]
+
+# Extract text and entities from the selected example
+text = example['text']
+entities = example['entities']
+
+# Create a dataframe to store the entities with column names: Start, End, Label
+entities_df = pd.DataFrame(entities, columns=['Start', 'End', 'Label'])
+
+# Display the text and entities table
+print("Text:", text)
+
-
Text: While bismuth compounds (Pepto-Bismol) decreased the number of bowel movements in those with travelers' diarrhea, they do not decrease the length of illness.[91] Anti-motility agents like loperamide are also effective at reducing the number of stools but not the duration of disease.[8] These agents should be used only if bloody diarrhea is not present.[92]
+
Text: While bismuth compounds (Pepto-Bismol) decreased the number of bowel movements in those with travelers' diarrhea, they do not decrease the length of illness.[91] Anti-motility agents like loperamide are also effective at reducing the number of stools but not the duration of disease.[8] These agents should be used only if bloody diarrhea is not present.[92]
 
 Diosmectite, a natural aluminomagnesium silicate clay, is effective in alleviating symptoms of acute diarrhea in children,[93] and also has some effects in chronic functional diarrhea, radiation-induced diarrhea, and chemotherapy-induced diarrhea.[45] Another absorbent agent used for the treatment of mild diarrhea is kaopectate.
 
-Racecadotril an antisecretory medication may be used to treat diarrhea in children and adults.[86] It has better tolerability than loperamide, as it causes less constipation and flatulence.[94]
-Entities:
-    Start  End             Label
+Racecadotril an antisecretory medication may be used to treat diarrhea in children and adults.[86] It has better tolerability than loperamide, as it causes less constipation and flatulence.[94]
+
+
+Code +
print("Entities:")
+
+
+
Entities:
+
+
+Code +
print(entities_df)
+
+
+
    Start  End             Label
 0     360  371          MEDICINE
 1     383  408          MEDICINE
 2     104  112  MEDICALCONDITION
@@ -3673,136 +631,141 @@ 

4 Transformer Model Results

The following code constructs a DataFrame that consolidates entity annotations from the training data for our NER task. The code extracts the text, start position, end position, and label for each annotated entity in the training examples. The resulting DataFrame organizes this information in columns, providing a comprehensive view of all entity annotations across the training dataset.

-
-
import pandas as pd
-# Initialize empty lists to store the data for the DataFrame
-texts = []
-starts = []
-ends = []
-labels = []
-
-# Iterate through the training_data to extract individual entity annotations
-for example in training_data:
-    text = example['text']
-    for entity in example['entities']:
-        start, end, label = entity
-        # Append data to the lists
-        texts.append(text)
-        starts.append(start)
-        ends.append(end)
-        labels.append(label)
-
-# Create a DataFrame from the lists
-df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
-df
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
textstartendlabel
0While bismuth compounds (Pepto-Bismol) decreas...360371MEDICINE
1While bismuth compounds (Pepto-Bismol) decreas...383408MEDICINE
2While bismuth compounds (Pepto-Bismol) decreas...104112MEDICALCONDITION
3While bismuth compounds (Pepto-Bismol) decreas...679689MEDICINE
4While bismuth compounds (Pepto-Bismol) decreas...623MEDICINE
...............
290Influenza, commonly known as "the flu", is an ...652663MEDICALCONDITION
291Influenza, commonly known as "the flu", is an ...455464MEDICALCONDITION
292Influenza, commonly known as "the flu", is an ...251264MEDICALCONDITION
293Influenza, commonly known as "the flu", is an ...455463MEDICALCONDITION
294Influenza, commonly known as "the flu", is an ...7893PATHOGEN
- -

295 rows × 4 columns

-
+
+
+Code +
import pandas as pd
+# Initialize empty lists to store the data for the DataFrame
+texts = []
+starts = []
+ends = []
+labels = []
+
+# Iterate through the training_data to extract individual entity annotations
+for example in training_data:
+    text = example['text']
+    for entity in example['entities']:
+        start, end, label = entity
+        # Append data to the lists
+        texts.append(text)
+        starts.append(start)
+        ends.append(end)
+        labels.append(label)
+
+# Create a DataFrame from the lists
+df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels})
+df
+
+
+
                                                  text  ...             label
+0    While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+1    While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+2    While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
+3    While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+4    While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
+..                                                 ...  ...               ...
+290  Influenza, commonly known as "the flu", is an ...  ...  MEDICALCONDITION
+291  Influenza, commonly known as "the flu", is an ...  ...  MEDICALCONDITION
+292  Influenza, commonly known as "the flu", is an ...  ...  MEDICALCONDITION
+293  Influenza, commonly known as "the flu", is an ...  ...  MEDICALCONDITION
+294  Influenza, commonly known as "the flu", is an ...  ...          PATHOGEN
+
+[295 rows x 4 columns]
+

The Transformer model needed to be deployed in a Google Colab Repo because our computers did not have the power to train the transformer model when running out of a CPU. We get the following results which are good besides the eval_loss with over 31%. The hyperparameters were modified by increasing the epochs from 3 to 5 and 5 to 10, but the loss decreased to 25%. Precision and accuracy did not improve. The best approach to reduce the loss is to get more data. We could not find the more annotated dataset for NER in health. In Google Colab, a Hardware accelerator (GPU) was used to increase the training speed, and it worked. The link for further review is provided Google Colab Code

+

{‘eval_loss’: 0.3150147497653961, ‘eval_precision’: 0.9375, ‘eval_recall’: 1.0, ‘eval_f1’: 0.967741935483871, ‘eval_accuracy’: 0.9375, ‘eval_runtime’: 9.0895, ‘eval_samples_per_second’: 0.77, ‘eval_steps_per_second’: 0.11, ‘epoch’: 3.0}

-

5 Recurrent Neural Networks Results

-

[Pending]

+

5 Recurrent Neural Networks Results

+

Load required libraries for the RNN.

+
+
+Code +
import tensorflow as tf
+from tensorflow import keras
+from tensorflow.keras.layers import LSTM, Dense, Dropout, TimeDistributed, Bidirectional
+from tensorflow.keras.models import Sequential
+from tensorflow.keras.preprocessing.sequence import pad_sequences
+from tensorflow.keras.utils import to_categorical
+
+
+

Using the dataframe created from the transformer model a vocabulary of words and labels was created and then converted into indices. The sequences are then padded to a maximum length and then converted to one-hot encoded vectors. A one-hot encoded vector is a binary vector in which the label is encoded as 1 and everything else that is not the label is encoded as 0. This is necessary to train the model with tensorflow and recurrent neural networks.

+
+
+Code +
words = set(df['text'].values)
+word2idx = {w: i + 2 for i, w in enumerate(words)}
+word2idx['PAD'] = 0
+word2idx['UNK'] = 1
+
+tags = set(df['label'].values)
+tag2idx = {t: i + 1 for i, t in enumerate(tags)}
+tag2idx['PAD'] = 0
+
+X = [[word2idx.get(w, 1) for w in sentence.split()] for sentence in df['text'].values]
+y = [[tag2idx[t] for t in sentence.split()] for sentence in df['label'].values]
+
+maxlen = max(len(x) for x in X)
+X = pad_sequences(X, padding='post', maxlen=maxlen)
+y = pad_sequences(y, padding='post', maxlen=maxlen)
+y = to_categorical(y, num_classes=len(tag2idx))
+
+
+

After the data is manipulated the RNN model is created and compiled with the use of tensorflow.

+
+
+Code +
model = tf.keras.Sequential([
+    tf.keras.layers.Embedding(len(word2idx), 128),
+    tf.keras.layers.LSTM(128, return_sequences=True),
+    tf.keras.layers.Dropout(0.2),
+    tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(len(tag2idx), activation='softmax'))
+])
+model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
+
+
+

Lastly the model is fitted and the accuracy is calculated.

+
+
+Code +
model.fit(X, y, batch_size=32, epochs=10, verbose=2)
+
+
+
Epoch 1/10
+10/10 - 3s - loss: 0.9314 - accuracy: 0.8895 - 3s/epoch - 341ms/step
+Epoch 2/10
+10/10 - 2s - loss: 0.0240 - accuracy: 0.9967 - 2s/epoch - 210ms/step
+Epoch 3/10
+10/10 - 2s - loss: 0.0124 - accuracy: 0.9967 - 2s/epoch - 210ms/step
+Epoch 4/10
+10/10 - 2s - loss: 0.0104 - accuracy: 0.9967 - 2s/epoch - 208ms/step
+Epoch 5/10
+10/10 - 2s - loss: 0.0096 - accuracy: 0.9967 - 2s/epoch - 216ms/step
+Epoch 6/10
+10/10 - 2s - loss: 0.0092 - accuracy: 0.9967 - 2s/epoch - 209ms/step
+Epoch 7/10
+10/10 - 2s - loss: 0.0089 - accuracy: 0.9967 - 2s/epoch - 210ms/step
+Epoch 8/10
+10/10 - 2s - loss: 0.0087 - accuracy: 0.9967 - 2s/epoch - 213ms/step
+Epoch 9/10
+10/10 - 2s - loss: 0.0085 - accuracy: 0.9967 - 2s/epoch - 224ms/step
+Epoch 10/10
+10/10 - 2s - loss: 0.0083 - accuracy: 0.9967 - 2s/epoch - 223ms/step
+<keras.callbacks.History object at 0x000001B17104BEB0>
+
+
+

Here the RNN model is shown to be very effective with an accuracy of 0.9967.

-

6 Conclusion

-

Named Entity Recognition (NER) is a key NLP task that involves identifying named entities in text. Deep learning techniques, such as Recurrent Neural Networks (RNNs) and the Transformer model, are effective in NER tasks. RNNs, including LSTMs, excel at processing sequences and capturing context, while the Transformer model is known for its self-attention mechanism and efficient parallel processing. Both architectures contribute to advancing NER, and the choice between them depends on the specific NLP problem. As deep learning research progresses, we anticipate further advancements in NER performance using these techniques.

+

6 Conclusion

+

[This is a working conclusion]

+

Named Entity Recognition (NER) is a key NLP task that involves identifying named entities in text. With advances in deep learning and large availability of computational resources, methods based on deep learning have demonstrated obvious advantages over traditional methods and have become mainstream in the NER field (liu2021Hybrid?). Deep learning techniques, such as Recurrent Neural Networks (RNNs) and the Transformer Model, are clearly effective in NER Tasks. RNNs, including LSTMs, excel at processing sequences and capturing context, while the Transformer model is known for its self-attention mechanism and efficient parallel processing. Both architectures contribute to advancing NER, and the choice between them depends on the specific NLP problem. In the NLP problem in this paper it can be seen that the RNN model has a higher accuracy than the transformer model, so the RNN model would be the preferred method to use in NER practices. This conclusion coicides with (yadav2019survey?), who agreed that neural network models generally outperform feature-engineered models. As deep learning research progresses, we anticipate further advancements in NER performance using these techniques.

+
+

References

+

(raffel2020exploring?) (souza2020portuguese?)

+

References

diff --git a/index.qmd b/index.qmd index f77baeda1..1f30b0e26 100644 --- a/index.qmd +++ b/index.qmd @@ -1,14 +1,21 @@ --- -title: "NER - Deep Learning techniques. RNN and Transformer Model" -bibliography: references.bib +title: "NER using RNNs and Transformer Models" +author: "Sara Ericson, Andrew Campbell, Jorge Sanchez" +date: '`r Sys.Date()`' format: html: - embed-resources: true + code-fold: true +course: STA 6257 - Advance Statistical Modeling +bibliography: references.bib # file contains bibtex for references +#always_allow_html: true # this allows to get PDF with HTML features --- +## Slides +[Presentation](slides.html "See presentation"){target="_blank"} + # 1. Introduction -Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions. +Named Entity Recognition (NER) is a crucial task in Natural Language Processing (NLP) that involves identifying and extracting named entities from unstructured text. NER presents challenges due to the inherent complexity and ambiguity of natural language. Still, it is essential for various NLP applications, including information retrieval, question answering, and machine translation. Biomedical NER is the task of text mining to specifically biomedical texts to determine entity types [@xiong2021Improving]. Similarly, medical NER tasks usually find the boundaries of mentions from medical texts [@Zhao_Liu_Zhao_Wang_2019]. Deep learning techniques have demonstrated exceptional performance in NER tasks in recent years. Deep learning, a subfield of machine learning, uses artificial neural networks to learn from data and make predictions. The Transformer model, introduced in 2017, has become a fundamental architecture in modern NLP and is widely used for NER tasks. It is known for its self-attention mechanism, which allows the model to weigh the importance of each word in the input sequence. Additionally, other deep learning architectures such as Recurrent Neural Networks (RNNs), Convolutional Neural Networks (CNNs), and Bidirectional Encoder Representations from Transformers (BERT) have been successfully applied to NER. @@ -16,27 +23,90 @@ In this literature review, we will explore and compare the effectiveness of RNNs ## 1.1 Recurrent Neural Networks (RNN) -A Recurrent Neural Network (RNN) is a method of deep learning that uses sequential data or time-series data. They are often used in ordinal problems, where the output is not continues but it is discrete and ordered, and temporal problems, where data is collected over time and the order of the observations is important. These problems include speech recognition, language translation, and natural language processing (nlp). RNNs make use of training data by taking prior inputs and using them to influence current inputs and outputs. Utilizing prior inputs in this way is what creates the RNN's memory. This is something that distinguishes RNNs from other deep learning methods. RNNs are also distinguished by the sharing of parameters across each layer in the network. A popular type of RNN architecture known as Long Short-Term Memory (LSTM) has been used in named entity recognition. LSTMs have individual units in the hidden layers of a neural network, each of which has three gates. These include an input gate that controls the input information that goes into a memory cell. A forget gate that controls the amount of historical information that passes through from the previous state, and an output gate that controls the amount of information that is passed on to the next step. RNNs allow information to persist across multiple steps which enable the network to capture dependencies and context. The architecture and abilities of RNNs allow it to be a useful tool in NER that has been proven to perform better than previous NER systems. +A Recurrent Neural Network (RNN) is a method of deep learning that is useful for sequential data and time-series data. RNNs are often used in ordinal problems, where the output is discrete and ordered, as well as temporal problems, in which the time that data is collected is important. These problems include speech recognition, language translation, and natural language processing (NLP). RNNs are similar to other neural networks, but they have some distinct differences. Other neural network models can be used for medical text mining, however, RNNs have been shown to be one of the most effective models. This model has some drawbacks, but they can be mitigated with the use of Long Short-Term Memory (LSTM) cells in the hidden layers of the neural network [@Wu_Jiang_Xu_Zhi_Xu2018ClinicalNER]. RNNs have the ability to allow information to persist across multiple steps which enables the network to capture dependencies and context. This is a feature that makes it ideal for NER in which the context is very important. The specifics of a recurrent neural network will be discussed later ## 1.2 Transformer Model -The Transformer model is a groundbreaking neural network architecture introduced in the paper "Attention Is All You Need" [@vaswani2017attention] . ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model's strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures. +The Transformer model is a groundbreaking neural network architecture introduced in the paper "Attention Is All You Need" [@vaswani2017attention]. ​The model is designed for sequence-to-sequence tasks, such as machine translation, and is known for its ability to process input sequences in parallel rather than sequentially. This parallel processing makes the Transformer model highly efficient and scalable. One of the key innovations of the Transformer model is the self-attention mechanism. Self-attention allows the model to weigh the importance of different words in the input sequence relative to each other when making predictions. The model uses multi-head attention, which means it can simultaneously attend to various input aspects. This ability to capture complex dependencies and relationships between words contributes to the model's strong performance. The Transformer architecture consists of an encoder and decoder, each composed of multiple layers of self-attention and feed forward neural networks. The encoder processes the input sequence while the decoder generates the output sequence. The connections between the encoder and decoder are facilitated by attention mechanisms that allow the decoder to focus on different parts of the input sequence as it generates the output. Given its effectiveness and efficiency in handling sequence data, the Transformer model has become the foundation for many subsequent natural language processing (NLP) models and architectures. ## 1.3 Limitations -***\[In progress - Pending RNN Method\]*** +A major limitation of current techniques is that the standard language models are unidirectional, and thus limit the choice of architecture that can be used for pre-training [@devlin2019bert]. -Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers' ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers [@keles2022computational] . -# **2 Methods** +Transformers are powerful neural network models commonly used in natural language processing tasks. However, they face two fundamental limitations: First, their large number of parameters results in high +computational complexity, necessitating specialized hardware and substantial resources, especially for deep models with long input sequences. Second, transformers exhibit quadratic time complexity concerning input length due to the self-attention mechanism, which calculates attention scores between all token pairs. This quadratic complexity limits transformers' ability to handle very long sequences efficiently. Researchers actively explore methods to mitigate these limitations and improve the scalability of transformers.[@keles2022computational] -***\[In progress - Pending RNN Method\]*** +# **2 Methods** ## 2.1 RNN +A neural network has three layers. An input layer, a hidden layer, and an output layer. A recurrent neural network (RNN) also has three layers, but with the addition of a recurrent component that takes the output from a previous iteration and includes it in the current iteration. This is what makes RNNs useful for sequential and temporal data. Basic neural networks are optimized using back propagation which involves finding the gradient of a parameter and then using a gradient descent algorithm to find values that minimize a loss function (such as error). + +Example of Loss function (Mean Squared Error)\ +\ + $\text{L(𝜽)} = (1/N) * ∑(y_i - y_i^*)^2$\ + +Gradient Descent Algorithm\ +\ + $\text{𝜽}_j =𝜽_j - 𝛼 (∂J(𝜽) / ∂𝜽_j)$\ + +N : number of vector entires with yi in output vector + +yi : predicted value + +yi* : actual value + +𝛼 : learning rate + +𝜽j : input + +This will cause the weight parameters to be updated. When a large amount of data is used this can cause the weights to increase or decrease dramatically creating a problem known as vanishing or exploding gradients. When this occurs the weights will either be extremely close to zero or extremely large, which may be represented by a NaN value. An example when large amounts of data may be used is NER in which the context of previous words and characters is relevant. To mitigate an exploding or vanishing gradient long short-term memory (LSTM) cells may be used within the hidden layer. LSTM cells make use of three gates. An input gate, a forget gate, and an output gate. These gates use a sigmoid function which outputs a value between zero and one. Zero blocks all information and one allows all information through. The input gate determines which information is stored in the cell. The forget gate determines which information will be discarded. The output gate provides the activation for the final output. The sigmoid function is given below along with a general equation for the gates. When using LSTMs the weights and biases are the same among every iteration. This is so the RNN model can be applied to data of varying lengths.[@Cho2019BiomedNER] + +Sigmoid\ +\ + $\text{f(x)} = {1/(1+e^{-x})}$\ + +General gate equation\ +\ + $\text{g}_i = 𝝈(w[h_{i-1}, x_i] + b)$\ + +x : input + +𝝈 : sigmoid function + +w : weight + +h : information of i-th iteration + +b : bias + +LSTMs have a cell state that is the result of the gates and a few other calculations. This state is what provides the cell with its “memory” which is very useful in NER when the memory of what was written or previously said can determine what should come next in a sentence. The other equations used besides sigmoid are shown below. + +Possible cell state at i-th iteration\ +\ + $\text{c}_i^*=tanh(w[h_{i-1}, x_i] + b)$\ + +Cell state\ +\ + $\text{c}_i = (forget gate * c_{i-1}) + (input gate * c_i^* )$\ + +Output\ +\ + $\text{h}_i = (output gate * tanh(c_i))$\ + +tanh\ +\ + $\text{f(x)} = (e^x - e^{-x})/(e^x + e^{-x})$\ + +tanh : activation function + +These equations determine which information is passed through the cell and the ultimate state of the cell at the present iteration. The type of RNN used in NER is many-to-many RNN. This type of RNN uses each word as an input to build the state (the context) of the model. This is what can be subsequently used in making predictions. + ## 2.2 Transformer Model -The Transformers model has a unique feature called the 'attention mechanism.' It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next word in 'I have a pet \_\_\_,' the attention mechanism considers the context (the word 'pet') to make a better guess, like 'dog' or 'cat.' It's like the model knows which words deserve extra attention! ! Let's look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula [@phuong2022formal]. +The Transformers model has a unique feature called the 'attention mechanism.' It helps the model make intelligent predictions by focusing on essential parts of the input. For example, when predicting the next +word in 'I have a pet \_\_\_,' the attention mechanism considers the context (the word 'pet') to make a better guess, like 'dog' or 'cat.' It's like the model knows which words deserve extra attention! ! Let's look at the two most important algorithms for the attention mechanism, Scaled Dot-Product Attention formula, and the Single (Masked) Self- or Cross-Attention Head Formula [@phuong2022formal]. 1. Scaled Dot-Product Attention formula\ \ @@ -56,7 +126,8 @@ The Transformers model has a unique feature called the 'attention mechanism.' It In this formula, the attention mechanism allows a model to "pay attention" to specific parts of input data. The attention scores are calculated using queries (Q) and keys (K). The scores are normalized using Softmax , producing attention weights. The output is a weighted sum of value vectors (V), where the weights represent the importance of each value for each query. This mechanism is popular in tasks like machine translation to focus on relevant words. -2. The Single (Masked) Self- or Cross-Attention Head Formula $\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}$ +2. The Single (Masked) Self- or Cross-Attention Head Formula + $\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}$ **Key Components:** @@ -78,12 +149,12 @@ In this formula, the attention uses queries (Q) and keys (K) to calculate attent ## 3.1 Dataset Description -I will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. The dataset was manually tagged for training. I will use the Transformer model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition. +We will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. Similarly to the dataset used in [@xiong2021Improving], the dataset was manually tagged for training. We will use the Transformer model and the RNN model to apply the NER using python programming language. The dataset contains 31 observations and 4 attributes properly explained in the data definition. **Data Definition** | Column Name | Type | Description | -|-------------------|-------------------|----------------------------------| +|------------------|------------------|------------------------------------| | Text | string | Sentence including the labels | | Starts | integer | Position on where the label starts | | Ends | integer | Position on where the label ends | @@ -96,35 +167,46 @@ I will use the dataset called corona2 from Kaggle to identify Natural Entity Rec ## -## 3.2 Data Preparation - -The following python code will load the required libraries -• ***nbclient***: Executes Jupyter notebooks programmatically. - -• ***requests***: Sends HTTP requests and interacts with RESTful APIs in Python. - -• ***Pandas***: Manipulates and analyzes tabular data using DataFrame and Series. +## 3.2 Data Preparation -• ***nbformat***: Reads, writes, and manipulates Jupyter Notebook files. +The following python code will load the required libraries: + + +- **nbclient** : Executes Jupyter notebooks programmatically + +- **requests** : Sends HTTP requests and interacts with RESTful APIs in Python + +- **pandas** : Manipulates and analyzes tabular data using DataFrame and Series + +- **nbformat** : Reads, writes, and manipulates Jupyter Notebook files + +- **plotly.express** : Creates interactive data visualizations with a simple interface + + +```{r} +library(reticulate) +# do the following ONCE AND COMMENT +py_install("nbclient") +py_install("requests") +py_install("pandas") +py_install("nbformat") +py_install("plotly") +``` -• ***plotly.express***: Creates interactive data visualizations with a simple interface. ```{python} -!pip install -q nbclient -!pip install -q requests -!pip install -q pandas -!pip install -q nbformat -!pip install -q plotly.express +#| echo: false +import pandas +import nbclient +import requests +import nbformat +import plotly.express ``` Import the data from Github to local. ```{python} - -import requests - -# Accessing the JSON file from GitHub url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json' # HTTP GET request to the raw URL response = requests.get(url) @@ -135,9 +217,9 @@ if response.status_code == 200: print('Success, the Json data was stored into the data variable') else: print('Failed to fetch JSON data:', response.status_code) - ``` + Parse json data into dictionary to manipulate data. ```{python} @@ -200,13 +282,14 @@ df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.val fig = px.bar(df_counts, x='label', y='count', text='count', color='label', color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels') -# Display the counter label inside the bars -fig.update_traces(textposition='inside') +fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') +# Display the counter label inside the bars +#fig.update_traces(textposition='inside') # Update axis titles -fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') +#fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') -fig.show() +#fig.show() ``` @@ -221,7 +304,7 @@ label_counts = df['label'].value_counts() # Plot a pie chart using Plotly fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3) fig.update_traces(textinfo='percent+label', textfont_size=12) -fig.show() +#fig.show() ``` @@ -234,7 +317,7 @@ import plotly.express as px # Plot a histogram of entity start positions using Plotly fig = px.histogram(df, x='start', nbins=30, title='Histogram of Entity Start Positions') fig.update_layout(xaxis_title='Entity Start Position', yaxis_title='Frequency') -fig.show() +#fig.show() ``` 4. The box plot below shows the start and end positions of entity labels, with the majority located below the five hundredth position. @@ -246,13 +329,15 @@ import plotly.express as px # Create box plots for 'start' and 'end' columns using Plotly fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions') fig.update_layout(yaxis_title='Value', xaxis_title='Column') -fig.show() +#fig.show() ``` + # **4 Transformer Model Results** -***\[In Progress\]*** +***\[Pending\]*** + Loading Required Libraries for training @@ -340,11 +425,70 @@ for example in training_data: df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels}) df ``` +The Transformer model needed to be deployed in a Google Colab Repo because our computers did not have the power to train the transformer model when running out of a CPU. We get the following results which are good besides the eval_loss with over 31%. The hyperparameters were modified by increasing the epochs from 3 to 5 and 5 to 10, but the loss decreased to 25%. Precision and accuracy did not improve. The best approach to reduce the loss is to get more data. We could not find the more annotated dataset for NER in health. In Google Colab, a Hardware accelerator (GPU) was used to increase the training speed, and it worked. The link for further review is provided [Google Colab Code](https://colab.research.google.com/drive/1qKpXd2sP-Iesi76W-232hVUPkl9zvl5s?usp=sharing) -# **5 Recurrent Neural Networks Results** +{'eval_loss': 0.3150147497653961, 'eval_precision': 0.9375, 'eval_recall': 1.0, 'eval_f1': 0.967741935483871, 'eval_accuracy': 0.9375, 'eval_runtime': 9.0895, 'eval_samples_per_second': 0.77, 'eval_steps_per_second': 0.11, 'epoch': 3.0} -***\[Pending\]*** +# **5 Recurrent Neural Networks Results ** + + + +Load required libraries for the RNN. + +```{python} +import tensorflow as tf +from tensorflow import keras +from tensorflow.keras.layers import LSTM, Dense, Dropout, TimeDistributed, Bidirectional +from tensorflow.keras.models import Sequential +from tensorflow.keras.preprocessing.sequence import pad_sequences +from tensorflow.keras.utils import to_categorical +``` + +Using the dataframe created from the transformer model a vocabulary of words and labels was created and then converted into indices. The sequences are then padded to a maximum length and then converted to one-hot encoded vectors. A one-hot encoded vector is a binary vector in which the label is encoded as 1 and everything else that is not the label is encoded as 0. This is necessary to train the model with tensorflow and recurrent neural networks. +```{python} +words = set(df['text'].values) +word2idx = {w: i + 2 for i, w in enumerate(words)} +word2idx['PAD'] = 0 +word2idx['UNK'] = 1 + +tags = set(df['label'].values) +tag2idx = {t: i + 1 for i, t in enumerate(tags)} +tag2idx['PAD'] = 0 + +X = [[word2idx.get(w, 1) for w in sentence.split()] for sentence in df['text'].values] +y = [[tag2idx[t] for t in sentence.split()] for sentence in df['label'].values] + +maxlen = max(len(x) for x in X) +X = pad_sequences(X, padding='post', maxlen=maxlen) +y = pad_sequences(y, padding='post', maxlen=maxlen) +y = to_categorical(y, num_classes=len(tag2idx)) +``` + +After the data is manipulated the RNN model is created and compiled with the use of tensorflow. +```{python} +model = tf.keras.Sequential([ + tf.keras.layers.Embedding(len(word2idx), 128), + tf.keras.layers.LSTM(128, return_sequences=True), + tf.keras.layers.Dropout(0.2), + tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(len(tag2idx), activation='softmax')) +]) +model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) +``` + +Lastly the model is fitted and the accuracy is calculated. +```{python} +model.fit(X, y, batch_size=32, epochs=10, verbose=2) +``` + +Here the RNN model is shown to be very effective with an accuracy of 0.9967. + +# **6 Conclusion** + +***\[This is a working conclusion\]*** + +Named Entity Recognition (NER) is a key NLP task that involves identifying named entities in text. With advances in deep learning and large availability of computational resources, methods based on deep learning have demonstrated obvious advantages over traditional methods and have become mainstream in the NER field [@liu2021Hybrid]. Deep learning techniques, such as Recurrent Neural Networks (RNNs) and the Transformer Model, are clearly effective in NER Tasks. RNNs, including LSTMs, excel at processing sequences and capturing context, while the Transformer model is known for its self-attention mechanism and efficient parallel processing. Both architectures contribute to advancing NER, and the choice between them depends on the specific NLP problem. In the NLP problem in this paper it can be seen that the RNN model has a higher accuracy than the transformer model, so the RNN model would be the preferred method to use in NER practices. This conclusion coicides with [@yadav2019survey], who agreed that neural network models generally outperform feature-engineered models. As deep learning research progresses, we anticipate further advancements in NER performance using these techniques. -# 6 **Conclusion** -Named Entity Recognition (NER) is a key NLP task that involves identifying named entities in text. Deep learning techniques, such as Recurrent Neural Networks (RNNs) and the Transformer model, are effective in NER tasks. RNNs, including LSTMs, excel at processing sequences and capturing context, while the Transformer model is known for its self-attention mechanism and efficient parallel processing. Both architectures contribute to advancing NER, and the choice between them depends on the specific NLP problem. As deep learning research progresses, we anticipate further advancements in NER performance using these techniques. +## References +[@raffel2020exploring] +[@souza2020portuguese] \ No newline at end of file diff --git a/index_files/libs/bootstrap/bootstrap-icons.css b/index_files/libs/bootstrap/bootstrap-icons.css new file mode 100644 index 000000000..94f194044 --- /dev/null +++ b/index_files/libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2018 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-1::before { content: "\f794"; } +.bi-1-circle-fill-1::before { content: "\f795"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-1::before { content: "\f79a"; } +.bi-2-circle-fill-1::before { content: "\f79b"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-1::before { content: "\f7a0"; } +.bi-3-circle-fill-1::before { content: "\f7a1"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-1::before { content: "\f7a6"; } +.bi-4-circle-fill-1::before { content: "\f7a7"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-1::before { content: "\f7ac"; } +.bi-5-circle-fill-1::before { content: "\f7ad"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-1::before { content: "\f7b2"; } +.bi-6-circle-fill-1::before { content: "\f7b3"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-1::before { content: "\f7b8"; } +.bi-7-circle-fill-1::before { content: "\f7b9"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-1::before { content: "\f7be"; } +.bi-8-circle-fill-1::before { content: "\f7bf"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-1::before { content: "\f7c4"; } +.bi-9-circle-fill-1::before { content: "\f7c5"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-1::before { content: "\f7d8"; } +.bi-c-circle-fill-1::before { content: "\f7d9"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-1::before { content: "\f7e4"; } +.bi-cc-circle-fill-1::before { content: "\f7e5"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-1::before { content: "\f7f8"; } +.bi-h-circle-fill-1::before { content: "\f7f9"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-1::before { content: "\f802"; } +.bi-p-circle-fill-1::before { content: "\f803"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-1::before { content: "\f80c"; } +.bi-r-circle-fill-1::before { content: "\f80d"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } diff --git a/index_files/libs/bootstrap/bootstrap-icons.woff b/index_files/libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..18d21d457558d4dc2e231a8f6ee585fada9c6bab GIT binary patch literal 164168 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%0D{F7My?sp4b~Pd<-wWT`E3Pn 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%0Aub6*Q4?Lh?RzF3+=+IGMyc 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

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

    E0Q>dwTHGr5Eml?v4A4cqksyc*{&0*B}<_UWD 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 N7Xi?h+IjWj{{hmn!3F>T literal 0 HcmV?d00001 diff --git a/index_files/libs/bootstrap/bootstrap.min.css b/index_files/libs/bootstrap/bootstrap.min.css new file mode 100644 index 000000000..0c07a5b65 --- /dev/null +++ b/index_files/libs/bootstrap/bootstrap.min.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-white: #ffffff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #dee2e6;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 222, 226, 230;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg-rgb: 255, 255, 255;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-bg: #ffffff}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-bs-original-title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:#0d6efd;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr /* rtl:ignore */;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f6f6f6;padding:.5rem;border:1px solid #dee2e6;border-radius:.25rem}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:#9753b8;background-color:#f6f6f6;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #212529;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #212529;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #212529;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid #9ba5ae}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg: var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg: var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg: var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg: #cfe2ff;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg: #e2e3e5;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg: #d1e7dd;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg: #cff4fc;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg: #fff3cd;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg: #f8d7da;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg: #f8f9fa;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg: #212529;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #ffffff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #ffffff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #ffffff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;border-radius:.25rem;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:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;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:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.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:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;color-adjust:exact;-webkit-print-color-adjust:exact}.form-check-input[type=checkbox],.shiny-input-container .checkbox input[type=checkbox],.shiny-input-container .checkbox-inline input[type=checkbox],.shiny-input-container .radio input[type=checkbox],.shiny-input-container .radio-inline input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.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:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23ffffff'/%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:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#198754;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='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.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:#198754}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#198754}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#198754}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid,.was-validated .input-group .form-select:valid,.input-group .form-select.is-valid{z-index:1}.was-validated .input-group .form-control:valid:focus,.input-group .form-control.is-valid:focus,.was-validated .input-group .form-select:valid:focus,.input-group .form-select.is-valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#dc3545;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='%23dc3545'%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='%23dc3545' 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:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.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:#dc3545}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%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='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc3545}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc3545}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid,.was-validated .input-group .form-select:invalid,.input-group .form-select.is-invalid{z-index:2}.was-validated .input-group .form-control:invalid:focus,.input-group .form-control.is-invalid:focus,.was-validated .input-group .form-select:invalid:focus,.input-group .form-select.is-invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-default{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-default:hover{color:#000;background-color:#e3e6ea;border-color:#e1e5e9}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#e3e6ea;border-color:#e1e5e9;box-shadow:0 0 0 .25rem rgba(189,192,196,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#e5e8eb;border-color:#e1e5e9}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(189,192,196,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info:disabled,.btn-info.disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light:disabled,.btn-light.disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark:disabled,.btn-dark.disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-default{color:#dee2e6;border-color:#dee2e6;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(222,226,230,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#dee2e6;border-color:#dee2e6}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(222,226,230,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#dee2e6;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#0d6efd;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#6c757d;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#198754;border-color:#198754;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show{color:#fff;background-color:#198754;border-color:#198754}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#198754;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#0dcaf0;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#ffc107;border-color:#ffc107;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#ffc107;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#dc3545;border-color:#dc3545;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#dc3545;background-color:rgba(0,0,0,0)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light:disabled,.btn-outline-light.disabled{color:#f8f9fa;background-color:rgba(0,0,0,0)}.btn-outline-dark{color:#212529;border-color:#212529;background-color:rgba(0,0,0,0)}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show{color:#fff;background-color:#212529;border-color:#212529}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark:disabled,.btn-outline-dark.disabled{color:#212529;background-color:rgba(0,0,0,0)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:0.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:hover,.dropdown-menu-dark .dropdown-item:focus{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child){margin-left:-1px}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid rgba(0,0,0,0);border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:none;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container-xxl,.navbar>.container-xl,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container,.navbar>.container-fluid{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:.25 0;font-size:1.25rem;line-height:1;background-color:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-top,.navbar-expand-sm .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-top,.navbar-expand-md .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-top,.navbar-expand-lg .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-top,.navbar-expand-xl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-top,.navbar-expand-xxl .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;-webkit-flex-grow:1;visibility:visible !important;background-color:rgba(0,0,0,0);border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-top,.navbar-expand .offcanvas-bottom{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-light{background-color:#0d6efd}.navbar-light .navbar-brand{color:#fdfeff}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#fdfeff}.navbar-light .navbar-nav .nav-link{color:#fdfeff}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(253,254,255,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(253,254,255,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#fdfeff}.navbar-light .navbar-toggler{color:#fdfeff;border-color:rgba(253,254,255,0)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfeff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#fdfeff}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#fdfeff}.navbar-dark{background-color:#0d6efd}.navbar-dark .navbar-brand{color:#fdfeff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fdfeff}.navbar-dark .navbar-nav .nav-link{color:#fdfeff}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(253,254,255,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(253,254,255,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#fdfeff}.navbar-dark .navbar-toggler{color:#fdfeff;border-color:rgba(253,254,255,0)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfeff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#fdfeff}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fdfeff}.card{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-0.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid #dee2e6;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:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#595a5c;background-color:#f8f9fa;border-color:#f5f6f8}.alert-default .alert-link{color:#47484a}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;display:-webkit-flex;height:1rem;overflow:hidden;font-size:0.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#595a5c;background-color:#f8f9fa}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#595a5c;background-color:#dfe0e1}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#595a5c;border-color:#595a5c}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:0.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.toast-header .btn-close{margin-right:-0.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-0.5rem -0.5rem -0.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:1rem}.modal-footer{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(0.3rem - 1px);border-bottom-left-radius:calc(0.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width: 576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media(min-width: 992px){.modal-lg,.modal-xl{max-width:800px}}@media(min-width: 1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[data-popper-placement^=top]{padding:.4rem 0}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:0}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-end,.bs-tooltip-auto[data-popper-placement^=right]{padding:0 .4rem}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[data-popper-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:0}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-start,.bs-tooltip-auto[data-popper-placement^=left]{padding:0 .4rem}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0 /* rtl:ignore */;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:0.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-0.5rem - 1px)}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-0.5rem - 1px)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-0.5rem - 1px);width:.5rem;height:1rem}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%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='%23ffffff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#dee2e6}.link-default:hover,.link-default:focus{color:#e5e8eb}.link-primary{color:#0d6efd}.link-primary:hover,.link-primary:focus{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:hover,.link-secondary:focus{color:#565e64}.link-success{color:#198754}.link-success:hover,.link-success:focus{color:#146c43}.link-info{color:#0dcaf0}.link-info:hover,.link-info:focus{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:hover,.link-warning:focus{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:hover,.link-danger:focus{color:#b02a37}.link-light{color:#f8f9fa}.link-light:hover,.link-light:focus{color:#f9fafb}.link-dark{color:#212529}.link-dark:hover,.link-dark:focus{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#dee2e6 !important}.border-primary{border-color:#0d6efd !important}.border-secondary{border-color:#6c757d !important}.border-success{border-color:#198754 !important}.border-info{border-color:#0dcaf0 !important}.border-warning{border-color:#ffc107 !important}.border-danger{border-color:#dc3545 !important}.border-light{border-color:#f8f9fa !important}.border-dark{border-color:#212529 !important}.border-white{border-color:#fff !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-light{font-weight:300 !important}.fw-lighter{font-weight:lighter !important}.fw-normal{font-weight:400 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:.25rem !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:.2rem !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#212529;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.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:#fff}.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:#fff;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:#fff}.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:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#212529}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:inline-block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,.table{caption-side:top;margin-bottom:1.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-fg{color:#282c36}.ansi-black-intense-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-fg{color:#b22b31}.ansi-red-intense-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-fg{color:#007427}.ansi-green-intense-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-fg{color:#b27d12}.ansi-yellow-intense-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-fg{color:#0065ca}.ansi-blue-intense-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-fg{color:#a03196}.ansi-magenta-intense-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-fg{color:#258f8f}.ansi-cyan-intense-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-fg{color:#a1a6b2}.ansi-white-intense-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #ffffff;--quarto-body-color: #212529;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:absolute;right:.5em;left:inherit;background-color:rgba(0,0,0,0)}:root{--mermaid-bg-color: #ffffff;--mermaid-edge-color: #6c757d;--mermaid-node-fg-color: #212529;--mermaid-fg-color: #212529;--mermaid-fg-color--lighter: #383f45;--mermaid-fg-color--lightest: #4e5862;--mermaid-font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, Liberation Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;--mermaid-label-bg-color: #ffffff;--mermaid-label-fg-color: #0d6efd;--mermaid-node-bg-color: rgba(13, 110, 253, 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}pre.sourceCode:hover>.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}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.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] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 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] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 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] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [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] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 850px - 3em )) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [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] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 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] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 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(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 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] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 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(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc( 1000px - 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] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc( 750px - 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(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc( 800px - 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( 800px - 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( 800px - 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( 800px - 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( 1250px - 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] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 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] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc( 800px - 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( 750px - 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( 750px - 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( 1000px - 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( 800px - 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( 750px - 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( 750px - 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( 750px - 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( 750px - 3em )) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}.zindex-content{z-index:998;transform:translate3d(0, 0, 0)}.zindex-modal{z-index:1055;transform:translate3d(0, 0, 0)}.zindex-over-content{z-index:999;transform:translate3d(0, 0, 0)}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside,.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside,.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;transform:translate3d(0, 0, 0)}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{opacity:.9;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#5a6570}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,caption,.figure-caption{font-size:.9rem}.panel-caption,.figure-caption,figcaption{color:#5a6570}.table-caption,caption{color:#212529}.quarto-layout-cell[data-ref-parent] caption{color:#5a6570}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#5a6570;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px}.tab-content{margin-top:0px;border-left:#dee2e6 1px solid;border-right:#dee2e6 1px solid;border-bottom:#dee2e6 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:1em}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#5a6570}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f6f6f6;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.toc-left>*,.sidebar.margin-sidebar>*{padding-top:.5em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#0d6efd}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.sidebar .quarto-alternate-formats a,.sidebar .quarto-alternate-notebooks a{text-decoration:none}.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#0d6efd}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem;font-weight:400;margin-bottom:.5rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2{margin-top:1rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul,.sidebar nav[role=doc-toc] ul{padding-left:0;list-style:none;font-size:.875rem;font-weight:300}.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #0d6efd;color:#0d6efd !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#0d6efd !important}kbd,.kbd{color:#212529;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}div.hanging-indent{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.table a{word-break:break-word}.table>thead{border-top-width:1px;border-top-color:#dee2e6;border-bottom:1px solid #9ba5ae}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout.callout-titled .callout-body{margin-top:.2em}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default div.callout-body>:first-child{margin-top:.5em}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){margin-bottom:.5rem}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#0d6efd}div.callout-note.callout-style-default>.callout-header{background-color:#e7f1ff}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:#198754}div.callout-tip.callout-style-default>.callout-header{background-color:#e8f3ee}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:#fd7e14}div.callout-caution.callout-style-default>.callout-header{background-color:#fff2e8}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:#dc3545}div.callout-important.callout-style-default>.callout-header{background-color:#fcebec}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#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:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{color:#fefefe;background-color:#6c757d;border-color:#6c757d}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#fefefe;background-color:#828a91;border-color:#7b838a}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#fefefe;background-color:#828a91;border-color:#7b838a;box-shadow:0 0 0 .25rem rgba(130,138,144,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#899197;border-color:#7b838a}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,144,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}nav.quarto-secondary-nav.color-navbar{background-color:#0d6efd;color:#fdfeff}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#fdfeff}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner,body.nav-sidebar .quarto-title-banner{display:none}}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:#fff}.code-annotation-gutter{background-color:rgba(233,236,239,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:var(--bs-font-monospace);color:#383f45;border:solid #383f45 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;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:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:var(--bs-font-monospace);color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;transform:translate3d(0, 0, 0)}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#f8f9fa;z-index:998;transform:translate3d(0, 0, 0);margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table>thead{border-top-width:0}.table>:not(caption)>*:not(:last-child)>*{border-bottom-color:#d3d8dc;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #9ba5ae;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#9ba5ae}a.external:after{display:inline-block;height:.75rem;width:.75rem;margin-bottom:.15em;margin-left:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file,.code-with-filename .code-with-filename-file pre{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file,.quarto-dark .code-with-filename .code-with-filename-file pre{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#fdfeff;background:#0d6efd}.quarto-title-banner .code-tools-button{color:#97cbff}.quarto-title-banner .code-tools-button:hover{color:#fdfeff}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:repeat(2, 1fr)}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-5px}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents a{color:#212529}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}/*# sourceMappingURL=397ef2e52d54cf686e4908b90039e9db.css.map */ diff --git a/index_files/libs/bootstrap/bootstrap.min.js b/index_files/libs/bootstrap/bootstrap.min.js new file mode 100644 index 000000000..cc0a25561 --- /dev/null +++ b/index_files/libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'

    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},pn={...un.DefaultType,content:"(string|element|function)"},mn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class gn extends un{static get Default(){return fn}static get NAME(){return"popover"}static get Event(){return mn}static get DefaultType(){return pn}isWithContent(){return this.getTitle()||this._getContent()}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(t,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(t){return this.each((function(){const e=gn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(gn);const _n="scrollspy",bn={offset:10,method:"auto",target:""},vn={offset:"number",method:"string",target:"(string|element)"},yn="active",wn=".nav-link, .list-group-item, .dropdown-item",En="position";class An extends B{constructor(t,e){super(t),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(e),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return bn}static get NAME(){return _n}refresh(){const t=this._scrollElement===this._scrollElement.window?"offset":En,e="auto"===this._config.method?t:this._config.method,n=e===En?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),V.find(wn,this._config.target).map((t=>{const s=i(t),o=s?V.findOne(s):null;if(o){const t=o.getBoundingClientRect();if(t.width||t.height)return[U[e](o).top+n,s]}return null})).filter((t=>t)).sort(((t,e)=>t[0]-e[0])).forEach((t=>{this._offsets.push(t[0]),this._targets.push(t[1])}))}dispose(){j.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(t){return(t={...bn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}}).target=r(t.target)||document.documentElement,a(_n,t,vn),t}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),i=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=i){const t=this._targets[this._targets.length-1];this._activeTarget!==t&&this._activate(t)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(let e=this._offsets.length;e--;)this._activeTarget!==this._targets[e]&&t>=this._offsets[e]&&(void 0===this._offsets[e+1]||t`${e}[data-bs-target="${t}"],${e}[href="${t}"]`)),i=V.findOne(e.join(","),this._config.target);i.classList.add(yn),i.classList.contains("dropdown-item")?V.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(yn):V.parents(i,".nav, .list-group").forEach((t=>{V.prev(t,".nav-link, .list-group-item").forEach((t=>t.classList.add(yn))),V.prev(t,".nav-item").forEach((t=>{V.children(t,".nav-link").forEach((t=>t.classList.add(yn)))}))})),j.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})}_clear(){V.find(wn,this._config.target).filter((t=>t.classList.contains(yn))).forEach((t=>t.classList.remove(yn)))}static jQueryInterface(t){return this.each((function(){const e=An.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,"load.bs.scrollspy.data-api",(()=>{V.find('[data-bs-spy="scroll"]').forEach((t=>new An(t)))})),g(An);const Tn="active",On="fade",Cn="show",kn=".active",Ln=":scope > li > .active";class xn extends B{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Tn))return;let t;const e=n(this._element),i=this._element.closest(".nav, .list-group");if(i){const e="UL"===i.nodeName||"OL"===i.nodeName?Ln:kn;t=V.find(e,i),t=t[t.length-1]}const s=t?j.trigger(t,"hide.bs.tab",{relatedTarget:this._element}):null;if(j.trigger(this._element,"show.bs.tab",{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;this._activate(this._element,i);const o=()=>{j.trigger(t,"hidden.bs.tab",{relatedTarget:this._element}),j.trigger(this._element,"shown.bs.tab",{relatedTarget:t})};e?this._activate(e,e.parentNode,o):o()}_activate(t,e,i){const n=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V.children(e,kn):V.find(Ln,e))[0],s=i&&n&&n.classList.contains(On),o=()=>this._transitionComplete(t,n,i);n&&s?(n.classList.remove(Cn),this._queueCallback(o,t,!0)):o()}_transitionComplete(t,e,i){if(e){e.classList.remove(Tn);const t=V.findOne(":scope > .dropdown-menu .active",e.parentNode);t&&t.classList.remove(Tn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add(Tn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),u(t),t.classList.contains(On)&&t.classList.add(Cn);let n=t.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const e=t.closest(".dropdown");e&&V.find(".dropdown-toggle",e).forEach((t=>t.classList.add(Tn))),t.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this)||xn.getOrCreateInstance(this).show()})),g(xn);const Dn="toast",Sn="hide",Nn="show",In="showing",Pn={animation:"boolean",autohide:"boolean",delay:"number"},jn={animation:!0,autohide:!0,delay:5e3};class Mn extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Pn}static get Default(){return jn}static get NAME(){return Dn}show(){j.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Sn),u(this._element),this._element.classList.add(Nn),this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.remove(In),j.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Nn)&&(j.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(In),this._queueCallback((()=>{this._element.classList.add(Sn),this._element.classList.remove(In),this._element.classList.remove(Nn),j.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Nn)&&this._element.classList.remove(Nn),super.dispose()}_getConfig(t){return t={...jn,...U.getDataAttributes(this._element),..."object"==typeof t&&t?t:{}},a(Dn,t,this.constructor.DefaultType),t}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),j.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),j.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Mn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Mn),g(Mn),{Alert:W,Button:z,Carousel:st,Collapse:pt,Dropdown:hi,Modal:Hi,Offcanvas:Fi,Popover:gn,ScrollSpy:An,Tab:xn,Toast:Mn,Tooltip:un}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/index_files/libs/clipboard/clipboard.min.js b/index_files/libs/clipboard/clipboard.min.js new file mode 100644 index 000000000..1103f811e --- /dev/null +++ b/index_files/libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); +// @license-end \ No newline at end of file diff --git a/index_files/libs/quarto-html/popper.min.js b/index_files/libs/quarto-html/popper.min.js new file mode 100644 index 000000000..2269d6696 --- /dev/null +++ b/index_files/libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.4 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/index_files/libs/quarto-html/quarto-syntax-highlighting.css b/index_files/libs/quarto-html/quarto-syntax-highlighting.css new file mode 100644 index 000000000..d9fd98f04 --- /dev/null +++ b/index_files/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: " { + 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; + } + } + } + } + }; + }; + + // Find any conflicting margin elements and add margins to the + // top to prevent overlap + const marginChildren = window.document.querySelectorAll( + ".column-margin.column-container > * " + ); + + const layoutMarginEls = () => { + 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 margin = lastBottom - top; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["marginTop"]); + lastBottom = + top + marginChild.getBoundingClientRect().height + marginTop; + } + } + }; + nexttick(layoutMarginEls); + + 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/index_files/libs/quarto-html/tippy.css b/index_files/libs/quarto-html/tippy.css new file mode 100644 index 000000000..e6ae635cb --- /dev/null +++ b/index_files/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/index_files/libs/quarto-html/tippy.umd.min.js b/index_files/libs/quarto-html/tippy.umd.min.js new file mode 100644 index 000000000..ca292be32 --- /dev/null +++ b/index_files/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/slides.html b/slides.html new file mode 100644 index 000000000..64a8ca9c9 --- /dev/null +++ b/slides.html @@ -0,0 +1,1000 @@ + + + + + + + + + + + + + + + NER using RNNs and Transformer Models + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/slides.qmd b/slides.qmd new file mode 100644 index 000000000..9fb2a330b --- /dev/null +++ b/slides.qmd @@ -0,0 +1,269 @@ +--- +title: "NER using RNNs and Transformer Models" +author: "Sara Ericson, Andrew Campbell, Jorge Sanchez" +date: '`r Sys.Date()`' +format: revealjs +editor: visual +--- + +## What is Transformer Model? + +- The Transformer model is a neural network architecture designed for sequence-to-sequence tasks such as machine translation. + +- The model's key innovation is the self-attention mechanism, which allows it to weigh the importance of different words in the input sequence. + +- Self-attention enables the model to capture long-range dependencies and handle complex language structures effectively. + +## Transformer Architecture + +::: columns +::: {.column width="50%"} +![](images/transformer%20Architecture.png) +::: + +::: {.column width="50%"} +- Encoder + +- Decoder + +- Positional Encoding + +- Multi-Head Attention +::: +::: + +## Transformer Model Methods + +- Scaled Dot-Product Attention formula\ + \ + $\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$\ + +- The Single (Masked) Self- or Cross-Attention Head Formula $\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}$ + +## Transformer Limitations + +- Standard language models are unidirectional, restricting pre-training architecture options and limiting context awareness. + +- Transformers have high computational complexity due to numerous parameters, requiring significant resources and specialized hardware for deep models and long sequences. + +## Dataset + +We will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. Similarly to the dataset used in the dataset was manually tagged for training. + +- Labels: + + - Medical condition names (example: influenza, headache, malaria) + - Medicine names (example : aspirin, penicillin, ribavirin, methotrexate) + - Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli) + +## Data Definition + +| Column Name | Type | Description | +|--------------|--------------|---------------------------------------------| +| Text | string | Sentence including the labels | +| Starts | integer | Position on where the label starts | +| Ends | integer | Position on where the label ends | +| Labels | string | The label( Medical Condition, Medicine or Pathogen) | + +## Code for analysis + +``` r +library(reticulate) +# do the following ONCE AND COMMENT +py_install("nbclient") +py_install("requests") +py_install("pandas") +py_install("nbformat") +py_install("plotly") +``` + +```{r} +library(reticulate) +# do the following ONCE AND COMMENT +py_install("nbclient") +py_install("requests") +py_install("pandas") +py_install("nbformat") +py_install("plotly") +``` + +``` python +#| echo: false +import pandas +import nbclient +import requests +import nbformat +import plotly.express +``` + +```{python} +#| echo: false +import pandas +import nbclient +import requests +import nbformat +import plotly.express +``` + +## Import the data from Github to local. + +```{python} +url = 'https://raw.githubusercontent.com/jsanc223/datasetCorona2/main/Corona2.json' +# HTTP GET request to the raw URL +response = requests.get(url) +# I am checking if the request was successful (status code 200) +if response.status_code == 200: + # Parse the JSON data from the response + data = response.json() + print('Success, the Json data was stored into the data variable') +else: + print('Failed to fetch JSON data:', response.status_code) +``` + +## Parse json data into dictionary to manipulate data. + +```{python} +training_data = [] +for example in data['examples']: + temp_dict = {} + temp_dict['text'] = example['content'] + temp_dict['entities'] = [] + for annotation in example['annotations']: + start = annotation['start'] + end = annotation['end'] + label = annotation['tag_name'].upper() + temp_dict['entities'].append((start, end, label)) + training_data.append(temp_dict) +``` + +## Convert data from Dictionary to Dataframe + +```{python} +import pandas as pd +# I am initialing empty lists to store the data for the DataFrame +texts = [] +starts = [] +ends = [] +labels = [] + +# Iterate through the training_data to extract individual entity annotations +for example in training_data: + text = example['text'] + for entity in example['entities']: + start, end, label = entity + # Append data to the lists + texts.append(text) + starts.append(start) + ends.append(end) + labels.append(label) + +# Create a DataFrame from the lists +df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels}) +df.head(5) +``` + +## Data as dataframe + +```{python} +import pandas as pd +# I am initialing empty lists to store the data for the DataFrame +texts = [] +starts = [] +ends = [] +labels = [] + +# Iterate through the training_data to extract individual entity annotations +for example in training_data: + text = example['text'] + for entity in example['entities']: + start, end, label = entity + # Append data to the lists + texts.append(text) + starts.append(start) + ends.append(end) + labels.append(label) + +# Create a DataFrame from the lists +df = pd.DataFrame({'text': texts, 'start': starts, 'end': ends, 'label': labels}) +df.head(5) +``` + +## 3.3 Data statistics + +1. The dataset contains 134 instances of 'Medical Condition', 94 instances of 'Medicine', and 67 instances of 'Pathogen'. + +```{python} +import plotly.express as px + +# Count the occurrences of each label +label_counts = df['label'].value_counts() + +# Create a DataFrame with labels and their respective counts +df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values}) + +# Plot the frequency of each entity label using a bar plot in Plotly +fig = px.bar(df_counts, x='label', y='count', text='count', color='label', + color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels') + +fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +# Display the counter label inside the bars +#fig.update_traces(textposition='inside') +# Update axis titles +#fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +#fig.show() +``` + +## This data provides an overview of label distribution. + +```{python} +import plotly.express as px + +# Count the occurrences of each label +label_counts = df['label'].value_counts() + +# Create a DataFrame with labels and their respective counts +df_counts = pd.DataFrame({'label': label_counts.index, 'count': label_counts.values}) + +# Plot the frequency of each entity label using a bar plot in Plotly +fig = px.bar(df_counts, x='label', y='count', text='count', color='label', + color_discrete_sequence=px.colors.qualitative.Plotly, title='Frequency of Entity Labels') + +fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +# Display the counter label inside the bars +#fig.update_traces(textposition='inside') +# Update axis titles +#fig.update_layout(xaxis_title='Entity Label', yaxis_title='Frequency') + +#fig.show() +``` + +## Data Statistics Continued + +2. The chart below displays the distribution of biomedical Entity labels in the dataset. 'Medical Condition' is the most prevalent at 45.4%, followed by 'Medicine' at 31.9%, and 'Pathogen' at 22.7%. The chart provides insights into the dataset composition and label prevalence.. + +```{python} +import plotly.express as px + +# Get the counts of each unique label +label_counts = df['label'].value_counts() +# Plot a pie chart using Plotly +fig = px.pie(label_counts, values=label_counts.values, names=label_counts.index, title='Proportion of Entity Labels', hole=0.3) +fig.update_traces(textinfo='percent+label', textfont_size=12) +#fig.show() +``` + +## Boxplot of Data + +```{python} + +import plotly.express as px + +# Create box plots for 'start' and 'end' columns using Plotly +fig = px.box(df, y=['start', 'end'], points='all', title='Box Plots of Start and End Entity Positions') +fig.update_layout(yaxis_title='Value', xaxis_title='Column') +#fig.show() + +``` From c1b30fd23db5d7c215617c86c1ad64d656963cba Mon Sep 17 00:00:00 2001 From: Jorge Sanchez Date: Tue, 25 Apr 2023 22:24:53 -0400 Subject: [PATCH 14/23] without code --- slides.html | 215 +--------------------------------------------------- slides.qmd | 205 +------------------------------------------------ 2 files changed, 5 insertions(+), 415 deletions(-) diff --git a/slides.html b/slides.html index 64a8ca9c9..75f5601e7 100644 --- a/slides.html +++ b/slides.html @@ -11,7 +11,6 @@ - NER using RNNs and Transformer Models @@ -30,71 +29,6 @@ margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ vertical-align: middle; } - /* CSS for syntax highlighting */ - pre > code.sourceCode { white-space: pre; position: relative; } - pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } - pre > code.sourceCode > span:empty { height: 1.2em; } - .sourceCode { overflow: visible; } - code.sourceCode > span { color: inherit; text-decoration: inherit; } - div.sourceCode { margin: 1em 0; } - pre.sourceCode { margin: 0; } - @media screen { - div.sourceCode { overflow: auto; } - } - @media print { - pre > code.sourceCode { white-space: pre-wrap; } - pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } - } - pre.numberSource code - { counter-reset: source-line 0; } - pre.numberSource code > span - { position: relative; left: -4em; counter-increment: source-line; } - pre.numberSource code > span > a:first-child::before - { content: counter(source-line); - position: relative; left: -1em; text-align: right; vertical-align: baseline; - border: none; display: inline-block; - -webkit-touch-callout: none; -webkit-user-select: none; - -khtml-user-select: none; -moz-user-select: none; - -ms-user-select: none; user-select: none; - padding: 0 4px; width: 4em; - color: #aaaaaa; - } - pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } - div.sourceCode - { color: #003b4f; background-color: #f1f3f5; } - @media screen { - pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } - } - code span { color: #003b4f; } /* Normal */ - code span.al { color: #ad0000; } /* Alert */ - code span.an { color: #5e5e5e; } /* Annotation */ - code span.at { color: #657422; } /* Attribute */ - code span.bn { color: #ad0000; } /* BaseN */ - code span.bu { } /* BuiltIn */ - code span.cf { color: #003b4f; } /* ControlFlow */ - code span.ch { color: #20794d; } /* Char */ - code span.cn { color: #8f5902; } /* Constant */ - code span.co { color: #5e5e5e; } /* Comment */ - code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */ - code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */ - code span.dt { color: #ad0000; } /* DataType */ - code span.dv { color: #ad0000; } /* DecVal */ - code span.er { color: #ad0000; } /* Error */ - code span.ex { } /* Extension */ - code span.fl { color: #ad0000; } /* Float */ - code span.fu { color: #4758ab; } /* Function */ - code span.im { color: #00769e; } /* Import */ - code span.in { color: #5e5e5e; } /* Information */ - code span.kw { color: #003b4f; } /* Keyword */ - code span.op { color: #5e5e5e; } /* Operator */ - code span.ot { color: #003b4f; } /* Other */ - code span.pp { color: #ad0000; } /* Preprocessor */ - code span.sc { color: #5e5e5e; } /* SpecialChar */ - code span.ss { color: #20794d; } /* SpecialString */ - code span.st { color: #20794d; } /* String */ - code span.va { color: #111111; } /* Variable */ - code span.vs { color: #20794d; } /* VerbatimString */ - code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */ @@ -401,7 +335,7 @@

    NER using RNNs and Transformer Models

    +
    + +
    +

    NER using RNNs and Transformer Models

    + +
    +
    +
    +Sara Ericson, Andrew Campbell, Jorge Sanchez +
    +
    +
    + +

    2023-04-25

    +
    +
    +

    What is Transformer Model?

    +
      +
    • The Transformer model is a neural network architecture designed for sequence-to-sequence tasks such as machine translation.

    • +
    • The model’s key innovation is the self-attention mechanism, which allows it to weigh the importance of different words in the input sequence.

    • +
    • Self-attention enables the model to capture long-range dependencies and handle complex language structures effectively.

    • +
    +
    +
    +

    Transformer Architecture

    +
    +
    +

    +
    +
      +
    • Encoder

    • +
    • Decoder

    • +
    • Positional Encoding

    • +
    • Multi-Head Attention

    • +
    +
    +
    +
    +
    +

    Transformer Model Methods

    +
      +
    • Scaled Dot-Product Attention formula
      +
      +\(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V\)
      +

    • +
    • The Single (Masked) Self- or Cross-Attention Head Formula \(\begin{align*}\text{Attention}(Q, K, V) &= \text{softmax}\left(\frac{QK^\top + \text{Mask}}{\sqrt{d_k}}\right)V \\\end{align*}\)

    • +
    +
    +
    +

    Transformer Limitations

    +
      +
    • Standard language models are unidirectional, restricting pre-training architecture options and limiting context awareness.

    • +
    • Transformers have high computational complexity due to numerous parameters, requiring significant resources and specialized hardware for deep models and long sequences.

    • +
    +
    +
    +

    Dataset

    +

    We will use the dataset called corona2 from Kaggle to identify Natural Entity Recognition to identify Medical Condition, Medicine names and Pathogens. Similarly to the dataset used in the dataset was manually tagged for training.

    +
      +
    • Labels:

      +
        +
      • Medical condition names (example: influenza, headache, malaria)
      • +
      • Medicine names (example : aspirin, penicillin, ribavirin, methotrexate)
      • +
      • Pathogens ( example: Corona Virus, Zika Virus, cynobacteria, E. Coli)
      • +
    • +
    +
    +
    +

    Data Definition

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Column NameTypeDescription
    TextstringSentence including the labels
    StartsintegerPosition on where the label starts
    EndsintegerPosition on where the label ends
    LabelsstringThe label( Medical Condition, Medicine or Pathogen)
    +
    +
    +

    Code for analysis

    +
    library(reticulate)
    +# do the following ONCE AND COMMENT
    +py_install("nbclient")
    +py_install("requests")
    +py_install("pandas")
    +py_install("nbformat")
    +py_install("plotly")
    +
    #| echo: false
    +import pandas
    +import nbclient
    +import requests
    +import nbformat
    +import plotly.express
    +
    +
    +

    Import the data from Github to local.

    +
    +
    +
    Success, the Json data was stored into the data variable
    +
    +
    +
    +
    +

    Parse json data into dictionary to manipulate data.

    +
    +
    +

    Convert data from Dictionary to Dataframe

    +
    +
    +
                                                    text  ...             label
    +0  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +1  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +2  While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
    +3  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +4  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +
    +[5 rows x 4 columns]
    +
    +
    +
    +
    +

    Data as dataframe

    +
    +
    +
                                                    text  ...             label
    +0  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +1  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +2  While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
    +3  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +4  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
    +
    +[5 rows x 4 columns]
    +
    +
    +
    +
    +

    3.3 Data statistics

    +
      +
    1. The dataset contains 134 instances of ‘Medical Condition’, 94 instances of ‘Medicine’, and 67 instances of ‘Pathogen’.
    2. +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    This data provides an overview of label distribution.

    +
    +
    + +
    +
    +
    +
    +
    +
    +

    Data Statistics Continued

    +
      +
    1. The chart below displays the distribution of biomedical Entity labels in the dataset. ‘Medical Condition’ is the most prevalent at 45.4%, followed by ‘Medicine’ at 31.9%, and ‘Pathogen’ at 22.7%. The chart provides insights into the dataset composition and label prevalence..
    2. +
    +
    +
    + +
    +
    +
    +
    +
    +
    +

    Boxplot of Data

    +
    +
    + +
    +
    +
    +
    + +
    +
    +
-

2023-04-25

+

Invalid Date

What is Transformer Model?

@@ -459,9 +393,9 @@

Dataset

Data Definition

---+++ @@ -493,109 +427,6 @@

Data Definition

-
-
-

Code for analysis

-
library(reticulate)
-# do the following ONCE AND COMMENT
-py_install("nbclient")
-py_install("requests")
-py_install("pandas")
-py_install("nbformat")
-py_install("plotly")
-
#| echo: false
-import pandas
-import nbclient
-import requests
-import nbformat
-import plotly.express
-
-
-

Import the data from Github to local.

-
-
-
Success, the Json data was stored into the data variable
-
-
-
-
-

Parse json data into dictionary to manipulate data.

-
-
-

Convert data from Dictionary to Dataframe

-
-
-
                                                text  ...             label
-0  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-1  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-2  While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
-3  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-4  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-
-[5 rows x 4 columns]
-
-
-
-
-

Data as dataframe

-
-
-
                                                text  ...             label
-0  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-1  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-2  While bismuth compounds (Pepto-Bismol) decreas...  ...  MEDICALCONDITION
-3  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-4  While bismuth compounds (Pepto-Bismol) decreas...  ...          MEDICINE
-
-[5 rows x 4 columns]
-
-
-
-
-

3.3 Data statistics

-
    -
  1. The dataset contains 134 instances of ‘Medical Condition’, 94 instances of ‘Medicine’, and 67 instances of ‘Pathogen’.
  2. -
-
-
- -
-
-
-
-
-
-

This data provides an overview of label distribution.

-
-
- -
-
-
-
-
-
-

Data Statistics Continued

-
    -
  1. The chart below displays the distribution of biomedical Entity labels in the dataset. ‘Medical Condition’ is the most prevalent at 45.4%, followed by ‘Medicine’ at 31.9%, and ‘Pathogen’ at 22.7%. The chart provides insights into the dataset composition and label prevalence..
  2. -
-
-
- -
-
-
-
-
-
-

Boxplot of Data

-
-
- -
-
-
-
@@ -811,44 +642,6 @@

Boxplot of Data

] }); - - - ' ); + + var leadingWs = text.match( /^\n?(\s*)/ )[1].length, + leadingTabs = text.match( /^\n?(\t*)/ )[1].length; + + if( leadingTabs > 0 ) { + text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' ); + } + else if( leadingWs > 1 ) { + text = text.replace( new RegExp('\\n? {' + leadingWs + '}', 'g'), '\n' ); + } + + return text; + + } + + /** + * Given a markdown slide section element, this will + * return all arguments that aren't related to markdown + * parsing. Used to forward any other user-defined arguments + * to the output markdown slide. + */ + function getForwardedAttributes( section ) { + + var attributes = section.attributes; + var result = []; + + for( var i = 0, len = attributes.length; i < len; i++ ) { + var name = attributes[i].name, + value = attributes[i].value; + + // disregard attributes that are used for markdown loading/parsing + if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue; + + if( value ) { + result.push( name + '="' + value + '"' ); + } + else { + result.push( name ); + } + } + + return result.join( ' ' ); + + } + + /** + * Inspects the given options and fills out default + * values for what's not defined. + */ + function getSlidifyOptions( options ) { + + options = options || {}; + options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR; + options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR; + options.attributes = options.attributes || ''; + + return options; + + } + + /** + * Helper function for constructing a markdown slide. + */ + function createMarkdownSlide( content, options ) { + + options = getSlidifyOptions( options ); + + var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) ); + + if( notesMatch.length === 2 ) { + content = notesMatch[0] + ''; + } + + // prevent script end tags in the content from interfering + // with parsing + content = content.replace( /<\/script>/g, SCRIPT_END_PLACEHOLDER ); + + return ''; + + } + + /** + * Parses a data string into multiple slides based + * on the passed in separator arguments. + */ + function slidify( markdown, options ) { + + options = getSlidifyOptions( options ); + + var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ), + horizontalSeparatorRegex = new RegExp( options.separator ); + + var matches, + lastIndex = 0, + isHorizontal, + wasHorizontal = true, + content, + sectionStack = []; + + // iterate until all blocks between separators are stacked up + while( matches = separatorRegex.exec( markdown ) ) { + var notes = null; + + // determine direction (horizontal by default) + isHorizontal = horizontalSeparatorRegex.test( matches[0] ); + + if( !isHorizontal && wasHorizontal ) { + // create vertical stack + sectionStack.push( [] ); + } + + // pluck slide content from markdown input + content = markdown.substring( lastIndex, matches.index ); + + if( isHorizontal && wasHorizontal ) { + // add to horizontal stack + sectionStack.push( content ); + } + else { + // add to vertical stack + sectionStack[sectionStack.length-1].push( content ); + } + + lastIndex = separatorRegex.lastIndex; + wasHorizontal = isHorizontal; + } + + // add the remaining slide + ( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) ); + + var markdownSections = ''; + + // flatten the hierarchical stack, and insert
tags + for( var i = 0, len = sectionStack.length; i < len; i++ ) { + // vertical + if( sectionStack[i] instanceof Array ) { + markdownSections += '
'; + + sectionStack[i].forEach( function( child ) { + markdownSections += '
' + createMarkdownSlide( child, options ) + '
'; + } ); + + markdownSections += '
'; + } + else { + markdownSections += '
' + createMarkdownSlide( sectionStack[i], options ) + '
'; + } + } + + return markdownSections; + + } + + /** + * Parses any current data-markdown slides, splits + * multi-slide markdown into separate sections and + * handles loading of external markdown. + */ + function processSlides( scope ) { + + return new Promise( function( resolve ) { + + var externalPromises = []; + + [].slice.call( scope.querySelectorAll( 'section[data-markdown]:not([data-markdown-parsed])') ).forEach( function( section, i ) { + + if( section.getAttribute( 'data-markdown' ).length ) { + + externalPromises.push( loadExternalMarkdown( section ).then( + + // Finished loading external file + function( xhr, url ) { + section.outerHTML = slidify( xhr.responseText, { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-separator-vertical' ), + notesSeparator: section.getAttribute( 'data-separator-notes' ), + attributes: getForwardedAttributes( section ) + }); + }, + + // Failed to load markdown + function( xhr, url ) { + section.outerHTML = '
' + + 'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' + + 'Check your browser\'s JavaScript console for more details.' + + '

Remember that you need to serve the presentation HTML from a HTTP server.

' + + '
'; + } + + ) ); + + } + else { + + section.outerHTML = slidify( getMarkdownFromSlide( section ), { + separator: section.getAttribute( 'data-separator' ), + verticalSeparator: section.getAttribute( 'data-separator-vertical' ), + notesSeparator: section.getAttribute( 'data-separator-notes' ), + attributes: getForwardedAttributes( section ) + }); + + } + + }); + + Promise.all( externalPromises ).then( resolve ); + + } ); + + } + + function loadExternalMarkdown( section ) { + + return new Promise( function( resolve, reject ) { + + var xhr = new XMLHttpRequest(), + url = section.getAttribute( 'data-markdown' ); + + var datacharset = section.getAttribute( 'data-charset' ); + + // see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes + if( datacharset != null && datacharset != '' ) { + xhr.overrideMimeType( 'text/html; charset=' + datacharset ); + } + + xhr.onreadystatechange = function( section, xhr ) { + if( xhr.readyState === 4 ) { + // file protocol yields status code 0 (useful for local debug, mobile applications etc.) + if ( ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status === 0 ) { + + resolve( xhr, url ); + + } + else { + + reject( xhr, url ); + + } + } + }.bind( this, section, xhr ); + + xhr.open( 'GET', url, true ); + + try { + xhr.send(); + } + catch ( e ) { + console.warn( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e ); + resolve( xhr, url ); + } + + } ); + + } + + /** + * Check if a node value has the attributes pattern. + * If yes, extract it and add that value as one or several attributes + * to the target element. + * + * You need Cache Killer on Chrome to see the effect on any FOM transformation + * directly on refresh (F5) + * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277 + */ + function addAttributeInElement( node, elementTarget, separator ) { + + var mardownClassesInElementsRegex = new RegExp( separator, 'mg' ); + var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"]+?)\"|(data-[^\"= ]+?)(?=[\" ])", 'mg' ); + var nodeValue = node.nodeValue; + var matches, + matchesClass; + if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) { + + var classes = matches[1]; + nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex ); + node.nodeValue = nodeValue; + while( matchesClass = mardownClassRegex.exec( classes ) ) { + if( matchesClass[2] ) { + elementTarget.setAttribute( matchesClass[1], matchesClass[2] ); + } else { + elementTarget.setAttribute( matchesClass[3], "" ); + } + } + return true; + } + return false; + } + + /** + * Add attributes to the parent element of a text node, + * or the element of an attribute node. + */ + function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) { + + if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) { + var previousParentElement = element; + for( var i = 0; i < element.childNodes.length; i++ ) { + var childElement = element.childNodes[i]; + if ( i > 0 ) { + var j = i - 1; + while ( j >= 0 ) { + var aPreviousChildElement = element.childNodes[j]; + if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) { + previousParentElement = aPreviousChildElement; + break; + } + j = j - 1; + } + } + var parentSection = section; + if( childElement.nodeName == "section" ) { + parentSection = childElement ; + previousParentElement = childElement ; + } + if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) { + addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes ); + } + } + } + + if ( element.nodeType == Node.COMMENT_NODE ) { + if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) { + addAttributeInElement( element, section, separatorSectionAttributes ); + } + } + } + + /** + * Converts any current data-markdown slides in the + * DOM to HTML. + */ + function convertSlides() { + + var sections = deck.getRevealElement().querySelectorAll( '[data-markdown]:not([data-markdown-parsed])'); + + [].slice.call( sections ).forEach( function( section ) { + + section.setAttribute( 'data-markdown-parsed', true ) + + var notes = section.querySelector( 'aside.notes' ); + var markdown = getMarkdownFromSlide( section ); + + section.innerHTML = marked( markdown ); + addAttributes( section, section, null, section.getAttribute( 'data-element-attributes' ) || + section.parentNode.getAttribute( 'data-element-attributes' ) || + DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR, + section.getAttribute( 'data-attributes' ) || + section.parentNode.getAttribute( 'data-attributes' ) || + DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR); + + // If there were notes, we need to re-add them after + // having overwritten the section's HTML + if( notes ) { + section.appendChild( notes ); + } + + } ); + + return Promise.resolve(); + + } + + function escapeForHTML( input ) { + + return input.replace( /([&<>'"])/g, char => HTML_ESCAPE_MAP[char] ); + + } + + return { + id: 'markdown', + + /** + * Starts processing and converting Markdown within the + * current reveal.js deck. + */ + init: function( reveal ) { + + deck = reveal; + + let { renderer, animateLists, ...markedOptions } = deck.getConfig().markdown || {}; + + if( !renderer ) { + renderer = new marked.Renderer(); + + renderer.code = ( code, language ) => { + + // Off by default + let lineNumbers = ''; + + // Users can opt in to show line numbers and highlight + // specific lines. + // ```javascript [] show line numbers + // ```javascript [1,4-8] highlights lines 1 and 4-8 + if( CODE_LINE_NUMBER_REGEX.test( language ) ) { + lineNumbers = language.match( CODE_LINE_NUMBER_REGEX )[1].trim(); + lineNumbers = `data-line-numbers="${lineNumbers}"`; + language = language.replace( CODE_LINE_NUMBER_REGEX, '' ).trim(); + } + + // Escape before this gets injected into the DOM to + // avoid having the HTML parser alter our code before + // highlight.js is able to read it + code = escapeForHTML( code ); + + return `
${code}
`; + }; + } + + if( animateLists === true ) { + renderer.listitem = text => `
  • ${text}
  • `; + } + + marked.setOptions( { + renderer, + ...markedOptions + } ); + + return processSlides( deck.getRevealElement() ).then( convertSlides ); + + }, + + // TODO: Do these belong in the API? + processSlides: processSlides, + convertSlides: convertSlides, + slidify: slidify, + marked: marked + } + +}; + +export default Plugin; diff --git a/slides_files/libs/revealjs/plugin/math/katex.js b/slides_files/libs/revealjs/plugin/math/katex.js new file mode 100644 index 000000000..a8b47c4a5 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/math/katex.js @@ -0,0 +1,96 @@ +/** + * A plugin which enables rendering of math equations inside + * of reveal.js slides. Essentially a thin wrapper for KaTeX. + * + * @author Hakim El Hattab + * @author Gerhard Burger + */ +export const KaTeX = () => { + let deck; + + let defaultOptions = { + version: 'latest', + delimiters: [ + {left: '$$', right: '$$', display: true}, // Note: $$ has to come before $ + {left: '$', right: '$', display: false}, + {left: '\\(', right: '\\)', display: false}, + {left: '\\[', right: '\\]', display: true} + ], + ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre'] + } + + const loadCss = src => { + let link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = src; + document.head.appendChild(link); + }; + + /** + * Loads a JavaScript file and returns a Promise for when it is loaded + * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/ + */ + const loadScript = src => { + return new Promise((resolve, reject) => { + const script = document.createElement('script') + script.type = 'text/javascript' + script.onload = resolve + script.onerror = reject + script.src = src + document.head.append(script) + }) + }; + + async function loadScripts(urls) { + for(const url of urls) { + await loadScript(url); + } + } + + return { + id: 'katex', + + init: function (reveal) { + + deck = reveal; + + let revealOptions = deck.getConfig().katex || {}; + + let options = {...defaultOptions, ...revealOptions}; + const {local, version, extensions, ...katexOptions} = options; + + let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex'; + let versionString = options.local ? '' : '@' + options.version; + + let cssUrl = baseUrl + versionString + '/dist/katex.min.css'; + let katexUrl = baseUrl + versionString + '/dist/katex.min.js'; + let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js' + let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js'; + + let katexScripts = [katexUrl]; + if(options.extensions && options.extensions.includes("mhchem")) { + katexScripts.push(mhchemUrl); + } + katexScripts.push(karUrl); + + const renderMath = () => { + renderMathInElement(reveal.getSlidesElement(), katexOptions); + deck.layout(); + } + + loadCss(cssUrl); + + // For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does + loadScripts(katexScripts).then(() => { + if( deck.isReady() ) { + renderMath(); + } + else { + deck.on( 'ready', renderMath.bind( this ) ); + } + }); + + } + } + +}; diff --git a/slides_files/libs/revealjs/plugin/math/math.esm.js b/slides_files/libs/revealjs/plugin/math/math.esm.js new file mode 100644 index 000000000..a0d1468d4 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/math/math.esm.js @@ -0,0 +1 @@ +var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=function(t){return t&&t.Math==Math&&t},n=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof t&&t)||function(){return this}()||Function("return this")(),r={},o=function(t){try{return!!t()}catch(t){return!0}},i=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a={},c={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,f=u&&!c.call({1:2},1);a.f=f?function(t){var e=u(this,t);return!!e&&e.enumerable}:c;var s=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},l={}.toString,p=function(t){return l.call(t).slice(8,-1)},h=p,v="".split,d=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==h(t)?v.call(t,""):Object(t)}:Object,y=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=d,m=y,b=function(t){return g(m(t))},w=function(t){return"object"==typeof t?null!==t:"function"==typeof t},j=w,x=function(t,e){if(!j(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!j(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!j(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")},O=y,E=function(t){return Object(O(t))},S=E,T={}.hasOwnProperty,P=function(t,e){return T.call(S(t),e)},_=w,k=n.document,L=_(k)&&_(k.createElement),M=function(t){return L?k.createElement(t):{}},A=M,I=!i&&!o((function(){return 7!=Object.defineProperty(A("div"),"a",{get:function(){return 7}}).a})),R=i,C=a,N=s,F=b,J=x,D=P,$=I,G=Object.getOwnPropertyDescriptor;r.f=R?G:function(t,e){if(t=F(t),e=J(e,!0),$)try{return G(t,e)}catch(t){}if(D(t,e))return N(!C.f.call(t,e),t[e])};var H={},z=w,W=function(t){if(!z(t))throw TypeError(String(t)+" is not an object");return t},q=i,U=I,K=W,Q=x,X=Object.defineProperty;H.f=q?X:function(t,e,n){if(K(t),e=Q(e,!0),K(n),U)try{return X(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var Y=H,B=s,V=i?function(t,e,n){return Y.f(t,e,B(1,n))}:function(t,e,n){return t[e]=n,t},Z={exports:{}},tt=n,et=V,nt=function(t,e){try{et(tt,t,e)}catch(n){tt[t]=e}return e},rt=nt,ot=n["__core-js_shared__"]||rt("__core-js_shared__",{}),it=ot,at=Function.toString;"function"!=typeof it.inspectSource&&(it.inspectSource=function(t){return at.call(t)});var ct=it.inspectSource,ut=ct,ft=n.WeakMap,st="function"==typeof ft&&/native code/.test(ut(ft)),lt={exports:{}},pt=ot;(lt.exports=function(t,e){return pt[t]||(pt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var ht,vt,dt,yt=0,gt=Math.random(),mt=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++yt+gt).toString(36)},bt=lt.exports,wt=mt,jt=bt("keys"),xt=function(t){return jt[t]||(jt[t]=wt(t))},Ot={},Et=st,St=w,Tt=V,Pt=P,_t=ot,kt=xt,Lt=Ot,Mt=n.WeakMap;if(Et||_t.state){var At=_t.state||(_t.state=new Mt),It=At.get,Rt=At.has,Ct=At.set;ht=function(t,e){if(Rt.call(At,t))throw new TypeError("Object already initialized");return e.facade=t,Ct.call(At,t,e),e},vt=function(t){return It.call(At,t)||{}},dt=function(t){return Rt.call(At,t)}}else{var Nt=kt("state");Lt[Nt]=!0,ht=function(t,e){if(Pt(t,Nt))throw new TypeError("Object already initialized");return e.facade=t,Tt(t,Nt,e),e},vt=function(t){return Pt(t,Nt)?t[Nt]:{}},dt=function(t){return Pt(t,Nt)}}var Ft={set:ht,get:vt,has:dt,enforce:function(t){return dt(t)?vt(t):ht(t,{})},getterFor:function(t){return function(e){var n;if(!St(e)||(n=vt(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},Jt=n,Dt=V,$t=P,Gt=nt,Ht=ct,zt=Ft.get,Wt=Ft.enforce,qt=String(String).split("String");(Z.exports=function(t,e,n,r){var o,i=!!r&&!!r.unsafe,a=!!r&&!!r.enumerable,c=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof e||$t(n,"name")||Dt(n,"name",e),(o=Wt(n)).source||(o.source=qt.join("string"==typeof e?e:""))),t!==Jt?(i?!c&&t[e]&&(a=!0):delete t[e],a?t[e]=n:Dt(t,e,n)):a?t[e]=n:Gt(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&zt(this).source||Ht(this)}));var Ut=n,Kt=n,Qt=function(t){return"function"==typeof t?t:void 0},Xt=function(t,e){return arguments.length<2?Qt(Ut[t])||Qt(Kt[t]):Ut[t]&&Ut[t][e]||Kt[t]&&Kt[t][e]},Yt={},Bt=Math.ceil,Vt=Math.floor,Zt=function(t){return isNaN(t=+t)?0:(t>0?Vt:Bt)(t)},te=Zt,ee=Math.min,ne=function(t){return t>0?ee(te(t),9007199254740991):0},re=Zt,oe=Math.max,ie=Math.min,ae=b,ce=ne,ue=function(t,e){var n=re(t);return n<0?oe(n+e,0):ie(n,e)},fe=function(t){return function(e,n,r){var o,i=ae(e),a=ce(i.length),c=ue(r,a);if(t&&n!=n){for(;a>c;)if((o=i[c++])!=o)return!0}else for(;a>c;c++)if((t||c in i)&&i[c]===n)return t||c||0;return!t&&-1}},se={includes:fe(!0),indexOf:fe(!1)},le=P,pe=b,he=se.indexOf,ve=Ot,de=function(t,e){var n,r=pe(t),o=0,i=[];for(n in r)!le(ve,n)&&le(r,n)&&i.push(n);for(;e.length>o;)le(r,n=e[o++])&&(~he(i,n)||i.push(n));return i},ye=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],ge=de,me=ye.concat("length","prototype");Yt.f=Object.getOwnPropertyNames||function(t){return ge(t,me)};var be={};be.f=Object.getOwnPropertySymbols;var we=Yt,je=be,xe=W,Oe=Xt("Reflect","ownKeys")||function(t){var e=we.f(xe(t)),n=je.f;return n?e.concat(n(t)):e},Ee=P,Se=Oe,Te=r,Pe=H,_e=o,ke=/#|\.prototype\./,Le=function(t,e){var n=Ae[Me(t)];return n==Re||n!=Ie&&("function"==typeof e?_e(e):!!e)},Me=Le.normalize=function(t){return String(t).replace(ke,".").toLowerCase()},Ae=Le.data={},Ie=Le.NATIVE="N",Re=Le.POLYFILL="P",Ce=Le,Ne=n,Fe=r.f,Je=V,De=Z.exports,$e=nt,Ge=function(t,e){for(var n=Se(e),r=Pe.f,o=Te.f,i=0;io;)for(var c,u=Ze(arguments[o++]),f=i?Xe(u).concat(i(u)):Xe(u),s=f.length,l=0;s>l;)c=f[l++],Ke&&!a.call(u,c)||(n[c]=u[c]);return n}:tn;function rn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function on(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function sn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}ze({target:"Object",stat:!0,forced:Object.assign!==nn},{assign:nn});!function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function f(t,e,n,r){var o=e&&e.prototype instanceof y?e:y,i=Object.create(o.prototype),a=new _(r||[]);return i._invoke=function(t,e,n){var r=l;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===v){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=S(a,n);if(c){if(c===d)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=s(t,e,n);if("normal"===u.type){if(r=n.done?v:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=v,n.method="throw",n.arg=u.arg)}}}(t,n,a),i}function s(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var l="suspendedStart",p="suspendedYield",h="executing",v="completed",d={};function y(){}function g(){}function m(){}var b={};b[i]=function(){return this};var w=Object.getPrototypeOf,j=w&&w(w(k([])));j&&j!==n&&r.call(j,i)&&(b=j);var x=m.prototype=y.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function n(o,i,a,c){var u=s(t[o],t,i);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,c)}))}c(u.arg)}var o;this._invoke=function(t,r){function i(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(i,i):i()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=s(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function k(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),f=r.call(a,"finallyLoc");if(u&&f){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:k(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}({exports:{}});var pn,hn,vn=Xt("navigator","userAgent")||"",dn=vn,yn=n.process,gn=yn&&yn.versions,mn=gn&&gn.v8;mn?hn=(pn=mn.split("."))[0]<4?1:pn[0]+pn[1]:dn&&(!(pn=dn.match(/Edge\/(\d+)/))||pn[1]>=74)&&(pn=dn.match(/Chrome\/(\d+)/))&&(hn=pn[1]);var bn=hn&&+hn,wn=bn,jn=o,xn=!!Object.getOwnPropertySymbols&&!jn((function(){return!String(Symbol())||!Symbol.sham&&wn&&wn<41})),On=xn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,En=n,Sn=lt.exports,Tn=P,Pn=mt,_n=xn,kn=On,Ln=Sn("wks"),Mn=En.Symbol,An=kn?Mn:Mn&&Mn.withoutSetter||Pn,In=function(t){return Tn(Ln,t)&&(_n||"string"==typeof Ln[t])||(_n&&Tn(Mn,t)?Ln[t]=Mn[t]:Ln[t]=An("Symbol."+t)),Ln[t]},Rn={};Rn[In("toStringTag")]="z";var Cn="[object z]"===String(Rn),Nn=Cn,Fn=p,Jn=In("toStringTag"),Dn="Arguments"==Fn(function(){return arguments}()),$n=Nn?Fn:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),Jn))?n:Dn?Fn(e):"Object"==(r=Fn(e))&&"function"==typeof e.callee?"Arguments":r},Gn=$n,Hn=Cn?{}.toString:function(){return"[object "+Gn(this)+"]"},zn=Cn,Wn=Z.exports,qn=Hn;zn||Wn(Object.prototype,"toString",qn,{unsafe:!0});var Un=n.Promise,Kn=Z.exports,Qn=w,Xn=W,Yn=function(t){if(!Qn(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},Bn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return Xn(n),Yn(r),e?t.call(n,r):n.__proto__=r,n}}():void 0),Vn=H.f,Zn=P,tr=In("toStringTag"),er=Xt,nr=H,rr=i,or=In("species"),ir=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},ar={},cr=ar,ur=In("iterator"),fr=Array.prototype,sr=ir,lr=function(t,e,n){if(sr(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}},pr=$n,hr=ar,vr=In("iterator"),dr=W,yr=W,gr=function(t){return void 0!==t&&(cr.Array===t||fr[ur]===t)},mr=ne,br=lr,wr=function(t){if(null!=t)return t[vr]||t["@@iterator"]||hr[pr(t)]},jr=function(t){var e=t.return;if(void 0!==e)return dr(e.call(t)).value},xr=function(t,e){this.stopped=t,this.result=e},Or=In("iterator"),Er=!1;try{var Sr=0,Tr={next:function(){return{done:!!Sr++}},return:function(){Er=!0}};Tr[Or]=function(){return this},Array.from(Tr,(function(){throw 2}))}catch(t){}var Pr,_r,kr,Lr=W,Mr=ir,Ar=In("species"),Ir=Xt("document","documentElement"),Rr=/(?:iphone|ipod|ipad).*applewebkit/i.test(vn),Cr="process"==p(n.process),Nr=n,Fr=o,Jr=lr,Dr=Ir,$r=M,Gr=Rr,Hr=Cr,zr=Nr.location,Wr=Nr.setImmediate,qr=Nr.clearImmediate,Ur=Nr.process,Kr=Nr.MessageChannel,Qr=Nr.Dispatch,Xr=0,Yr={},Br=function(t){if(Yr.hasOwnProperty(t)){var e=Yr[t];delete Yr[t],e()}},Vr=function(t){return function(){Br(t)}},Zr=function(t){Br(t.data)},to=function(t){Nr.postMessage(t+"",zr.protocol+"//"+zr.host)};Wr&&qr||(Wr=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Yr[++Xr]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},Pr(Xr),Xr},qr=function(t){delete Yr[t]},Hr?Pr=function(t){Ur.nextTick(Vr(t))}:Qr&&Qr.now?Pr=function(t){Qr.now(Vr(t))}:Kr&&!Gr?(kr=(_r=new Kr).port2,_r.port1.onmessage=Zr,Pr=Jr(kr.postMessage,kr,1)):Nr.addEventListener&&"function"==typeof postMessage&&!Nr.importScripts&&zr&&"file:"!==zr.protocol&&!Fr(to)?(Pr=to,Nr.addEventListener("message",Zr,!1)):Pr="onreadystatechange"in $r("script")?function(t){Dr.appendChild($r("script")).onreadystatechange=function(){Dr.removeChild(this),Br(t)}}:function(t){setTimeout(Vr(t),0)});var eo,no,ro,oo,io,ao,co,uo,fo={set:Wr,clear:qr},so=/web0s(?!.*chrome)/i.test(vn),lo=n,po=r.f,ho=fo.set,vo=Rr,yo=so,go=Cr,mo=lo.MutationObserver||lo.WebKitMutationObserver,bo=lo.document,wo=lo.process,jo=lo.Promise,xo=po(lo,"queueMicrotask"),Oo=xo&&xo.value;Oo||(eo=function(){var t,e;for(go&&(t=wo.domain)&&t.exit();no;){e=no.fn,no=no.next;try{e()}catch(t){throw no?oo():ro=void 0,t}}ro=void 0,t&&t.enter()},vo||go||yo||!mo||!bo?jo&&jo.resolve?((co=jo.resolve(void 0)).constructor=jo,uo=co.then,oo=function(){uo.call(co,eo)}):oo=go?function(){wo.nextTick(eo)}:function(){ho.call(lo,eo)}:(io=!0,ao=bo.createTextNode(""),new mo(eo).observe(ao,{characterData:!0}),oo=function(){ao.data=io=!io}));var Eo=Oo||function(t){var e={fn:t,next:void 0};ro&&(ro.next=e),no||(no=e,oo()),ro=e},So={},To=ir,Po=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=To(e),this.reject=To(n)};So.f=function(t){return new Po(t)};var _o,ko,Lo,Mo,Ao=W,Io=w,Ro=So,Co=n,No="object"==typeof window,Fo=ze,Jo=n,Do=Xt,$o=Un,Go=Z.exports,Ho=function(t,e,n){for(var r in e)Kn(t,r,e[r],n);return t},zo=Bn,Wo=function(t,e,n){t&&!Zn(t=n?t:t.prototype,tr)&&Vn(t,tr,{configurable:!0,value:e})},qo=function(t){var e=er(t),n=nr.f;rr&&e&&!e[or]&&n(e,or,{configurable:!0,get:function(){return this}})},Uo=w,Ko=ir,Qo=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t},Xo=ct,Yo=function(t,e,n){var r,o,i,a,c,u,f,s=n&&n.that,l=!(!n||!n.AS_ENTRIES),p=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),v=br(e,s,1+l+h),d=function(t){return r&&jr(r),new xr(!0,t)},y=function(t){return l?(yr(t),h?v(t[0],t[1],d):v(t[0],t[1])):h?v(t,d):v(t)};if(p)r=t;else{if("function"!=typeof(o=wr(t)))throw TypeError("Target is not iterable");if(gr(o)){for(i=0,a=mr(t.length);a>i;i++)if((c=y(t[i]))&&c instanceof xr)return c;return new xr(!1)}r=o.call(t)}for(u=r.next;!(f=u.call(r)).done;){try{c=y(f.value)}catch(t){throw jr(r),t}if("object"==typeof c&&c&&c instanceof xr)return c}return new xr(!1)},Bo=function(t,e){if(!e&&!Er)return!1;var n=!1;try{var r={};r[Or]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Vo=function(t,e){var n,r=Lr(t).constructor;return void 0===r||null==(n=Lr(r)[Ar])?e:Mr(n)},Zo=fo.set,ti=Eo,ei=function(t,e){if(Ao(t),Io(e)&&e.constructor===t)return e;var n=Ro.f(t);return(0,n.resolve)(e),n.promise},ni=function(t,e){var n=Co.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))},ri=So,oi=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ii=Ft,ai=Ce,ci=No,ui=Cr,fi=bn,si=In("species"),li="Promise",pi=ii.get,hi=ii.set,vi=ii.getterFor(li),di=$o&&$o.prototype,yi=$o,gi=di,mi=Jo.TypeError,bi=Jo.document,wi=Jo.process,ji=ri.f,xi=ji,Oi=!!(bi&&bi.createEvent&&Jo.dispatchEvent),Ei="function"==typeof PromiseRejectionEvent,Si=!1,Ti=ai(li,(function(){var t=Xo(yi)!==String(yi);if(!t&&66===fi)return!0;if(fi>=51&&/native code/.test(yi))return!1;var e=new yi((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};return(e.constructor={})[si]=n,!(Si=e.then((function(){}))instanceof n)||!t&&ci&&!Ei})),Pi=Ti||!Bo((function(t){yi.all(t).catch((function(){}))})),_i=function(t){var e;return!(!Uo(t)||"function"!=typeof(e=t.then))&&e},ki=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;ti((function(){for(var r=t.value,o=1==t.state,i=0;n.length>i;){var a,c,u,f=n[i++],s=o?f.ok:f.fail,l=f.resolve,p=f.reject,h=f.domain;try{s?(o||(2===t.rejection&&Ii(t),t.rejection=1),!0===s?a=r:(h&&h.enter(),a=s(r),h&&(h.exit(),u=!0)),a===f.promise?p(mi("Promise-chain cycle")):(c=_i(a))?c.call(a,l,p):l(a)):p(r)}catch(t){h&&!u&&h.exit(),p(t)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&Mi(t)}))}},Li=function(t,e,n){var r,o;Oi?((r=bi.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),Jo.dispatchEvent(r)):r={promise:e,reason:n},!Ei&&(o=Jo["on"+t])?o(r):"unhandledrejection"===t&&ni("Unhandled promise rejection",n)},Mi=function(t){Zo.call(Jo,(function(){var e,n=t.facade,r=t.value;if(Ai(t)&&(e=oi((function(){ui?wi.emit("unhandledRejection",r,n):Li("unhandledrejection",n,r)})),t.rejection=ui||Ai(t)?2:1,e.error))throw e.value}))},Ai=function(t){return 1!==t.rejection&&!t.parent},Ii=function(t){Zo.call(Jo,(function(){var e=t.facade;ui?wi.emit("rejectionHandled",e):Li("rejectionhandled",e,t.value)}))},Ri=function(t,e,n){return function(r){t(e,r,n)}},Ci=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,ki(t,!0))},Ni=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw mi("Promise can't be resolved itself");var r=_i(e);r?ti((function(){var n={done:!1};try{r.call(e,Ri(Ni,n,t),Ri(Ci,n,t))}catch(e){Ci(n,e,t)}})):(t.value=e,t.state=1,ki(t,!1))}catch(e){Ci({done:!1},e,t)}}};if(Ti&&(gi=(yi=function(t){Qo(this,yi,li),Ko(t),_o.call(this);var e=pi(this);try{t(Ri(Ni,e),Ri(Ci,e))}catch(t){Ci(e,t)}}).prototype,(_o=function(t){hi(this,{type:li,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Ho(gi,{then:function(t,e){var n=vi(this),r=ji(Vo(this,yi));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=ui?wi.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&ki(n,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),ko=function(){var t=new _o,e=pi(t);this.promise=t,this.resolve=Ri(Ni,e),this.reject=Ri(Ci,e)},ri.f=ji=function(t){return t===yi||t===Lo?new ko(t):xi(t)},"function"==typeof $o&&di!==Object.prototype)){Mo=di.then,Si||(Go(di,"then",(function(t,e){var n=this;return new yi((function(t,e){Mo.call(n,t,e)})).then(t,e)}),{unsafe:!0}),Go(di,"catch",gi.catch,{unsafe:!0}));try{delete di.constructor}catch(t){}zo&&zo(di,gi)}Fo({global:!0,wrap:!0,forced:Ti},{Promise:yi}),Wo(yi,li,!1),qo(li),Lo=Do(li),Fo({target:li,stat:!0,forced:Ti},{reject:function(t){var e=ji(this);return e.reject.call(void 0,t),e.promise}}),Fo({target:li,stat:!0,forced:Ti},{resolve:function(t){return ei(this,t)}}),Fo({target:li,stat:!0,forced:Pi},{all:function(t){var e=this,n=ji(e),r=n.resolve,o=n.reject,i=oi((function(){var n=Ko(e.resolve),i=[],a=0,c=1;Yo(t,(function(t){var u=a++,f=!1;i.push(void 0),c++,n.call(e,t).then((function(t){f||(f=!0,i[u]=t,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=ji(e),r=n.reject,o=oi((function(){var o=Ko(e.resolve);Yo(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Fi,Ji=H,Di=W,$i=Ue,Gi=i?Object.defineProperties:function(t,e){Di(t);for(var n,r=$i(e),o=r.length,i=0;o>i;)Ji.f(t,n=r[i++],e[n]);return t},Hi=W,zi=Gi,Wi=ye,qi=Ot,Ui=Ir,Ki=M,Qi=xt("IE_PROTO"),Xi=function(){},Yi=function(t){return" + + \ No newline at end of file diff --git a/slides_files/libs/revealjs/plugin/pdf-export/pdfexport.js b/slides_files/libs/revealjs/plugin/pdf-export/pdfexport.js new file mode 100644 index 000000000..bf9104c8e --- /dev/null +++ b/slides_files/libs/revealjs/plugin/pdf-export/pdfexport.js @@ -0,0 +1,111 @@ +var PdfExport = ( function( _Reveal ){ + + var Reveal = _Reveal; + var setStylesheet = null; + var installAltKeyBindings = null; + + function getRevealJsPath(){ + var regex = /\b[^/]+\/reveal.css$/i; + var script = Array.from( document.querySelectorAll( 'link' ) ).find( function( e ){ + return e.attributes.href && e.attributes.href.value.search( regex ) >= 0; + }); + if( !script ){ + console.error( 'reveal.css could not be found in included elements. Did you rename this file?' ); + return ''; + } + return script.attributes.href.value.replace( regex, '' ); + } + + function setStylesheet3( pdfExport ){ + var link = document.querySelector( '#print' ); + if( !link ){ + link = document.createElement( 'link' ); + link.rel = 'stylesheet'; + link.id = 'print'; + document.querySelector( 'head' ).appendChild( link ); + } + var style = 'paper'; + if( pdfExport ){ + style = 'pdf'; + } + link.href = getRevealJsPath() + 'css/print/' + style + '.css'; + } + + function setStylesheet4( pdfExport ){ + } + + function installAltKeyBindings3(){ + } + + function installAltKeyBindings4(){ + if( isPrintingPDF() ){ + var config = Reveal.getConfig(); + var shortcut = config.pdfExportShortcut || 'E'; + window.addEventListener( 'keydown', function( e ){ + if( e.target.nodeName.toUpperCase() == 'BODY' + && ( e.key.toUpperCase() == shortcut.toUpperCase() || e.keyCode == shortcut.toUpperCase().charCodeAt( 0 ) ) ){ + e.preventDefault(); + togglePdfExport(); + return false; + } + }, true ); + } + } + + function isPrintingPDF(){ + return ( /print-pdf/gi ).test( window.location.search ); + } + + function togglePdfExport(){ + var url_doc = new URL( document.URL ); + var query_doc = new URLSearchParams( url_doc.searchParams ); + if( isPrintingPDF() ){ + query_doc.delete( 'print-pdf' ); + }else{ + query_doc.set( 'print-pdf', '' ); + } + url_doc.search = ( query_doc.toString() ? '?' + query_doc.toString() : '' ); + window.location.href = url_doc.toString(); + } + + function installKeyBindings(){ + var config = Reveal.getConfig(); + var shortcut = config.pdfExportShortcut || 'E'; + Reveal.addKeyBinding({ + keyCode: shortcut.toUpperCase().charCodeAt( 0 ), + key: shortcut.toUpperCase(), + description: 'PDF export mode' + }, togglePdfExport ); + installAltKeyBindings(); + } + + function install(){ + installKeyBindings(); + setStylesheet( isPrintingPDF() ); + } + + var Plugin = { + } + + if( Reveal && Reveal.VERSION && Reveal.VERSION.length && Reveal.VERSION[ 0 ] == '3' ){ + // reveal 3.x + setStylesheet = setStylesheet3; + installAltKeyBindings = installAltKeyBindings3; + install(); + }else{ + // must be reveal 4.x + setStylesheet = setStylesheet4; + installAltKeyBindings = installAltKeyBindings4; + Plugin.id = 'pdf-export'; + Plugin.init = function( _Reveal ){ + Reveal = _Reveal; + install(); + }; + Plugin.togglePdfExport = function () { + togglePdfExport(); + }; + } + + return Plugin; + +})( Reveal ); diff --git a/slides_files/libs/revealjs/plugin/pdf-export/plugin.yml b/slides_files/libs/revealjs/plugin/pdf-export/plugin.yml new file mode 100644 index 000000000..f6db9d032 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/pdf-export/plugin.yml @@ -0,0 +1,2 @@ +name: PdfExport +script: pdfexport.js diff --git a/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.css b/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.css new file mode 100644 index 000000000..e8410fe9e --- /dev/null +++ b/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.css @@ -0,0 +1,31 @@ +.reveal + div.sourceCode + pre + code.has-line-highlights + > span:not(.highlight-line) { + opacity: 0.4; +} + +.reveal pre.numberSource { + padding-left: 0; +} + +.reveal pre.numberSource code > span { + left: -2.1em; +} + +pre.numberSource code > span > a:first-child::before { + left: -0.7em; +} + +.reveal pre > code:not(:first-child).fragment { + position: absolute; + top: 0; + left: 0; + width: 100%; + box-sizing: border-box; +} + +.reveal div.sourceCode pre code { + min-height: 100%; +} diff --git a/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.js b/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.js new file mode 100644 index 000000000..5bffdc772 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.js @@ -0,0 +1,351 @@ +window.QuartoLineHighlight = function () { + function isPrintView() { + return /print-pdf/gi.test(window.location.search); + } + + const delimiters = { + step: "|", + line: ",", + lineRange: "-", + }; + + const regex = new RegExp( + "^[\\d" + Object.values(delimiters).join("") + "]+$" + ); + + function handleLinesSelector(deck, attr) { + // if we are in printview with pdfSeparateFragments: false + // then we'll also want to supress + if (regex.test(attr)) { + if (isPrintView() && deck.getConfig().pdfSeparateFragments !== true) { + return false; + } else { + return true; + } + } else { + return false; + } + } + + const kCodeLineNumbersAttr = "data-code-line-numbers"; + const kFragmentIndex = "data-fragment-index"; + + function initQuartoLineHighlight(deck) { + const divSourceCode = deck + .getRevealElement() + .querySelectorAll("div.sourceCode"); + // Process each div created by Pandoc highlighting - numbered line are already included. + divSourceCode.forEach((el) => { + if (el.hasAttribute(kCodeLineNumbersAttr)) { + const codeLineAttr = el.getAttribute(kCodeLineNumbersAttr); + el.removeAttribute("data-code-line-numbers"); + if (handleLinesSelector(deck, codeLineAttr)) { + // Only process if attr is a string to select lines to highlights + // e.g "1|3,6|8-11" + const codeBlock = el.querySelectorAll("pre code"); + codeBlock.forEach((code) => { + // move attributes on code block + code.setAttribute(kCodeLineNumbersAttr, codeLineAttr); + + const scrollState = { currentBlock: code }; + + // Check if there are steps and duplicate code block accordingly + const highlightSteps = splitLineNumbers(codeLineAttr); + if (highlightSteps.length > 1) { + // If the original code block has a fragment-index, + // each clone should follow in an incremental sequence + let fragmentIndex = parseInt( + code.getAttribute(kFragmentIndex), + 10 + ); + fragmentIndex = + typeof fragmentIndex !== "number" || isNaN(fragmentIndex) + ? null + : fragmentIndex; + + let stepN = 1; + highlightSteps.slice(1).forEach( + // Generate fragments for all steps except the original block + (step) => { + var fragmentBlock = code.cloneNode(true); + fragmentBlock.setAttribute( + "data-code-line-numbers", + joinLineNumbers([step]) + ); + fragmentBlock.classList.add("fragment"); + + // Pandoc sets id on spans we need to keep unique + fragmentBlock + .querySelectorAll(":scope > span") + .forEach((span) => { + if (span.hasAttribute("id")) { + span.setAttribute( + "id", + span.getAttribute("id").concat("-" + stepN) + ); + } + }); + stepN = ++stepN; + + // Add duplicated element after existing one + code.parentNode.appendChild(fragmentBlock); + + // Each new element is highlighted based on the new attributes value + highlightCodeBlock(fragmentBlock); + + if (typeof fragmentIndex === "number") { + fragmentBlock.setAttribute(kFragmentIndex, fragmentIndex); + fragmentIndex += 1; + } else { + fragmentBlock.removeAttribute(kFragmentIndex); + } + + // Scroll highlights into view as we step through them + fragmentBlock.addEventListener( + "visible", + scrollHighlightedLineIntoView.bind( + this, + fragmentBlock, + scrollState + ) + ); + fragmentBlock.addEventListener( + "hidden", + scrollHighlightedLineIntoView.bind( + this, + fragmentBlock.previousSibling, + scrollState + ) + ); + } + ); + code.removeAttribute(kFragmentIndex); + code.setAttribute( + kCodeLineNumbersAttr, + joinLineNumbers([highlightSteps[0]]) + ); + } + + // Scroll the first highlight into view when the slide becomes visible. + const slide = + typeof code.closest === "function" + ? code.closest("section:not(.stack)") + : null; + if (slide) { + const scrollFirstHighlightIntoView = function () { + scrollHighlightedLineIntoView(code, scrollState, true); + slide.removeEventListener( + "visible", + scrollFirstHighlightIntoView + ); + }; + slide.addEventListener("visible", scrollFirstHighlightIntoView); + } + + highlightCodeBlock(code); + }); + } + } + }); + } + + function highlightCodeBlock(codeBlock) { + const highlightSteps = splitLineNumbers( + codeBlock.getAttribute(kCodeLineNumbersAttr) + ); + + if (highlightSteps.length) { + // If we have at least one step, we generate fragments + highlightSteps[0].forEach((highlight) => { + // Add expected class on
     for reveal CSS
    +        codeBlock.parentNode.classList.add("code-wrapper");
    +
    +        // Select lines to highlight
    +        spanToHighlight = [];
    +        if (typeof highlight.last === "number") {
    +          spanToHighlight = [].slice.call(
    +            codeBlock.querySelectorAll(
    +              ":scope > span:nth-child(n+" +
    +                highlight.first +
    +                "):nth-child(-n+" +
    +                highlight.last +
    +                ")"
    +            )
    +          );
    +        } else if (typeof highlight.first === "number") {
    +          spanToHighlight = [].slice.call(
    +            codeBlock.querySelectorAll(
    +              ":scope > span:nth-child(" + highlight.first + ")"
    +            )
    +          );
    +        }
    +        if (spanToHighlight.length) {
    +          // Add a class on  and  to select line to highlight
    +          spanToHighlight.forEach((span) =>
    +            span.classList.add("highlight-line")
    +          );
    +          codeBlock.classList.add("has-line-highlights");
    +        }
    +      });
    +    }
    +  }
    +
    +  /**
    +   * Animates scrolling to the first highlighted line
    +   * in the given code block.
    +   */
    +  function scrollHighlightedLineIntoView(block, scrollState, skipAnimation) {
    +    window.cancelAnimationFrame(scrollState.animationFrameID);
    +
    +    // Match the scroll position of the currently visible
    +    // code block
    +    if (scrollState.currentBlock) {
    +      block.scrollTop = scrollState.currentBlock.scrollTop;
    +    }
    +
    +    // Remember the current code block so that we can match
    +    // its scroll position when showing/hiding fragments
    +    scrollState.currentBlock = block;
    +
    +    const highlightBounds = getHighlightedLineBounds(block);
    +    let viewportHeight = block.offsetHeight;
    +
    +    // Subtract padding from the viewport height
    +    const blockStyles = window.getComputedStyle(block);
    +    viewportHeight -=
    +      parseInt(blockStyles.paddingTop) + parseInt(blockStyles.paddingBottom);
    +
    +    // Scroll position which centers all highlights
    +    const startTop = block.scrollTop;
    +    let targetTop =
    +      highlightBounds.top +
    +      (Math.min(highlightBounds.bottom - highlightBounds.top, viewportHeight) -
    +        viewportHeight) /
    +        2;
    +
    +    // Make sure the scroll target is within bounds
    +    targetTop = Math.max(
    +      Math.min(targetTop, block.scrollHeight - viewportHeight),
    +      0
    +    );
    +
    +    if (skipAnimation === true || startTop === targetTop) {
    +      block.scrollTop = targetTop;
    +    } else {
    +      // Don't attempt to scroll if there is no overflow
    +      if (block.scrollHeight <= viewportHeight) return;
    +
    +      let time = 0;
    +
    +      const animate = function () {
    +        time = Math.min(time + 0.02, 1);
    +
    +        // Update our eased scroll position
    +        block.scrollTop =
    +          startTop + (targetTop - startTop) * easeInOutQuart(time);
    +
    +        // Keep animating unless we've reached the end
    +        if (time < 1) {
    +          scrollState.animationFrameID = requestAnimationFrame(animate);
    +        }
    +      };
    +
    +      animate();
    +    }
    +  }
    +
    +  function getHighlightedLineBounds(block) {
    +    const highlightedLines = block.querySelectorAll(".highlight-line");
    +    if (highlightedLines.length === 0) {
    +      return { top: 0, bottom: 0 };
    +    } else {
    +      const firstHighlight = highlightedLines[0];
    +      const lastHighlight = highlightedLines[highlightedLines.length - 1];
    +
    +      return {
    +        top: firstHighlight.offsetTop,
    +        bottom: lastHighlight.offsetTop + lastHighlight.offsetHeight,
    +      };
    +    }
    +  }
    +
    +  /**
    +   * The easing function used when scrolling.
    +   */
    +  function easeInOutQuart(t) {
    +    // easeInOutQuart
    +    return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;
    +  }
    +
    +  function splitLineNumbers(lineNumbersAttr) {
    +    // remove space
    +    lineNumbersAttr = lineNumbersAttr.replace("/s/g", "");
    +    // seperate steps (for fragment)
    +    lineNumbersAttr = lineNumbersAttr.split(delimiters.step);
    +
    +    // for each step, calculate first and last line, if any
    +    return lineNumbersAttr.map((highlights) => {
    +      // detect lines
    +      const lines = highlights.split(delimiters.line);
    +      return lines.map((range) => {
    +        if (/^[\d-]+$/.test(range)) {
    +          range = range.split(delimiters.lineRange);
    +          const firstLine = parseInt(range[0], 10);
    +          const lastLine = range[1] ? parseInt(range[1], 10) : undefined;
    +          return {
    +            first: firstLine,
    +            last: lastLine,
    +          };
    +        } else {
    +          return {};
    +        }
    +      });
    +    });
    +  }
    +
    +  function joinLineNumbers(splittedLineNumbers) {
    +    return splittedLineNumbers
    +      .map(function (highlights) {
    +        return highlights
    +          .map(function (highlight) {
    +            // Line range
    +            if (typeof highlight.last === "number") {
    +              return highlight.first + delimiters.lineRange + highlight.last;
    +            }
    +            // Single line
    +            else if (typeof highlight.first === "number") {
    +              return highlight.first;
    +            }
    +            // All lines
    +            else {
    +              return "";
    +            }
    +          })
    +          .join(delimiters.line);
    +      })
    +      .join(delimiters.step);
    +  }
    +
    +  return {
    +    id: "quarto-line-highlight",
    +    init: function (deck) {
    +      initQuartoLineHighlight(deck);
    +
    +      // If we're printing to PDF, scroll the code highlights of
    +      // all blocks in the deck into view at once
    +      deck.on("pdf-ready", function () {
    +        [].slice
    +          .call(
    +            deck
    +              .getRevealElement()
    +              .querySelectorAll(
    +                "pre code[data-code-line-numbers].current-fragment"
    +              )
    +          )
    +          .forEach(function (block) {
    +            scrollHighlightedLineIntoView(block, {}, true);
    +          });
    +      });
    +    },
    +  };
    +};
    diff --git a/slides_files/libs/revealjs/plugin/quarto-line-highlight/plugin.yml b/slides_files/libs/revealjs/plugin/quarto-line-highlight/plugin.yml
    new file mode 100644
    index 000000000..ca2068621
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/quarto-line-highlight/plugin.yml
    @@ -0,0 +1,4 @@
    +# adapted from https://github.com/hakimel/reveal.js/tree/master/plugin/highlight
    +name: QuartoLineHighlight
    +script: line-highlight.js
    +stylesheet: line-highlight.css
    diff --git a/slides_files/libs/revealjs/plugin/quarto-support/footer.css b/slides_files/libs/revealjs/plugin/quarto-support/footer.css
    new file mode 100644
    index 000000000..390d5b38d
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/quarto-support/footer.css
    @@ -0,0 +1,110 @@
    +.reveal .slide-logo {
    +  display: block;
    +  position: fixed;
    +  bottom: 0;
    +  right: 12px;
    +  max-height: 2.2rem;
    +  height: 100%;
    +  width: auto;
    +  z-index: 2;
    +}
    +
    +.reveal .footer {
    +  display: block;
    +  position: fixed;
    +  bottom: 18px;
    +  width: 100%;
    +  margin: 0 auto;
    +  text-align: center;
    +  font-size: 18px;
    +  z-index: 2;
    +}
    +
    +.reveal .footer > * {
    +  margin-top: 0;
    +  margin-bottom: 0;
    +}
    +
    +.reveal .slide .footer {
    +  display: none;
    +}
    +
    +.reveal .slide-number {
    +  bottom: 10px;
    +  right: 10px;
    +  font-size: 16px;
    +  background-color: transparent;
    +}
    +
    +.reveal.has-logo .slide-number {
    +  bottom: initial;
    +  top: 8px;
    +  right: 8px;
    +}
    +
    +.reveal .slide-number .slide-number-delimiter {
    +  margin: 0;
    +}
    +
    +.reveal .slide-menu-button {
    +  left: 8px;
    +  bottom: 8px;
    +}
    +
    +.reveal .slide-chalkboard-buttons {
    +  position: fixed;
    +  left: 12px;
    +  bottom: 8px;
    +  z-index: 30;
    +  font-size: 24px;
    +}
    +
    +.reveal .slide-chalkboard-buttons.slide-menu-offset {
    +  left: 54px;
    +}
    +
    +.reveal .slide-chalkboard-buttons > span {
    +  margin-right: 14px;
    +  cursor: pointer;
    +}
    +
    +@media screen and (max-width: 800px) {
    +  .reveal .slide-logo {
    +    max-height: 1.1rem;
    +    bottom: -2px;
    +    right: 10px;
    +  }
    +  .reveal .footer {
    +    font-size: 14px;
    +    bottom: 12px;
    +  }
    +  .reveal .slide-number {
    +    font-size: 12px;
    +    bottom: 7px;
    +  }
    +  .reveal .slide-menu-button .fas::before {
    +    height: 1.3rem;
    +    width: 1.3rem;
    +    vertical-align: -0.125em;
    +    background-size: 1.3rem 1.3rem;
    +  }
    +
    +  .reveal .slide-chalkboard-buttons .fas::before {
    +    height: 0.95rem;
    +    width: 0.95rem;
    +    background-size: 0.95rem 0.95rem;
    +    vertical-align: -0em;
    +  }
    +
    +  .reveal .slide-chalkboard-buttons.slide-menu-offset {
    +    left: 36px;
    +  }
    +  .reveal .slide-chalkboard-buttons > span {
    +    margin-right: 9px;
    +  }
    +}
    +
    +html.print-pdf .reveal .slide-menu-button,
    +html.print-pdf .reveal .slide-chalkboard-buttons {
    +  display: none;
    +}
    diff --git a/slides_files/libs/revealjs/plugin/quarto-support/plugin.yml b/slides_files/libs/revealjs/plugin/quarto-support/plugin.yml
    new file mode 100644
    index 000000000..546956e94
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/quarto-support/plugin.yml
    @@ -0,0 +1,5 @@
    +name: QuartoSupport
    +script: support.js
    +stylesheet: footer.css
    +config:
    +  smaller: false
    diff --git a/slides_files/libs/revealjs/plugin/quarto-support/support.js b/slides_files/libs/revealjs/plugin/quarto-support/support.js
    new file mode 100644
    index 000000000..9adc92132
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/quarto-support/support.js
    @@ -0,0 +1,290 @@
    +// catch all plugin for various quarto features
    +window.QuartoSupport = function () {
    +  function isPrintView() {
    +    return /print-pdf/gi.test(window.location.search);
    +  }
    +
    +  // implement controlsAudo
    +  function controlsAuto(deck) {
    +    const config = deck.getConfig();
    +    if (config.controlsAuto === true) {
    +      const iframe = window.location !== window.parent.location;
    +      const localhost =
    +        window.location.hostname === "localhost" ||
    +        window.location.hostname === "127.0.0.1";
    +      deck.configure({
    +        controls:
    +          (iframe && !localhost) ||
    +          (deck.hasVerticalSlides() && config.navigationMode !== "linear"),
    +      });
    +    }
    +  }
    +
    +  // helper to provide event handlers for all links in a container
    +  function handleLinkClickEvents(deck, container) {
    +    Array.from(container.querySelectorAll("a")).forEach((el) => {
    +      const url = el.getAttribute("href");
    +      if (/^(http|www)/gi.test(url)) {
    +        el.addEventListener(
    +          "click",
    +          (ev) => {
    +            const fullscreen = !!window.document.fullscreen;
    +            const dataPreviewLink = el.getAttribute("data-preview-link");
    +
    +            // if there is a local specifcation then use that
    +            if (dataPreviewLink) {
    +              if (
    +                dataPreviewLink === "true" ||
    +                (dataPreviewLink === "auto" && fullscreen)
    +              ) {
    +                ev.preventDefault();
    +                deck.showPreview(url);
    +                return false;
    +              }
    +            } else {
    +              const previewLinks = !!deck.getConfig().previewLinks;
    +              const previewLinksAuto =
    +                deck.getConfig().previewLinksAuto === true;
    +              if (previewLinks == true || (previewLinksAuto && fullscreen)) {
    +                ev.preventDefault();
    +                deck.showPreview(url);
    +                return false;
    +              }
    +            }
    +
    +            // if the deck is in an iframe we want to open it externally
    +            // (don't do this when in vscode though as it has its own
    +            // handler for opening links externally that will be play)
    +            const iframe = window.location !== window.parent.location;
    +            if (
    +              iframe &&
    +              !window.location.search.includes("quartoPreviewReqId=")
    +            ) {
    +              ev.preventDefault();
    +              ev.stopImmediatePropagation();
    +              window.open(url, "_blank");
    +              return false;
    +            }
    +
    +            // if the user has set data-preview-link to "auto" we need to handle the event
    +            // (because reveal will interpret "auto" as true)
    +            if (dataPreviewLink === "auto") {
    +              ev.preventDefault();
    +              ev.stopImmediatePropagation();
    +              const target =
    +                el.getAttribute("target") ||
    +                (ev.ctrlKey || ev.metaKey ? "_blank" : "");
    +              if (target) {
    +                window.open(url, target);
    +              } else {
    +                window.location.href = url;
    +              }
    +              return false;
    +            }
    +          },
    +          false
    +        );
    +      }
    +    });
    +  }
    +
    +  // implement previewLinksAuto
    +  function previewLinksAuto(deck) {
    +    handleLinkClickEvents(deck, deck.getRevealElement());
    +  }
    +
    +  // apply styles
    +  function applyGlobalStyles(deck) {
    +    if (deck.getConfig()["smaller"] === true) {
    +      const revealParent = deck.getRevealElement();
    +      revealParent.classList.add("smaller");
    +    }
    +  }
    +
    +  // add logo image
    +  function addLogoImage(deck) {
    +    const revealParent = deck.getRevealElement();
    +    const logoImg = document.querySelector(".slide-logo");
    +    if (logoImg) {
    +      revealParent.appendChild(logoImg);
    +      revealParent.classList.add("has-logo");
    +    }
    +  }
    +
    +  // add footer text
    +  function addFooter(deck) {
    +    const revealParent = deck.getRevealElement();
    +    const defaultFooterDiv = document.querySelector(".footer-default");
    +    if (defaultFooterDiv) {
    +      revealParent.appendChild(defaultFooterDiv);
    +      handleLinkClickEvents(deck, defaultFooterDiv);
    +      if (!isPrintView()) {
    +        deck.on("slidechanged", function (ev) {
    +          const prevSlideFooter = document.querySelector(
    +            ".reveal > .footer:not(.footer-default)"
    +          );
    +          if (prevSlideFooter) {
    +            prevSlideFooter.remove();
    +          }
    +          const currentSlideFooter = ev.currentSlide.querySelector(".footer");
    +          if (currentSlideFooter) {
    +            defaultFooterDiv.style.display = "none";
    +            const slideFooter = currentSlideFooter.cloneNode(true);
    +            handleLinkClickEvents(deck, slideFooter);
    +            deck.getRevealElement().appendChild(slideFooter);
    +          } else {
    +            defaultFooterDiv.style.display = "block";
    +          }
    +        });
    +      }
    +    }
    +  }
    +
    +  // add chalkboard buttons
    +  function addChalkboardButtons(deck) {
    +    const chalkboard = deck.getPlugin("RevealChalkboard");
    +    if (chalkboard && !isPrintView()) {
    +      const revealParent = deck.getRevealElement();
    +      const chalkboardDiv = document.createElement("div");
    +      chalkboardDiv.classList.add("slide-chalkboard-buttons");
    +      if (document.querySelector(".slide-menu-button")) {
    +        chalkboardDiv.classList.add("slide-menu-offset");
    +      }
    +      // add buttons
    +      const buttons = [
    +        {
    +          icon: "easel2",
    +          title: "Toggle Chalkboard (b)",
    +          onclick: chalkboard.toggleChalkboard,
    +        },
    +        {
    +          icon: "brush",
    +          title: "Toggle Notes Canvas (c)",
    +          onclick: chalkboard.toggleNotesCanvas,
    +        },
    +      ];
    +      buttons.forEach(function (button) {
    +        const span = document.createElement("span");
    +        span.title = button.title;
    +        const icon = document.createElement("i");
    +        icon.classList.add("fas");
    +        icon.classList.add("fa-" + button.icon);
    +        span.appendChild(icon);
    +        span.onclick = function (event) {
    +          event.preventDefault();
    +          button.onclick();
    +        };
    +        chalkboardDiv.appendChild(span);
    +      });
    +      revealParent.appendChild(chalkboardDiv);
    +      const config = deck.getConfig();
    +      if (!config.chalkboard.buttons) {
    +        chalkboardDiv.classList.add("hidden");
    +      }
    +
    +      // show and hide chalkboard buttons on slidechange
    +      deck.on("slidechanged", function (ev) {
    +        const config = deck.getConfig();
    +        let buttons = !!config.chalkboard.buttons;
    +        const slideButtons = ev.currentSlide.getAttribute(
    +          "data-chalkboard-buttons"
    +        );
    +        if (slideButtons) {
    +          if (slideButtons === "true" || slideButtons === "1") {
    +            buttons = true;
    +          } else if (slideButtons === "false" || slideButtons === "0") {
    +            buttons = false;
    +          }
    +        }
    +        if (buttons) {
    +          chalkboardDiv.classList.remove("hidden");
    +        } else {
    +          chalkboardDiv.classList.add("hidden");
    +        }
    +      });
    +    }
    +  }
    +
    +  function handleTabbyClicks() {
    +    const tabs = document.querySelectorAll(".panel-tabset-tabby > li > a");
    +    for (let i = 0; i < tabs.length; i++) {
    +      const tab = tabs[i];
    +      tab.onclick = function (ev) {
    +        ev.preventDefault();
    +        ev.stopPropagation();
    +        return false;
    +      };
    +    }
    +  }
    +
    +  function fixupForPrint(deck) {
    +    if (isPrintView()) {
    +      const slides = deck.getSlides();
    +      slides.forEach(function (slide) {
    +        slide.removeAttribute("data-auto-animate");
    +      });
    +      window.document.querySelectorAll(".hljs").forEach(function (el) {
    +        el.classList.remove("hljs");
    +      });
    +      window.document.querySelectorAll(".hljs-ln-code").forEach(function (el) {
    +        el.classList.remove("hljs-ln-code");
    +      });
    +    }
    +  }
    +
    +  function handleSlideChanges(deck) {
    +    // dispatch for htmlwidgets
    +    const fireSlideEnter = () => {
    +      const event = window.document.createEvent("Event");
    +      event.initEvent("slideenter", true, true);
    +      window.document.dispatchEvent(event);
    +    };
    +
    +    const fireSlideChanged = (previousSlide, currentSlide) => {
    +      fireSlideEnter();
    +
    +      // dispatch for shiny
    +      if (window.jQuery) {
    +        if (previousSlide) {
    +          window.jQuery(previousSlide).trigger("hidden");
    +        }
    +        if (currentSlide) {
    +          window.jQuery(currentSlide).trigger("shown");
    +        }
    +      }
    +    };
    +
    +    // fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
    +    document.addEventListener("tabby", fireSlideEnter, false);
    +
    +    deck.on("slidechanged", function (event) {
    +      fireSlideChanged(event.previousSlide, event.currentSlide);
    +    });
    +  }
    +
    +  function workaroundMermaidDistance(deck) {
    +    if (window.document.querySelector("pre.mermaid-js")) {
    +      const slideCount = deck.getTotalSlides();
    +      deck.configure({
    +        mobileViewDistance: slideCount,
    +        viewDistance: slideCount,
    +      });
    +    }
    +  }
    +
    +  return {
    +    id: "quarto-support",
    +    init: function (deck) {
    +      controlsAuto(deck);
    +      previewLinksAuto(deck);
    +      fixupForPrint(deck);
    +      applyGlobalStyles(deck);
    +      addLogoImage(deck);
    +      addFooter(deck);
    +      addChalkboardButtons(deck);
    +      handleTabbyClicks();
    +      handleSlideChanges(deck);
    +      workaroundMermaidDistance(deck);
    +    },
    +  };
    +};
    diff --git a/slides_files/libs/revealjs/plugin/reveal-menu/menu.css b/slides_files/libs/revealjs/plugin/reveal-menu/menu.css
    new file mode 100644
    index 000000000..5a300fdf6
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/reveal-menu/menu.css
    @@ -0,0 +1,346 @@
    +.slide-menu-wrapper {
    +  font-family: 'Source Sans Pro', Helvetica, sans-serif;
    +}
    +
    +.slide-menu-wrapper .slide-menu {
    +  background-color: #333;
    +  z-index: 200;
    +  position: fixed;
    +  top: 0;
    +  width: 300px;
    +  height: 100%;
    +  /*overflow-y: scroll;*/
    +  transition: transform 0.3s;
    +  font-size: 16px;
    +  font-weight: normal;
    +}
    +
    +.slide-menu-wrapper .slide-menu.slide-menu--wide {
    +  width: 500px;
    +}
    +
    +.slide-menu-wrapper .slide-menu.slide-menu--third {
    +  width: 33%;
    +}
    +
    +.slide-menu-wrapper .slide-menu.slide-menu--half {
    +  width: 50%;
    +}
    +
    +.slide-menu-wrapper .slide-menu.slide-menu--full {
    +  width: 95%;
    +}
    +
    +/*
    + * Slides menu
    + */
    +
    +.slide-menu-wrapper .slide-menu-items {
    +  margin: 0;
    +  padding: 0;
    +  width: 100%;
    +  border-bottom: solid 1px #555;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item,
    +.slide-menu-wrapper .slide-menu-item-vertical {
    +  display: block;
    +  text-align: left;
    +  padding: 10px 18px;
    +  color: #aaa;
    +  cursor: pointer;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item-vertical {
    +  padding-left: 30px;
    +}
    +
    +.slide-menu-wrapper .slide-menu--wide .slide-menu-item-vertical,
    +.slide-menu-wrapper .slide-menu--third .slide-menu-item-vertical,
    +.slide-menu-wrapper .slide-menu--half .slide-menu-item-vertical,
    +.slide-menu-wrapper .slide-menu--full .slide-menu-item-vertical,
    +.slide-menu-wrapper .slide-menu--custom .slide-menu-item-vertical {
    +  padding-left: 50px;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item {
    +  border-top: solid 1px #555;
    +}
    +
    +.slide-menu-wrapper .active-menu-panel li.selected {
    +  background-color: #222;
    +  color: white;
    +}
    +
    +.slide-menu-wrapper .active-menu-panel li.active {
    +  color: #eee;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item.no-title .slide-menu-item-title,
    +.slide-menu-wrapper .slide-menu-item-vertical.no-title .slide-menu-item-title {
    +  font-style: italic;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item-number {
    +  color: #999;
    +  padding-right: 6px;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item i.far,
    +.slide-menu-wrapper .slide-menu-item i.fas,
    +.slide-menu-wrapper .slide-menu-item-vertical i.far,
    +.slide-menu-wrapper .slide-menu-item-vertical i.fas,
    +.slide-menu-wrapper .slide-menu-item svg.svg-inline--fa,
    +.slide-menu-wrapper .slide-menu-item-vertical svg.svg-inline--fa {
    +  padding-right: 12px;
    +  display: none;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item.past i.fas.past,
    +.slide-menu-wrapper .slide-menu-item-vertical.past i.fas.past,
    +.slide-menu-wrapper .slide-menu-item.active i.fas.active,
    +.slide-menu-wrapper .slide-menu-item-vertical.active i.fas.active,
    +.slide-menu-wrapper .slide-menu-item.future i.far.future,
    +.slide-menu-wrapper .slide-menu-item-vertical.future i.far.future,
    +.slide-menu-wrapper .slide-menu-item.past svg.svg-inline--fa.past,
    +.slide-menu-wrapper .slide-menu-item-vertical.past svg.svg-inline--fa.past,
    +.slide-menu-wrapper .slide-menu-item.active svg.svg-inline--fa.active,
    +.slide-menu-wrapper .slide-menu-item-vertical.active svg.svg-inline--fa.active,
    +.slide-menu-wrapper .slide-menu-item.future svg.svg-inline--fa.future,
    +.slide-menu-wrapper .slide-menu-item-vertical.future svg.svg-inline--fa.future {
    +  display: inline-block;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item.past i.fas.past,
    +.slide-menu-wrapper .slide-menu-item-vertical.past i.fas.past,
    +.slide-menu-wrapper .slide-menu-item.future i.far.future,
    +.slide-menu-wrapper .slide-menu-item-vertical.future i.far.future,
    +.slide-menu-wrapper .slide-menu-item.past svg.svg-inline--fa.past,
    +.slide-menu-wrapper .slide-menu-item-vertical.past svg.svg-inline--fa.past,
    +.slide-menu-wrapper .slide-menu-item.future svg.svg-inline--fa.future,
    +.slide-menu-wrapper .slide-menu-item-vertical.future svg.svg-inline--fa.future {
    +  opacity: 0.4;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item.active i.fas.active,
    +.slide-menu-wrapper .slide-menu-item-vertical.active i.fas.active,
    +.slide-menu-wrapper .slide-menu-item.active svg.svg-inline--fa.active,
    +.slide-menu-wrapper .slide-menu-item-vertical.active svg.svg-inline--fa.active {
    +  opacity: 0.8;
    +}
    +
    +.slide-menu-wrapper .slide-menu--left {
    +  left: 0;
    +  -webkit-transform: translateX(-100%);
    +  -ms-transform: translateX(-100%);
    +  transform: translateX(-100%);
    +}
    +
    +.slide-menu-wrapper .slide-menu--left.active {
    +  -webkit-transform: translateX(0);
    +  -ms-transform: translateX(0);
    +  transform: translateX(0);
    +}
    +
    +.slide-menu-wrapper .slide-menu--right {
    +  right: 0;
    +  -webkit-transform: translateX(100%);
    +  -ms-transform: translateX(100%);
    +  transform: translateX(100%);
    +}
    +
    +.slide-menu-wrapper .slide-menu--right.active {
    +  -webkit-transform: translateX(0);
    +  -ms-transform: translateX(0);
    +  transform: translateX(0);
    +}
    +
    +.slide-menu-wrapper {
    +  transition: transform 0.3s;
    +}
    +
    +/*
    + * Toolbar
    + */
    +.slide-menu-wrapper .slide-menu-toolbar {
    +  height: 60px;
    +  width: 100%;
    +  font-size: 12px;
    +  display: table;
    +  table-layout: fixed; /* ensures equal width */
    +  margin: 0;
    +  padding: 0;
    +  border-bottom: solid 2px #666;
    +}
    +
    +.slide-menu-wrapper .slide-menu-toolbar > li {
    +  display: table-cell;
    +  line-height: 150%;
    +  text-align: center;
    +  vertical-align: middle;
    +  cursor: pointer;
    +  color: #aaa;
    +  border-radius: 3px;
    +}
    +
    +.slide-menu-wrapper .slide-menu-toolbar > li.toolbar-panel-button i,
    +.slide-menu-wrapper
    +  .slide-menu-toolbar
    +  > li.toolbar-panel-button
    +  svg.svg-inline--fa {
    +  font-size: 1.7em;
    +}
    +
    +.slide-menu-wrapper .slide-menu-toolbar > li.active-toolbar-button {
    +  color: white;
    +  text-shadow: 0 1px black;
    +  text-decoration: underline;
    +}
    +
    +.slide-menu-toolbar > li.toolbar-panel-button:hover {
    +  color: white;
    +}
    +
    +.slide-menu-toolbar
    +  > li.toolbar-panel-button:hover
    +  span.slide-menu-toolbar-label,
    +.slide-menu-wrapper
    +  .slide-menu-toolbar
    +  > li.active-toolbar-button
    +  span.slide-menu-toolbar-label {
    +  visibility: visible;
    +}
    +
    +/*
    + * Panels
    + */
    +.slide-menu-wrapper .slide-menu-panel {
    +  position: absolute;
    +  width: 100%;
    +  visibility: hidden;
    +  height: calc(100% - 60px);
    +  overflow-x: hidden;
    +  overflow-y: auto;
    +  color: #aaa;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel.active-menu-panel {
    +  visibility: visible;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel h1,
    +.slide-menu-wrapper .slide-menu-panel h2,
    +.slide-menu-wrapper .slide-menu-panel h3,
    +.slide-menu-wrapper .slide-menu-panel h4,
    +.slide-menu-wrapper .slide-menu-panel h5,
    +.slide-menu-wrapper .slide-menu-panel h6 {
    +  margin: 20px 0 10px 0;
    +  color: #fff;
    +  line-height: 1.2;
    +  letter-spacing: normal;
    +  text-shadow: none;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel h1 {
    +  font-size: 1.6em;
    +}
    +.slide-menu-wrapper .slide-menu-panel h2 {
    +  font-size: 1.4em;
    +}
    +.slide-menu-wrapper .slide-menu-panel h3 {
    +  font-size: 1.3em;
    +}
    +.slide-menu-wrapper .slide-menu-panel h4 {
    +  font-size: 1.1em;
    +}
    +.slide-menu-wrapper .slide-menu-panel h5 {
    +  font-size: 1em;
    +}
    +.slide-menu-wrapper .slide-menu-panel h6 {
    +  font-size: 0.9em;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel p {
    +  margin: 10px 0 5px 0;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel a {
    +  color: #ccc;
    +  text-decoration: underline;
    +}
    +
    +.slide-menu-wrapper .slide-menu-panel a:hover {
    +  color: white;
    +}
    +
    +.slide-menu-wrapper .slide-menu-item a {
    +  text-decoration: none;
    +}
    +
    +.slide-menu-wrapper .slide-menu-custom-panel {
    +  width: calc(100% - 20px);
    +  padding-left: 10px;
    +  padding-right: 10px;
    +}
    +
    +.slide-menu-wrapper .slide-menu-custom-panel .slide-menu-items {
    +  width: calc(100% + 20px);
    +  margin-left: -10px;
    +  margin-right: 10px;
    +}
    +
    +/*
    + * Theme and Transitions buttons
    + */
    +
    +.slide-menu-wrapper div[data-panel='Themes'] li,
    +.slide-menu-wrapper div[data-panel='Transitions'] li {
    +  display: block;
    +  text-align: left;
    +  cursor: pointer;
    +  color: #848484;
    +}
    +
    +/*
    + * Menu controls
    + */
    +.reveal .slide-menu-button {
    +  position: fixed;
    +  left: 30px;
    +  bottom: 30px;
    +  z-index: 30;
    +  font-size: 24px;
    +}
    +
    +/*
    + * Menu overlay
    + */
    +
    +.slide-menu-wrapper .slide-menu-overlay {
    +  position: fixed;
    +  z-index: 199;
    +  top: 0;
    +  left: 0;
    +  overflow: hidden;
    +  width: 0;
    +  height: 0;
    +  background-color: #000;
    +  opacity: 0;
    +  transition: opacity 0.3s, width 0s 0.3s, height 0s 0.3s;
    +}
    +
    +.slide-menu-wrapper .slide-menu-overlay.active {
    +  width: 100%;
    +  height: 100%;
    +  opacity: 0.7;
    +  transition: opacity 0.3s;
    +}
    +
    +/*
    + * Hide menu for pdf printing
    + */
    +body.print-pdf .slide-menu-wrapper .slide-menu,
    +body.print-pdf .reveal .slide-menu-button,
    +body.print-pdf .slide-menu-wrapper .slide-menu-overlay {
    +  display: none;
    +}
    diff --git a/slides_files/libs/revealjs/plugin/reveal-menu/menu.js b/slides_files/libs/revealjs/plugin/reveal-menu/menu.js
    new file mode 100644
    index 000000000..5369df338
    --- /dev/null
    +++ b/slides_files/libs/revealjs/plugin/reveal-menu/menu.js
    @@ -0,0 +1 @@
    +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealMenu=t()}(this,(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},n.exports),n.exports}var n=function(e){return e&&e.Math==Math&&e},r=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,s=Object.getOwnPropertyDescriptor,l={f:s&&!o.call({1:2},1)?function(e){var t=s(this,e);return!!t&&t.enumerable}:o},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},u={}.toString,f=function(e){return u.call(e).slice(8,-1)},d="".split,p=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==f(e)?d.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},m=function(e){return p(h(e))},v=function(e){return"object"==typeof e?null!==e:"function"==typeof e},g=function(e,t){if(!v(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!v(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!v(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},y={}.hasOwnProperty,b=function(e,t){return y.call(e,t)},S=r.document,E=v(S)&&v(S.createElement),x=!a&&!i((function(){return 7!=Object.defineProperty((e="div",E?S.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),w=Object.getOwnPropertyDescriptor,L={f:a?w:function(e,t){if(e=m(e),t=g(t,!0),x)try{return w(e,t)}catch(e){}if(b(e,t))return c(!l.f.call(e,t),e[t])}},T=function(e){if(!v(e))throw TypeError(String(e)+" is not an object");return e},C=Object.defineProperty,O={f:a?C:function(e,t,n){if(T(e),t=g(t,!0),T(n),x)try{return C(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},A=a?function(e,t,n){return O.f(e,t,c(1,n))}:function(e,t,n){return e[t]=n,e},k=function(e,t){try{A(r,e,t)}catch(n){r[e]=t}return t},I=r["__core-js_shared__"]||k("__core-js_shared__",{}),P=Function.toString;"function"!=typeof I.inspectSource&&(I.inspectSource=function(e){return P.call(e)});var M,R,j,N,_=I.inspectSource,F=r.WeakMap,W="function"==typeof F&&/native code/.test(_(F)),H=t((function(e){(e.exports=function(e,t){return I[e]||(I[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),U=0,$=Math.random(),D=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++U+$).toString(36)},q=H("keys"),B={},G=r.WeakMap;if(W){var V=new G,K=V.get,z=V.has,X=V.set;M=function(e,t){return X.call(V,e,t),t},R=function(e){return K.call(V,e)||{}},j=function(e){return z.call(V,e)}}else{var Y=q[N="state"]||(q[N]=D(N));B[Y]=!0,M=function(e,t){return A(e,Y,t),t},R=function(e){return b(e,Y)?e[Y]:{}},j=function(e){return b(e,Y)}}var J={set:M,get:R,has:j,enforce:function(e){return j(e)?R(e):M(e,{})},getterFor:function(e){return function(t){var n;if(!v(t)||(n=R(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Z=t((function(e){var t=J.get,n=J.enforce,i=String(String).split("String");(e.exports=function(e,t,a,o){var s=!!o&&!!o.unsafe,l=!!o&&!!o.enumerable,c=!!o&&!!o.noTargetGet;"function"==typeof a&&("string"!=typeof t||b(a,"name")||A(a,"name",t),n(a).source=i.join("string"==typeof t?t:"")),e!==r?(s?!c&&e[t]&&(l=!0):delete e[t],l?e[t]=a:A(e,t,a)):l?e[t]=a:k(t,a)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||_(this)}))})),Q=r,ee=function(e){return"function"==typeof e?e:void 0},te=function(e,t){return arguments.length<2?ee(Q[e])||ee(r[e]):Q[e]&&Q[e][t]||r[e]&&r[e][t]},ne=Math.ceil,re=Math.floor,ie=function(e){return isNaN(e=+e)?0:(e>0?re:ne)(e)},ae=Math.min,oe=function(e){return e>0?ae(ie(e),9007199254740991):0},se=Math.max,le=Math.min,ce=function(e,t){var n=ie(e);return n<0?se(n+t,0):le(n,t)},ue=function(e){return function(t,n,r){var i,a=m(t),o=oe(a.length),s=ce(r,o);if(e&&n!=n){for(;o>s;)if((i=a[s++])!=i)return!0}else for(;o>s;s++)if((e||s in a)&&a[s]===n)return e||s||0;return!e&&-1}},fe={includes:ue(!0),indexOf:ue(!1)},de=fe.indexOf,pe=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),he={f:Object.getOwnPropertyNames||function(e){return function(e,t){var n,r=m(e),i=0,a=[];for(n in r)!b(B,n)&&b(r,n)&&a.push(n);for(;t.length>i;)b(r,n=t[i++])&&(~de(a,n)||a.push(n));return a}(e,pe)}},me={f:Object.getOwnPropertySymbols},ve=te("Reflect","ownKeys")||function(e){var t=he.f(T(e)),n=me.f;return n?t.concat(n(e)):t},ge=function(e,t){for(var n=ve(t),r=O.f,i=L.f,a=0;ay;y++)if((o||y in m)&&(d=v(f=m[y],y,h),e))if(t)S[y]=d;else if(d)switch(e){case 3:return!0;case 5:return f;case 6:return y;case 2:We.call(S,f)}else if(i)return!1;return a?-1:r||i?i:S}},Ue={forEach:He(0),map:He(1),filter:He(2),some:He(3),every:He(4),find:He(5),findIndex:He(6)},$e=function(e,t){var n=[][e];return!!n&&i((function(){n.call(null,t||function(){throw 1},1)}))},De=Object.defineProperty,qe={},Be=function(e){throw e},Ge=function(e,t){if(b(qe,e))return qe[e];t||(t={});var n=[][e],r=!!b(t,"ACCESSORS")&&t.ACCESSORS,o=b(t,0)?t[0]:Be,s=b(t,1)?t[1]:void 0;return qe[e]=!!n&&!i((function(){if(r&&!a)return!0;var e={length:-1};r?De(e,1,{enumerable:!0,get:Be}):e[1]=1,n.call(e,o,s)}))},Ve=Ue.every,Ke=$e("every"),ze=Ge("every");Ce({target:"Array",proto:!0,forced:!Ke||!ze},{every:function(e){return Ve(this,e,arguments.length>1?arguments[1]:void 0)}});var Xe,Ye,Je=te("navigator","userAgent")||"",Ze=r.process,Qe=Ze&&Ze.versions,et=Qe&&Qe.v8;et?Ye=(Xe=et.split("."))[0]+Xe[1]:Je&&(!(Xe=Je.match(/Edge\/(\d+)/))||Xe[1]>=74)&&(Xe=Je.match(/Chrome\/(\d+)/))&&(Ye=Xe[1]);var tt=Ye&&+Ye,nt=Ne("species"),rt=function(e){return tt>=51||!i((function(){var t=[];return(t.constructor={})[nt]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},it=Ue.filter,at=rt("filter"),ot=Ge("filter");Ce({target:"Array",proto:!0,forced:!at||!ot},{filter:function(e){return it(this,e,arguments.length>1?arguments[1]:void 0)}});var st=Ue.forEach,lt=$e("forEach"),ct=Ge("forEach"),ut=lt&&ct?[].forEach:function(e){return st(this,e,arguments.length>1?arguments[1]:void 0)};Ce({target:"Array",proto:!0,forced:[].forEach!=ut},{forEach:ut});var ft=fe.indexOf,dt=[].indexOf,pt=!!dt&&1/[1].indexOf(1,-0)<0,ht=$e("indexOf"),mt=Ge("indexOf",{ACCESSORS:!0,1:0});Ce({target:"Array",proto:!0,forced:pt||!ht||!mt},{indexOf:function(e){return pt?dt.apply(this,arguments)||0:ft(this,e,arguments.length>1?arguments[1]:void 0)}}),Ce({target:"Array",stat:!0},{isArray:ke});var vt=[].join,gt=p!=Object,yt=$e("join",",");Ce({target:"Array",proto:!0,forced:gt||!yt},{join:function(e){return vt.call(m(this),void 0===e?",":e)}});var bt=Math.min,St=[].lastIndexOf,Et=!!St&&1/[1].lastIndexOf(1,-0)<0,xt=$e("lastIndexOf"),wt=Ge("indexOf",{ACCESSORS:!0,1:0}),Lt=Et||!xt||!wt?function(e){if(Et)return St.apply(this,arguments)||0;var t=m(this),n=oe(t.length),r=n-1;for(arguments.length>1&&(r=bt(r,ie(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:St;Ce({target:"Array",proto:!0,forced:Lt!==[].lastIndexOf},{lastIndexOf:Lt});var Tt=Ue.map,Ct=rt("map"),Ot=Ge("map");Ce({target:"Array",proto:!0,forced:!Ct||!Ot},{map:function(e){return Tt(this,e,arguments.length>1?arguments[1]:void 0)}});var At=function(e,t,n){var r=g(t);r in e?O.f(e,r,c(0,n)):e[r]=n},kt=rt("slice"),It=Ge("slice",{ACCESSORS:!0,0:0,1:2}),Pt=Ne("species"),Mt=[].slice,Rt=Math.max;Ce({target:"Array",proto:!0,forced:!kt||!It},{slice:function(e,t){var n,r,i,a=m(this),o=oe(a.length),s=ce(e,o),l=ce(void 0===t?o:t,o);if(ke(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!ke(n.prototype)?v(n)&&null===(n=n[Pt])&&(n=void 0):n=void 0,n===Array||void 0===n))return Mt.call(a,s,l);for(r=new(void 0===n?Array:n)(Rt(l-s,0)),i=0;s>>0||(Qt.test(n)?16:10))}:Zt;Ce({global:!0,forced:parseInt!=en},{parseInt:en});var tn=function(){var e=T(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t};function nn(e,t){return RegExp(e,t)}var rn,an,on={UNSUPPORTED_Y:i((function(){var e=nn("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),BROKEN_CARET:i((function(){var e=nn("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},sn=RegExp.prototype.exec,ln=String.prototype.replace,cn=sn,un=(rn=/a/,an=/b*/g,sn.call(rn,"a"),sn.call(an,"a"),0!==rn.lastIndex||0!==an.lastIndex),fn=on.UNSUPPORTED_Y||on.BROKEN_CARET,dn=void 0!==/()??/.exec("")[1];(un||dn||fn)&&(cn=function(e){var t,n,r,i,a=this,o=fn&&a.sticky,s=tn.call(a),l=a.source,c=0,u=e;return o&&(-1===(s=s.replace("y","")).indexOf("g")&&(s+="g"),u=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(l="(?: "+l+")",u=" "+u,c++),n=new RegExp("^(?:"+l+")",s)),dn&&(n=new RegExp("^"+l+"$(?!\\s)",s)),un&&(t=a.lastIndex),r=sn.call(o?n:a,u),o?r?(r.input=r.input.slice(c),r[0]=r[0].slice(c),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:un&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),dn&&r&&r.length>1&&ln.call(r[0],n,(function(){for(i=1;i1?arguments[1]:void 0,r=oe(t.length),i=void 0===n?r:xn(oe(n),r),a=String(e);return En?En.call(t,a,i):t.slice(i-a.length,i)===a}});var Ln=Ne("species"),Tn=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),Cn="$0"==="a".replace(/./,"$0"),On=Ne("replace"),An=!!/./[On]&&""===/./[On]("a","$0"),kn=!i((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),In=function(e,t,n,r){var a=Ne(e),o=!i((function(){var t={};return t[a]=function(){return 7},7!=""[e](t)})),s=o&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[Ln]=function(){return n},n.flags="",n[a]=/./[a]),n.exec=function(){return t=!0,null},n[a](""),!t}));if(!o||!s||"replace"===e&&(!Tn||!Cn||An)||"split"===e&&!kn){var l=/./[a],c=n(a,""[e],(function(e,t,n,r,i){return t.exec===pn?o&&!i?{done:!0,value:l.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Cn,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:An}),u=c[0],f=c[1];Z(String.prototype,e,u),Z(RegExp.prototype,a,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&A(RegExp.prototype[a],"sham",!0)},Pn=function(e){return function(t,n){var r,i,a=String(h(t)),o=ie(n),s=a.length;return o<0||o>=s?e?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===s||(i=a.charCodeAt(o+1))<56320||i>57343?e?a.charAt(o):r:e?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Mn={codeAt:Pn(!1),charAt:Pn(!0)}.charAt,Rn=function(e,t,n){return t+(n?Mn(e,t).length:1)},jn=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==f(e))throw TypeError("RegExp#exec called on incompatible receiver");return pn.call(e,t)},Nn=Math.max,_n=Math.min,Fn=Math.floor,Wn=/\$([$&'`]|\d\d?|<[^>]*>)/g,Hn=/\$([$&'`]|\d\d?)/g;In("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=h(this),a=null==n?void 0:n[e];return void 0!==a?a.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var l=n(t,e,this,r);if(l.done)return l.value}var c=T(e),u=String(this),f="function"==typeof r;f||(r=String(r));var d=c.global;if(d){var p=c.unicode;c.lastIndex=0}for(var h=[];;){var m=jn(c,u);if(null===m)break;if(h.push(m),!d)break;""===String(m[0])&&(c.lastIndex=Rn(u,oe(c.lastIndex),p))}for(var v,g="",y=0,b=0;b=y&&(g+=u.slice(y,E)+O,y=E+S.length)}return g+u.slice(y)}];function s(e,n,r,i,a,o){var s=r+e.length,l=i.length,c=Hn;return void 0!==a&&(a=Ae(a),c=Wn),t.call(o,c,(function(t,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(s);case"<":c=a[o.slice(1,-1)];break;default:var u=+o;if(0===u)return t;if(u>l){var f=Fn(u/10);return 0===f?t:f<=l?void 0===i[f-1]?o.charAt(1):i[f-1]+o.charAt(1):t}c=i[u-1]}return void 0===c?"":c}))}}));var Un=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};In("search",1,(function(e,t,n){return[function(t){var n=h(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=T(e),a=String(this),o=i.lastIndex;Un(o,0)||(i.lastIndex=0);var s=jn(i,a);return Un(i.lastIndex,o)||(i.lastIndex=o),null===s?-1:s.index}]}));var $n=Ne("species"),Dn=[].push,qn=Math.min,Bn=!i((function(){return!RegExp(4294967295,"y")}));In("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(h(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!vn(e))return t.call(r,e,i);for(var a,o,s,l=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),u=0,f=new RegExp(e.source,c+"g");(a=pn.call(f,r))&&!((o=f.lastIndex)>u&&(l.push(r.slice(u,a.index)),a.length>1&&a.index=i));)f.lastIndex===a.index&&f.lastIndex++;return u===r.length?!s&&f.test("")||l.push(""):l.push(r.slice(u)),l.length>i?l.slice(0,i):l}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var i=h(this),a=null==t?void 0:t[e];return void 0!==a?a.call(t,i,n):r.call(String(i),t,n)},function(e,i){var a=n(r,e,this,i,r!==t);if(a.done)return a.value;var o=T(e),s=String(this),l=function(e,t){var n,r=T(e).constructor;return void 0===r||null==(n=T(r)[$n])?t:Oe(n)}(o,RegExp),c=o.unicode,u=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(Bn?"y":"g"),f=new l(Bn?o:"^(?:"+o.source+")",u),d=void 0===i?4294967295:i>>>0;if(0===d)return[];if(0===s.length)return null===jn(f,s)?[s]:[];for(var p=0,h=0,m=[];h1?arguments[1]:void 0,t.length)),r=String(e);return Vn?Vn.call(t,r,n):t.slice(n,n+r.length)===r}});var Xn,Yn=Kt.trim;Ce({target:"String",proto:!0,forced:(Xn="trim",i((function(){return!!Dt[Xn]()||"​…᠎"!="​…᠎"[Xn]()||Dt[Xn].name!==Xn})))},{trim:function(){return Yn(this)}});for(var Jn in{CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}){var Zn=r[Jn],Qn=Zn&&Zn.prototype;if(Qn&&Qn.forEach!==ut)try{A(Qn,"forEach",ut)}catch(e){Qn.forEach=ut}}var er=[].slice,tr=function(e){return function(t,n){var r=arguments.length>2,i=r?er.call(arguments,2):void 0;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,i)}:t,n)}};Ce({global:!0,bind:!0,forced:/MSIE .\./.test(Je)},{setTimeout:tr(r.setTimeout),setInterval:tr(r.setInterval)});return String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(t||0,e.length)===e}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(void 0===t||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e}),function(){var e,t,n,r,i=(e=/(msie) ([\w.]+)/.exec(window.navigator.userAgent.toLowerCase()))&&"msie"===e[1]?parseFloat(e[2]):null,a=!1;function o(e){(r=e.menu||{}).path=r.path||function(){var e;if(document.querySelector('script[src$="menu.js"]')){var t=document.querySelector('script[src$="menu.js"]');t&&(e=t.src.slice(0,-7))}else e=("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("menu.js",document.baseURI).href).slice(0,("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("menu.js",document.baseURI).href).lastIndexOf("/")+1);return e}()||"plugin/menu/",r.path.endsWith("/")||(r.path+="/"),void 0===r.side&&(r.side="left"),void 0===r.numbers&&(r.numbers=!1),"string"!=typeof r.titleSelector&&(r.titleSelector="h1, h2, h3, h4, h5"),void 0===r.hideMissingTitles&&(r.hideMissingTitles=!1),void 0===r.useTextContentForMissingTitles&&(r.useTextContentForMissingTitles=!1),void 0===r.markers&&(r.markers=!0),"string"!=typeof r.themesPath&&(r.themesPath="dist/theme/"),r.themesPath.endsWith("/")||(r.themesPath+="/"),O("link#theme")||(r.themes=!1),!0===r.themes?r.themes=[{name:"Black",theme:r.themesPath+"black.css"},{name:"White",theme:r.themesPath+"white.css"},{name:"League",theme:r.themesPath+"league.css"},{name:"Sky",theme:r.themesPath+"sky.css"},{name:"Beige",theme:r.themesPath+"beige.css"},{name:"Simple",theme:r.themesPath+"simple.css"},{name:"Serif",theme:r.themesPath+"serif.css"},{name:"Blood",theme:r.themesPath+"blood.css"},{name:"Night",theme:r.themesPath+"night.css"},{name:"Moon",theme:r.themesPath+"moon.css"},{name:"Solarized",theme:r.themesPath+"solarized.css"}]:Array.isArray(r.themes)||(r.themes=!1),void 0===r.transitions&&(r.transitions=!1),!0===r.transitions?r.transitions=["None","Fade","Slide","Convex","Concave","Zoom"]:!1===r.transitions||Array.isArray(r.transitions)&&r.transitions.every((function(e){return"string"==typeof e}))||(console.error("reveal.js-menu error: transitions config value must be 'true' or an array of strings, eg ['None', 'Fade', 'Slide')"),r.transitions=!1),i&&i<=9&&(r.transitions=!1),void 0===r.openButton&&(r.openButton=!0),void 0===r.openSlideNumber&&(r.openSlideNumber=!1),void 0===r.keyboard&&(r.keyboard=!0),void 0===r.sticky&&(r.sticky=!1),void 0===r.autoOpen&&(r.autoOpen=!0),void 0===r.delayInit&&(r.delayInit=!1),void 0===r.openOnInit&&(r.openOnInit=!1)}var s=!0;function l(){s=!1}function c(){O("nav.slide-menu").addEventListener("mousemove",(function e(t){O("nav.slide-menu").removeEventListener("mousemove",e),s=!0}))}function u(e){var t=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-e.scrollLeft,n+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{top:n,left:t}}(e).top-e.offsetParent.offsetTop;if(t<0)return-t;var n=e.offsetParent.offsetHeight-(e.offsetTop-e.offsetParent.scrollTop+e.offsetHeight);return n<0?n:0}function f(e){var t=u(e);t&&(l(),e.scrollIntoView(t>0),c())}function d(e){l(),e.offsetParent.scrollTop=e.offsetTop,c()}function p(e){l(),e.offsetParent.scrollTop=e.offsetTop-e.offsetParent.offsetHeight+e.offsetHeight,c()}function h(e){e.classList.add("selected"),f(e),r.sticky&&r.autoOpen&&E(e)}function m(e){if(b())switch(e.stopImmediatePropagation(),e.keyCode){case 72:case 37:!function(){var e=parseInt(O(".active-toolbar-button").getAttribute("data-button"))-1;e<0&&(e=T-1);S(null,O('.toolbar-panel-button[data-button="'+e+'"]').getAttribute("data-panel"))}();break;case 76:case 39:l=(parseInt(O(".active-toolbar-button").getAttribute("data-button"))+1)%T,S(null,O('.toolbar-panel-button[data-button="'+l+'"]').getAttribute("data-panel"));break;case 75:case 38:if(s=O(".active-menu-panel .slide-menu-items li.selected")||O(".active-menu-panel .slide-menu-items li.active"))A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(O('.active-menu-panel .slide-menu-items li[data-item="'+(parseInt(s.getAttribute("data-item"))-1)+'"]')||s);else(o=O(".active-menu-panel .slide-menu-items li.slide-menu-item"))&&h(o);break;case 74:case 40:if(s=O(".active-menu-panel .slide-menu-items li.selected")||O(".active-menu-panel .slide-menu-items li.active"))A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(O('.active-menu-panel .slide-menu-items li[data-item="'+(parseInt(s.getAttribute("data-item"))+1)+'"]')||s);else(o=O(".active-menu-panel .slide-menu-items li.slide-menu-item"))&&h(o);break;case 33:case 85:var t=A(".active-menu-panel .slide-menu-items li").filter((function(e){return u(e)>0})),n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})),r=t.length>0&&Math.abs(u(t[t.length-1]))0&&(p(r),r=(n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})))[0]==r?t[t.length-1]:n[0]),A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(r),d(r));break;case 34:case 68:n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)}));var i=A(".active-menu-panel .slide-menu-items li").filter((function(e){return u(e)<0})),a=i.length>0&&Math.abs(u(i[0]))0&&(d(a),a=(n=A(".active-menu-panel .slide-menu-items li").filter((function(e){return 0==u(e)})))[n.length-1]==a?i[0]:n[n.length-1]),A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),h(a),p(a));break;case 36:A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),(o=O(".active-menu-panel .slide-menu-items li:first-of-type"))&&(o.classList.add("selected"),f(o));break;case 35:var o;A(".active-menu-panel .slide-menu-items li").forEach((function(e){e.classList.remove("selected")})),(o=O(".active-menu-panel .slide-menu-items:last-of-type li:last-of-type"))&&(o.classList.add("selected"),f(o));break;case 32:case 13:var s;(s=O(".active-menu-panel .slide-menu-items li.selected"))&&E(s,!0);break;case 27:g(null,!0)}var l}function v(e){(e&&e.preventDefault(),b())||(O("body").classList.add("slide-menu-active"),O(".reveal").classList.add("has-"+r.effect+"-"+r.side),O(".slide-menu").classList.add("active"),O(".slide-menu-overlay").classList.add("active"),r.themes&&(A('div[data-panel="Themes"] li').forEach((function(e){e.classList.remove("active")})),A('li[data-theme="'+O("link#theme").getAttribute("href")+'"]').forEach((function(e){e.classList.add("active")}))),r.transitions&&(A('div[data-panel="Transitions"] li').forEach((function(e){e.classList.remove("active")})),A('li[data-transition="'+n.transition+'"]').forEach((function(e){e.classList.add("active")}))),A(".slide-menu-panel li.active").forEach((function(e){e.classList.add("selected"),f(e)})))}function g(e,t){e&&e.preventDefault(),r.sticky&&!t||(O("body").classList.remove("slide-menu-active"),O(".reveal").classList.remove("has-"+r.effect+"-"+r.side),O(".slide-menu").classList.remove("active"),O(".slide-menu-overlay").classList.remove("active"),A(".slide-menu-panel li.selected").forEach((function(e){e.classList.remove("selected")})))}function y(e){b()?g(e,!0):v(e)}function b(){return O("body").classList.contains("slide-menu-active")}function S(e,t){v(e);var n=t;"string"!=typeof t&&(n=e.currentTarget.getAttribute("data-panel")),O(".slide-menu-toolbar > li.active-toolbar-button").classList.remove("active-toolbar-button"),O('li[data-panel="'+n+'"]').classList.add("active-toolbar-button"),O(".slide-menu-panel.active-menu-panel").classList.remove("active-menu-panel"),O('div[data-panel="'+n+'"]').classList.add("active-menu-panel")}function E(e,n){var i=parseInt(e.getAttribute("data-slide-h")),a=parseInt(e.getAttribute("data-slide-v")),o=e.getAttribute("data-theme"),s=e.getAttribute("data-highlight-theme"),l=e.getAttribute("data-transition");isNaN(i)||isNaN(a)||t.slide(i,a),o&&I("theme",o),s&&I("highlight-theme",s),l&&t.configure({transition:l});var c=O("a",e);c&&(n||!r.sticky||r.autoOpen&&c.href.startsWith("#")||c.href.startsWith(window.location.origin+window.location.pathname+"#"))&&c.click(),g()}function x(e){"A"!==e.target.nodeName&&e.preventDefault(),E(e.currentTarget)}function w(){var e=t.getState();A("li.slide-menu-item, li.slide-menu-item-vertical").forEach((function(t){t.classList.remove("past"),t.classList.remove("active"),t.classList.remove("future");var n=parseInt(t.getAttribute("data-slide-h")),r=parseInt(t.getAttribute("data-slide-v"));n",s.appendChild(k("br"),O("i",s)),s.appendChild(k("span",{class:"slide-menu-toolbar-label"},e),O("i",s)),s.onclick=i,d.appendChild(s),s},i=function(e,i,a,o,s){function l(e,t){if(""===e)return null;var n=t?O(e,i):O(e);return n?n.textContent:null}var c=i.getAttribute("data-menu-title")||l(".menu-title",i)||l(r.titleSelector,i);if(!c&&r.useTextContentForMissingTitles&&(c=i.textContent.trim())&&(c=c.split("\n").map((function(e){return e.trim()})).join(" ").trim().replace(/^(.{16}[^\s]*).*/,"$1").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")+"..."),!c){if(r.hideMissingTitles)return"";e+=" no-title",c="Slide "+(a+1)}var u=k("li",{class:e,"data-item":a,"data-slide-h":o,"data-slide-v":void 0===s?0:s});if(r.markers&&(u.appendChild(k("i",{class:"fas fa-check-circle fa-fw past"})),u.appendChild(k("i",{class:"fas fa-arrow-alt-circle-right fa-fw active"})),u.appendChild(k("i",{class:"far fa-circle fa-fw future"}))),r.numbers){var f=[],d="h.v";switch("string"==typeof r.numbers?d=r.numbers:"string"==typeof n.slideNumber&&(d=n.slideNumber),d){case"c":f.push(a+1);break;case"c/t":f.push(a+1,"/",t.getTotalSlides());break;case"h/v":f.push(o+1),"number"!=typeof s||isNaN(s)||f.push("/",s+1);break;default:f.push(o+1),"number"!=typeof s||isNaN(s)||f.push(".",s+1)}u.appendChild(k("span",{class:"slide-menu-item-number"},f.join("")+". "))}return u.appendChild(k("span",{class:"slide-menu-item-title"},c)),u},o=function(e){s&&(A(".active-menu-panel .slide-menu-items li.selected").forEach((function(e){e.classList.remove("selected")})),e.currentTarget.classList.add("selected"))},l=O(".reveal").parentElement,c=k("div",{class:"slide-menu-wrapper"});l.appendChild(c);var u=k("nav",{class:"slide-menu slide-menu--"+r.side});"string"==typeof r.width&&(-1!=["normal","wide","third","half","full"].indexOf(r.width)?u.classList.add("slide-menu--"+r.width):(u.classList.add("slide-menu--custom"),u.style.width=r.width)),c.appendChild(u),L();var f=k("div",{class:"slide-menu-overlay"});c.appendChild(f),f.onclick=function(){g(null,!0)};var d=k("ol",{class:"slide-menu-toolbar"});O(".slide-menu").appendChild(d),e("Slides","Slides","fa-images","fas",S,!0),r.custom&&r.custom.forEach((function(t,n,r){e(t.title,"Custom"+n,t.icon,null,S)})),r.themes&&e("Themes","Themes","fa-adjust","fas",S),r.transitions&&e("Transitions","Transitions","fa-sticky-note","fas",S);var p=k("li",{id:"close",class:"toolbar-panel-button"});if(p.appendChild(k("i",{class:"fas fa-times"})),p.appendChild(k("br")),p.appendChild(k("span",{class:"slide-menu-toolbar-label"},"Close")),p.onclick=function(){g(null,!0)},d.appendChild(p),function e(){if(document.querySelector("section[data-markdown]:not([data-markdown-parsed])"))setTimeout(e,100);else{var t=k("div",{"data-panel":"Slides",class:"slide-menu-panel active-menu-panel"});t.appendChild(k("ul",{class:"slide-menu-items"})),u.appendChild(t);var n=O('.slide-menu-panel[data-panel="Slides"] > .slide-menu-items'),r=0;A(".slides > section").forEach((function(e,t){var a=A("section",e);if(a.length>0)a.forEach((function(e,a){var o=i(0===a?"slide-menu-item":"slide-menu-item-vertical",e,r,t,a);o&&n.appendChild(o),r++}));else{var o=i("slide-menu-item",e,r,t);o&&n.appendChild(o),r++}})),A(".slide-menu-item, .slide-menu-item-vertical").forEach((function(e){e.onclick=x})),w()}}(),t.addEventListener("slidechanged",w),r.custom){var h=function(){this.status>=200&&this.status<300?(this.panel.innerHTML=this.responseText,C(this.panel)):I(this)},E=function(){I(this)},C=function(e){A("ul.slide-menu-items li.slide-menu-item",e).forEach((function(e,t){e.setAttribute("data-item",t+1),e.onclick=x,e.addEventListener("mouseenter",o)}))},I=function(e){var t="

    ERROR: The attempt to fetch "+e.responseURL+" failed with HTTP status "+e.status+" ("+e.statusText+").

    Remember that you need to serve the presentation HTML from a HTTP server.

    ";e.panel.innerHTML=t};r.custom.forEach((function(e,t,n){var r=k("div",{"data-panel":"Custom"+t,class:"slide-menu-panel slide-menu-custom-panel"});e.content?(r.innerHTML=e.content,C(r)):e.src&&function(e,t){var n=new XMLHttpRequest;n.panel=e,n.arguments=Array.prototype.slice.call(arguments,2),n.onload=h,n.onerror=E,n.open("get",t,!0),n.send(null)}(r,e.src),u.appendChild(r)}))}if(r.themes){var P=k("div",{class:"slide-menu-panel","data-panel":"Themes"});u.appendChild(P);var M=k("ul",{class:"slide-menu-items"});P.appendChild(M),r.themes.forEach((function(e,t){var n={class:"slide-menu-item","data-item":""+(t+1)};e.theme&&(n["data-theme"]=e.theme),e.highlightTheme&&(n["data-highlight-theme"]=e.highlightTheme);var r=k("li",n,e.name);M.appendChild(r),r.onclick=x}))}if(r.transitions){P=k("div",{class:"slide-menu-panel","data-panel":"Transitions"});u.appendChild(P);M=k("ul",{class:"slide-menu-items"});P.appendChild(M),r.transitions.forEach((function(e,t){var n=k("li",{class:"slide-menu-item","data-transition":e.toLowerCase(),"data-item":""+(t+1)},e);M.appendChild(n),n.onclick=x}))}if(r.openButton){var R=k("div",{class:"slide-menu-button"}),j=k("a",{href:"#"});j.appendChild(k("i",{class:"fas fa-bars"})),R.appendChild(j),O(".reveal").appendChild(R),R.onclick=v}if(r.openSlideNumber)O("div.slide-number").onclick=v;A(".slide-menu-panel .slide-menu-items li").forEach((function(e){e.addEventListener("mouseenter",o)}))}if(r.keyboard){if(document.addEventListener("keydown",m,!1),window.addEventListener("message",(function(e){var t;try{t=JSON.parse(e.data)}catch(e){}t&&"triggerKey"===t.method&&m({keyCode:t.args[0],stopImmediatePropagation:function(){}})})),n.keyboardCondition&&"function"==typeof n.keyboardCondition){var N=n.keyboardCondition;n.keyboardCondition=function(e){return N(e)&&(!b()||77==e.keyCode)}}else n.keyboardCondition=function(e){return!b()||77==e.keyCode};t.addKeyBinding({keyCode:77,key:"M",description:"Toggle menu"},y)}r.openOnInit&&v(),a=!0}function O(e,t){return t||(t=document),t.querySelector(e)}function A(e,t){return t||(t=document),Array.prototype.slice.call(t.querySelectorAll(e))}function k(e,t,n){var r=document.createElement(e);return t&&Object.getOwnPropertyNames(t).forEach((function(e){r.setAttribute(e,t[e])})),n&&(r.innerHTML=n),r}function I(e,t){var n=O("link#"+e),r=n.parentElement,i=n.nextElementSibling;n.remove();var a=n.cloneNode();a.setAttribute("href",t),a.onload=function(){L()},r.insertBefore(a,i)}function P(e,t,n){n.call()}function M(){var e,a,o,s=!i||i>=9;t.isSpeakerNotes()&&window.location.search.endsWith("controls=false")&&(s=!1),s&&(r.delayInit||C(),e="menu-ready",(o=document.createEvent("HTMLEvents",1,2)).initEvent(e,!0,!0),function(e,t){for(var n in t)e[n]=t[n]}(o,a),document.querySelector(".reveal").dispatchEvent(o),n.postMessageEvents&&window.parent!==window.self&&window.parent.postMessage(JSON.stringify({namespace:"reveal",eventName:e,state:t.getState()}),"*"))}return{id:"menu",init:function(e){o(n=(t=e).getConfig()),P(r.path+"menu.css","stylesheet",(function(){void 0===r.loadIcons||r.loadIcons?P(r.path+"font-awesome/css/all.css","stylesheet",M):M()}))},toggle:y,openMenu:v,closeMenu:g,openPanel:S,isOpen:b,initialiseMenu:C,isMenuInitialised:function(){return a}}}})); diff --git a/slides_files/libs/revealjs/plugin/reveal-menu/plugin.yml b/slides_files/libs/revealjs/plugin/reveal-menu/plugin.yml new file mode 100644 index 000000000..3f4b90aa2 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/reveal-menu/plugin.yml @@ -0,0 +1,9 @@ +name: RevealMenu +script: [menu.js, quarto-menu.js] +stylesheet: [menu.css, quarto-menu.css] +config: + menu: + side: "left" + useTextContentForMissingTitles: true + markers: false + loadIcons: false diff --git a/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.css b/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.css new file mode 100644 index 000000000..eec145c05 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.css @@ -0,0 +1,68 @@ +.slide-menu-wrapper .slide-tool-item { + display: block; + text-align: left; + padding: 10px 18px; + color: #aaa; + cursor: pointer; + border-top: solid 1px #555; +} + +.slide-menu-wrapper .slide-tool-item a { + text-decoration: none; +} + +.slide-menu-wrapper .slide-tool-item kbd { + font-family: monospace; + margin-right: 10px; + padding: 3px 8px; + color: inherit; + border: 1px solid; + border-radius: 5px; + border-color: #555; +} + +.slide-menu-wrapper .slide-menu-toolbar > li.active-toolbar-button { + text-decoration: none; +} + +.reveal .slide-menu-button { + left: 8px; + bottom: 8px; +} + +.reveal .slide-menu-button .fas::before, +.reveal .slide-chalkboard-buttons .fas::before, +.slide-menu-wrapper .slide-menu-toolbar .fas::before { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + content: ""; + vertical-align: -0.125em; + background-repeat: no-repeat; + background-size: 2.2rem 2.2rem; +} + +.reveal .slide-chalkboard-buttons .fas::before { + height: 1.45rem; + width: 1.45rem; + background-size: 1.45rem 1.45rem; + vertical-align: 0.1em; +} + +.slide-menu-wrapper .slide-menu-toolbar .fas::before { + height: 1.8rem; + width: 1.8rem; + background-size: 1.8rem 1.8rem; +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-images::before { + background-image: url('data:image/svg+xml,'); +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-gear::before { + background-image: url('data:image/svg+xml,'); +} + +.slide-menu-wrapper .slide-menu-toolbar .fa-times::before { + background-image: url('data:image/svg+xml,'); +} diff --git a/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.js b/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.js new file mode 100644 index 000000000..967405369 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/reveal-menu/quarto-menu.js @@ -0,0 +1,43 @@ +window.revealMenuToolHandler = function (handler) { + return function (event) { + event.preventDefault(); + handler(); + Reveal.getPlugin("menu").closeMenu(); + }; +}; + +window.RevealMenuToolHandlers = { + fullscreen: revealMenuToolHandler(function () { + const element = document.documentElement; + const requestMethod = + element.requestFullscreen || + element.webkitRequestFullscreen || + element.webkitRequestFullScreen || + element.mozRequestFullScreen || + element.msRequestFullscreen; + if (requestMethod) { + requestMethod.apply(element); + } + }), + speakerMode: revealMenuToolHandler(function () { + Reveal.getPlugin("notes").open(); + }), + keyboardHelp: revealMenuToolHandler(function () { + Reveal.toggleHelp(true); + }), + overview: revealMenuToolHandler(function () { + Reveal.toggleOverview(true); + }), + toggleChalkboard: revealMenuToolHandler(function () { + RevealChalkboard.toggleChalkboard(); + }), + toggleNotesCanvas: revealMenuToolHandler(function () { + RevealChalkboard.toggleNotesCanvas(); + }), + downloadDrawings: revealMenuToolHandler(function () { + RevealChalkboard.download(); + }), + togglePdfExport: revealMenuToolHandler(function () { + PdfExport.togglePdfExport(); + }), +}; diff --git a/slides_files/libs/revealjs/plugin/search/plugin.js b/slides_files/libs/revealjs/plugin/search/plugin.js new file mode 100644 index 000000000..5d09ce6ab --- /dev/null +++ b/slides_files/libs/revealjs/plugin/search/plugin.js @@ -0,0 +1,243 @@ +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */ + +const Plugin = () => { + + // The reveal.js instance this plugin is attached to + let deck; + + let searchElement; + let searchButton; + let searchInput; + + let matchedSlides; + let currentMatchedIndex; + let searchboxDirty; + let hilitor; + + function render() { + + searchElement = document.createElement( 'div' ); + searchElement.classList.add( 'searchbox' ); + searchElement.style.position = 'absolute'; + searchElement.style.top = '10px'; + searchElement.style.right = '10px'; + searchElement.style.zIndex = 10; + + //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/: + searchElement.innerHTML = ` +
    `; + + searchInput = searchElement.querySelector( '.searchinput' ); + searchInput.style.width = '240px'; + searchInput.style.fontSize = '14px'; + searchInput.style.padding = '4px 6px'; + searchInput.style.color = '#000'; + searchInput.style.background = '#fff'; + searchInput.style.borderRadius = '2px'; + searchInput.style.border = '0'; + searchInput.style.outline = '0'; + searchInput.style.boxShadow = '0 2px 18px rgba(0, 0, 0, 0.2)'; + searchInput.style['-webkit-appearance'] = 'none'; + + deck.getRevealElement().appendChild( searchElement ); + + // searchButton.addEventListener( 'click', function(event) { + // doSearch(); + // }, false ); + + searchInput.addEventListener( 'keyup', function( event ) { + switch (event.keyCode) { + case 13: + event.preventDefault(); + doSearch(); + searchboxDirty = false; + break; + default: + searchboxDirty = true; + } + }, false ); + + closeSearch(); + + } + + function openSearch() { + if( !searchElement ) render(); + + searchElement.style.display = 'inline'; + searchInput.focus(); + searchInput.select(); + } + + function closeSearch() { + if( !searchElement ) render(); + + searchElement.style.display = 'none'; + if(hilitor) hilitor.remove(); + } + + function toggleSearch() { + if( !searchElement ) render(); + + if (searchElement.style.display !== 'inline') { + openSearch(); + } + else { + closeSearch(); + } + } + + function doSearch() { + //if there's been a change in the search term, perform a new search: + if (searchboxDirty) { + var searchstring = searchInput.value; + + if (searchstring === '') { + if(hilitor) hilitor.remove(); + matchedSlides = null; + } + else { + //find the keyword amongst the slides + hilitor = new Hilitor("slidecontent"); + matchedSlides = hilitor.apply(searchstring); + currentMatchedIndex = 0; + } + } + + if (matchedSlides) { + //navigate to the next slide that has the keyword, wrapping to the first if necessary + if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) { + currentMatchedIndex = 0; + } + if (matchedSlides.length > currentMatchedIndex) { + deck.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v); + currentMatchedIndex++; + } + } + } + + // Original JavaScript code by Chirp Internet: www.chirp.com.au + // Please acknowledge use of this code by including this header. + // 2/2013 jon: modified regex to display any match, not restricted to word boundaries. + function Hilitor(id, tag) { + + var targetNode = document.getElementById(id) || document.body; + var hiliteTag = tag || "EM"; + var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM)$"); + var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"]; + var wordColor = []; + var colorIdx = 0; + var matchRegex = ""; + var matchingSlides = []; + + this.setRegex = function(input) + { + input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|"); + matchRegex = new RegExp("(" + input + ")","i"); + } + + this.getRegex = function() + { + return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " "); + } + + // recursively apply word highlighting + this.hiliteWords = function(node) + { + if(node == undefined || !node) return; + if(!matchRegex) return; + if(skipTags.test(node.nodeName)) return; + + if(node.hasChildNodes()) { + for(var i=0; i < node.childNodes.length; i++) + this.hiliteWords(node.childNodes[i]); + } + if(node.nodeType == 3) { // NODE_TEXT + var nv, regs; + if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) { + //find the slide's section element and save it in our list of matching slides + var secnode = node; + while (secnode != null && secnode.nodeName != 'SECTION') { + secnode = secnode.parentNode; + } + + var slideIndex = deck.getIndices(secnode); + var slidelen = matchingSlides.length; + var alreadyAdded = false; + for (var i=0; i < slidelen; i++) { + if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) { + alreadyAdded = true; + } + } + if (! alreadyAdded) { + matchingSlides.push(slideIndex); + } + + if(!wordColor[regs[0].toLowerCase()]) { + wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length]; + } + + var match = document.createElement(hiliteTag); + match.appendChild(document.createTextNode(regs[0])); + match.style.backgroundColor = wordColor[regs[0].toLowerCase()]; + match.style.fontStyle = "inherit"; + match.style.color = "#000"; + + var after = node.splitText(regs.index); + after.nodeValue = after.nodeValue.substring(regs[0].length); + node.parentNode.insertBefore(match, after); + } + } + }; + + // remove highlighting + this.remove = function() + { + var arr = document.getElementsByTagName(hiliteTag); + var el; + while(arr.length && (el = arr[0])) { + el.parentNode.replaceChild(el.firstChild, el); + } + }; + + // start highlighting at target node + this.apply = function(input) + { + if(input == undefined || !input) return; + this.remove(); + this.setRegex(input); + this.hiliteWords(targetNode); + return matchingSlides; + }; + + } + + return { + + id: 'search', + + init: reveal => { + + deck = reveal; + deck.registerKeyboardShortcut( 'CTRL + Shift + F', 'Search' ); + + document.addEventListener( 'keydown', function( event ) { + if( event.key == "F" && (event.ctrlKey || event.metaKey) ) { //Control+Shift+f + event.preventDefault(); + toggleSearch(); + } + }, false ); + + }, + + open: openSearch + + } +}; + +export default Plugin; \ No newline at end of file diff --git a/slides_files/libs/revealjs/plugin/search/search.esm.js b/slides_files/libs/revealjs/plugin/search/search.esm.js new file mode 100644 index 000000000..b401a7071 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/search/search.esm.js @@ -0,0 +1,7 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=function(e){try{return!!e()}catch(e){return!0}},n=!t((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),r=function(e){return e&&e.Math==Math&&e},o=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i=t,c=/#|\.prototype\./,a=function(e,t){var n=l[u(e)];return n==s||n!=f&&("function"==typeof t?i(t):!!t)},u=a.normalize=function(e){return String(e).replace(c,".").toLowerCase()},l=a.data={},f=a.NATIVE="N",s=a.POLYFILL="P",p=a,g=function(e){return"object"==typeof e?null!==e:"function"==typeof e},d=g,h=function(e){if(!d(e))throw TypeError(String(e)+" is not an object");return e},y=g,v=h,x=function(e){if(!y(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},b=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return v(n),x(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),E=g,m=b,S={},w=g,O=o.document,R=w(O)&&w(O.createElement),T=function(e){return R?O.createElement(e):{}},_=!n&&!t((function(){return 7!=Object.defineProperty(T("div"),"a",{get:function(){return 7}}).a})),j=g,P=function(e,t){if(!j(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!j(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!j(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!j(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},I=n,C=_,N=h,A=P,k=Object.defineProperty;S.f=I?k:function(e,t,n){if(N(e),t=A(t,!0),N(n),C)try{return k(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var $={},L=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},M=L,U=function(e){return Object(M(e))},D=U,F={}.hasOwnProperty,z=function(e,t){return F.call(D(e),t)},K={}.toString,B=function(e){return K.call(e).slice(8,-1)},W=B,G="".split,V=t((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==W(e)?G.call(e,""):Object(e)}:Object,Y=L,q=function(e){return V(Y(e))},X=Math.ceil,H=Math.floor,J=function(e){return isNaN(e=+e)?0:(e>0?H:X)(e)},Q=J,Z=Math.min,ee=function(e){return e>0?Z(Q(e),9007199254740991):0},te=J,ne=Math.max,re=Math.min,oe=q,ie=ee,ce=function(e,t){var n=te(e);return n<0?ne(n+t,0):re(n,t)},ae=function(e){return function(t,n,r){var o,i=oe(t),c=ie(i.length),a=ce(r,c);if(e&&n!=n){for(;c>a;)if((o=i[a++])!=o)return!0}else for(;c>a;a++)if((e||a in i)&&i[a]===n)return e||a||0;return!e&&-1}},ue={includes:ae(!0),indexOf:ae(!1)},le={},fe=z,se=q,pe=ue.indexOf,ge=le,de=function(e,t){var n,r=se(e),o=0,i=[];for(n in r)!fe(ge,n)&&fe(r,n)&&i.push(n);for(;t.length>o;)fe(r,n=t[o++])&&(~pe(i,n)||i.push(n));return i},he=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");$.f=Object.getOwnPropertyNames||function(e){return de(e,he)};var ye={exports:{}},ve=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},xe=S,be=ve,Ee=n?function(e,t,n){return xe.f(e,t,be(1,n))}:function(e,t,n){return e[t]=n,e},me=o,Se=Ee,we=function(e,t){try{Se(me,e,t)}catch(n){me[e]=t}return t},Oe=we,Re=o["__core-js_shared__"]||Oe("__core-js_shared__",{}),Te=Re;(ye.exports=function(e,t){return Te[e]||(Te[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var _e,je,Pe=0,Ie=Math.random(),Ce=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Pe+Ie).toString(36)},Ne=o,Ae=o,ke=function(e){return"function"==typeof e?e:void 0},$e=function(e,t){return arguments.length<2?ke(Ne[e])||ke(Ae[e]):Ne[e]&&Ne[e][t]||Ae[e]&&Ae[e][t]},Le=$e("navigator","userAgent")||"",Me=o.process,Ue=Me&&Me.versions,De=Ue&&Ue.v8;De?je=(_e=De.split("."))[0]<4?1:_e[0]+_e[1]:Le&&(!(_e=Le.match(/Edge\/(\d+)/))||_e[1]>=74)&&(_e=Le.match(/Chrome\/(\d+)/))&&(je=_e[1]);var Fe=je&&+je,ze=t,Ke=!!Object.getOwnPropertySymbols&&!ze((function(){return!String(Symbol())||!Symbol.sham&&Fe&&Fe<41})),Be=Ke&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,We=o,Ge=ye.exports,Ve=z,Ye=Ce,qe=Ke,Xe=Be,He=Ge("wks"),Je=We.Symbol,Qe=Xe?Je:Je&&Je.withoutSetter||Ye,Ze=function(e){return Ve(He,e)&&(qe||"string"==typeof He[e])||(qe&&Ve(Je,e)?He[e]=Je[e]:He[e]=Qe("Symbol."+e)),He[e]},et=g,tt=B,nt=Ze("match"),rt=h,ot=function(){var e=rt(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},it={},ct=t;function at(e,t){return RegExp(e,t)}it.UNSUPPORTED_Y=ct((function(){var e=at("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),it.BROKEN_CARET=ct((function(){var e=at("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var ut={exports:{}},lt=Re,ft=Function.toString;"function"!=typeof lt.inspectSource&&(lt.inspectSource=function(e){return ft.call(e)});var st,pt,gt,dt=lt.inspectSource,ht=dt,yt=o.WeakMap,vt="function"==typeof yt&&/native code/.test(ht(yt)),xt=ye.exports,bt=Ce,Et=xt("keys"),mt=vt,St=g,wt=Ee,Ot=z,Rt=Re,Tt=function(e){return Et[e]||(Et[e]=bt(e))},_t=le,jt=o.WeakMap;if(mt||Rt.state){var Pt=Rt.state||(Rt.state=new jt),It=Pt.get,Ct=Pt.has,Nt=Pt.set;st=function(e,t){if(Ct.call(Pt,e))throw new TypeError("Object already initialized");return t.facade=e,Nt.call(Pt,e,t),t},pt=function(e){return It.call(Pt,e)||{}},gt=function(e){return Ct.call(Pt,e)}}else{var At=Tt("state");_t[At]=!0,st=function(e,t){if(Ot(e,At))throw new TypeError("Object already initialized");return t.facade=e,wt(e,At,t),t},pt=function(e){return Ot(e,At)?e[At]:{}},gt=function(e){return Ot(e,At)}}var kt={set:st,get:pt,has:gt,enforce:function(e){return gt(e)?pt(e):st(e,{})},getterFor:function(e){return function(t){var n;if(!St(t)||(n=pt(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},$t=o,Lt=Ee,Mt=z,Ut=we,Dt=dt,Ft=kt.get,zt=kt.enforce,Kt=String(String).split("String");(ut.exports=function(e,t,n,r){var o,i=!!r&&!!r.unsafe,c=!!r&&!!r.enumerable,a=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Mt(n,"name")||Lt(n,"name",t),(o=zt(n)).source||(o.source=Kt.join("string"==typeof t?t:""))),e!==$t?(i?!a&&e[t]&&(c=!0):delete e[t],c?e[t]=n:Lt(e,t,n)):c?e[t]=n:Ut(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ft(this).source||Dt(this)}));var Bt=$e,Wt=S,Gt=n,Vt=Ze("species"),Yt=n,qt=o,Xt=p,Ht=function(e,t,n){var r,o;return m&&"function"==typeof(r=t.constructor)&&r!==n&&E(o=r.prototype)&&o!==n.prototype&&m(e,o),e},Jt=S.f,Qt=$.f,Zt=function(e){var t;return et(e)&&(void 0!==(t=e[nt])?!!t:"RegExp"==tt(e))},en=ot,tn=it,nn=ut.exports,rn=t,on=kt.enforce,cn=function(e){var t=Bt(e),n=Wt.f;Gt&&t&&!t[Vt]&&n(t,Vt,{configurable:!0,get:function(){return this}})},an=Ze("match"),un=qt.RegExp,ln=un.prototype,fn=/a/g,sn=/a/g,pn=new un(fn)!==fn,gn=tn.UNSUPPORTED_Y;if(Yt&&Xt("RegExp",!pn||gn||rn((function(){return sn[an]=!1,un(fn)!=fn||un(sn)==sn||"/a/i"!=un(fn,"i")})))){for(var dn=function(e,t){var n,r=this instanceof dn,o=Zt(e),i=void 0===t;if(!r&&o&&e.constructor===dn&&i)return e;pn?o&&!i&&(e=e.source):e instanceof dn&&(i&&(t=en.call(e)),e=e.source),gn&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=Ht(pn?new un(e,t):un(e,t),r?this:ln,dn);gn&&n&&(on(c).sticky=!0);return c},hn=function(e){e in dn||Jt(dn,e,{configurable:!0,get:function(){return un[e]},set:function(t){un[e]=t}})},yn=Qt(un),vn=0;yn.length>vn;)hn(yn[vn++]);ln.constructor=dn,dn.prototype=ln,nn(qt,"RegExp",dn)}cn("RegExp");var xn={},bn={},En={}.propertyIsEnumerable,mn=Object.getOwnPropertyDescriptor,Sn=mn&&!En.call({1:2},1);bn.f=Sn?function(e){var t=mn(this,e);return!!t&&t.enumerable}:En;var wn=n,On=bn,Rn=ve,Tn=q,_n=P,jn=z,Pn=_,In=Object.getOwnPropertyDescriptor;xn.f=wn?In:function(e,t){if(e=Tn(e),t=_n(t,!0),Pn)try{return In(e,t)}catch(e){}if(jn(e,t))return Rn(!On.f.call(e,t),e[t])};var Cn={};Cn.f=Object.getOwnPropertySymbols;var Nn=$,An=Cn,kn=h,$n=$e("Reflect","ownKeys")||function(e){var t=Nn.f(kn(e)),n=An.f;return n?t.concat(n(e)):t},Ln=z,Mn=$n,Un=xn,Dn=S,Fn=o,zn=xn.f,Kn=Ee,Bn=ut.exports,Wn=we,Gn=function(e,t){for(var n=Mn(t),r=Dn.f,o=Un.f,i=0;i0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(u="(?: "+u+")",f=" "+f,l++),n=new RegExp("^(?:"+u+")",a)),tr&&(n=new RegExp("^"+u+"$(?!\\s)",a)),Zn&&(t=i.lastIndex),r=Hn.call(c?n:i,f),c?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:Zn&&r&&(i.lastIndex=i.global?r.index+r[0].length:t),tr&&r&&r.length>1&&Jn.call(r[0],n,(function(){for(o=1;o")})),br="$0"==="a".replace(/./,"$0"),Er=dr("replace"),mr=!!/./[Er]&&""===/./[Er]("a","$0"),Sr=!gr((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),wr=J,Or=L,Rr=function(e){return function(t,n){var r,o,i=String(Or(t)),c=wr(n),a=i.length;return c<0||c>=a?e?"":void 0:(r=i.charCodeAt(c))<55296||r>56319||c+1===a||(o=i.charCodeAt(c+1))<56320||o>57343?e?i.charAt(c):r:e?i.slice(c,c+2):o-56320+(r-55296<<10)+65536}},Tr={codeAt:Rr(!1),charAt:Rr(!0)}.charAt,_r=U,jr=Math.floor,Pr="".replace,Ir=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Cr=/\$([$&'`]|\d{1,2})/g,Nr=B,Ar=nr,kr=function(e,t,n,r){var o=dr(e),i=!gr((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),c=i&&!gr((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[yr]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!i||!c||"replace"===e&&(!xr||!br||mr)||"split"===e&&!Sr){var a=/./[o],u=n(o,""[e],(function(e,t,n,r,o){var c=t.exec;return c===pr||c===vr.exec?i&&!o?{done:!0,value:a.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:br,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:mr}),l=u[0],f=u[1];sr(String.prototype,e,l),sr(vr,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&hr(vr[o],"sham",!0)},$r=h,Lr=ee,Mr=J,Ur=L,Dr=function(e,t,n){return t+(n?Tr(e,t).length:1)},Fr=function(e,t,n,r,o,i){var c=n+e.length,a=r.length,u=Cr;return void 0!==o&&(o=_r(o),u=Ir),Pr.call(i,u,(function(i,u){var l;switch(u.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(c);case"<":l=o[u.slice(1,-1)];break;default:var f=+u;if(0===f)return i;if(f>a){var s=jr(f/10);return 0===s?i:s<=a?void 0===r[s-1]?u.charAt(1):r[s-1]+u.charAt(1):i}l=r[f-1]}return void 0===l?"":l}))},zr=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==Nr(e))throw TypeError("RegExp#exec called on incompatible receiver");return Ar.call(e,t)},Kr=Math.max,Br=Math.min;kr("replace",2,(function(e,t,n,r){var o=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,c=o?"$":"$0";return[function(n,r){var o=Ur(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!o&&i||"string"==typeof r&&-1===r.indexOf(c)){var a=n(t,e,this,r);if(a.done)return a.value}var u=$r(e),l=String(this),f="function"==typeof r;f||(r=String(r));var s=u.global;if(s){var p=u.unicode;u.lastIndex=0}for(var g=[];;){var d=zr(u,l);if(null===d)break;if(g.push(d),!s)break;""===String(d[0])&&(u.lastIndex=Dr(l,Lr(u.lastIndex),p))}for(var h,y="",v=0,x=0;x=v&&(y+=l.slice(v,E)+R,v=E+b.length)}return y+l.slice(v)}]}));var Wr={};Wr[Ze("toStringTag")]="z";var Gr="[object z]"===String(Wr),Vr=Gr,Yr=B,qr=Ze("toStringTag"),Xr="Arguments"==Yr(function(){return arguments}()),Hr=Vr?Yr:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),qr))?n:Xr?Yr(t):"Object"==(r=Yr(t))&&"function"==typeof t.callee?"Arguments":r},Jr=Gr?{}.toString:function(){return"[object "+Hr(this)+"]"},Qr=Gr,Zr=ut.exports,eo=Jr;Qr||Zr(Object.prototype,"toString",eo,{unsafe:!0}) +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */;export default function(){var e,t,n,r,o,i,c;function a(){(t=document.createElement("div")).classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',(n=t.querySelector(".searchinput")).style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){switch(t.keyCode){case 13:t.preventDefault(),function(){if(i){var t=n.value;""===t?(c&&c.remove(),r=null):(c=new f("slidecontent"),r=c.apply(t),o=0)}r&&(r.length&&r.length<=o&&(o=0),r.length>o&&(e.slide(r[o].h,r[o].v),o++))}(),i=!1;break;default:i=!0}}),!1),l()}function u(){t||a(),t.style.display="inline",n.focus(),n.select()}function l(){t||a(),t.style.display="none",c&&c.remove()}function f(t,n){var r=document.getElementById(t)||document.body,o=n||"EM",i=new RegExp("^(?:"+o+"|SCRIPT|FORM)$"),c=["#ff6","#a0ffff","#9f9","#f99","#f6f"],a=[],u=0,l="",f=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),l=new RegExp("("+e+")","i")},this.getRegex=function(){return l.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&l&&!i.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n0?H:X)(e)},Q=J,Z=Math.min,ee=function(e){return e>0?Z(Q(e),9007199254740991):0},te=J,ne=Math.max,re=Math.min,oe=q,ie=ee,ce=function(e,t){var n=te(e);return n<0?ne(n+t,0):re(n,t)},ae=function(e){return function(t,n,r){var o,i=oe(t),c=ie(i.length),a=ce(r,c);if(e&&n!=n){for(;c>a;)if((o=i[a++])!=o)return!0}else for(;c>a;a++)if((e||a in i)&&i[a]===n)return e||a||0;return!e&&-1}},ue={includes:ae(!0),indexOf:ae(!1)},le={},fe=z,se=q,pe=ue.indexOf,de=le,ge=function(e,t){var n,r=se(e),o=0,i=[];for(n in r)!fe(de,n)&&fe(r,n)&&i.push(n);for(;t.length>o;)fe(r,n=t[o++])&&(~pe(i,n)||i.push(n));return i},he=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");$.f=Object.getOwnPropertyNames||function(e){return ge(e,he)};var ye={exports:{}},ve=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},xe=S,be=ve,me=n?function(e,t,n){return xe.f(e,t,be(1,n))}:function(e,t,n){return e[t]=n,e},Ee=o,Se=me,we=function(e,t){try{Se(Ee,e,t)}catch(n){Ee[e]=t}return t},Oe=we,Re="__core-js_shared__",Te=o[Re]||Oe(Re,{}),_e=Te;(ye.exports=function(e,t){return _e[e]||(_e[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var je,Pe,Ie=0,Ce=Math.random(),Ne=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Ie+Ce).toString(36)},Ae=o,ke=o,$e=function(e){return"function"==typeof e?e:void 0},Le=function(e,t){return arguments.length<2?$e(Ae[e])||$e(ke[e]):Ae[e]&&Ae[e][t]||ke[e]&&ke[e][t]},Me=Le("navigator","userAgent")||"",Ue=o.process,De=Ue&&Ue.versions,Fe=De&&De.v8;Fe?Pe=(je=Fe.split("."))[0]<4?1:je[0]+je[1]:Me&&(!(je=Me.match(/Edge\/(\d+)/))||je[1]>=74)&&(je=Me.match(/Chrome\/(\d+)/))&&(Pe=je[1]);var ze=Pe&&+Pe,Ke=t,Be=!!Object.getOwnPropertySymbols&&!Ke((function(){return!String(Symbol())||!Symbol.sham&&ze&&ze<41})),We=Be&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ge=o,Ve=ye.exports,Ye=z,qe=Ne,Xe=Be,He=We,Je=Ve("wks"),Qe=Ge.Symbol,Ze=He?Qe:Qe&&Qe.withoutSetter||qe,et=function(e){return Ye(Je,e)&&(Xe||"string"==typeof Je[e])||(Xe&&Ye(Qe,e)?Je[e]=Qe[e]:Je[e]=Ze("Symbol."+e)),Je[e]},tt=d,nt=B,rt=et("match"),ot=h,it=function(){var e=ot(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},ct={},at=t;function ut(e,t){return RegExp(e,t)}ct.UNSUPPORTED_Y=at((function(){var e=ut("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),ct.BROKEN_CARET=at((function(){var e=ut("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var lt={exports:{}},ft=Te,st=Function.toString;"function"!=typeof ft.inspectSource&&(ft.inspectSource=function(e){return st.call(e)});var pt,dt,gt,ht=ft.inspectSource,yt=ht,vt=o.WeakMap,xt="function"==typeof vt&&/native code/.test(yt(vt)),bt=ye.exports,mt=Ne,Et=bt("keys"),St=xt,wt=d,Ot=me,Rt=z,Tt=Te,_t=function(e){return Et[e]||(Et[e]=mt(e))},jt=le,Pt="Object already initialized",It=o.WeakMap;if(St||Tt.state){var Ct=Tt.state||(Tt.state=new It),Nt=Ct.get,At=Ct.has,kt=Ct.set;pt=function(e,t){if(At.call(Ct,e))throw new TypeError(Pt);return t.facade=e,kt.call(Ct,e,t),t},dt=function(e){return Nt.call(Ct,e)||{}},gt=function(e){return At.call(Ct,e)}}else{var $t=_t("state");jt[$t]=!0,pt=function(e,t){if(Rt(e,$t))throw new TypeError(Pt);return t.facade=e,Ot(e,$t,t),t},dt=function(e){return Rt(e,$t)?e[$t]:{}},gt=function(e){return Rt(e,$t)}}var Lt={set:pt,get:dt,has:gt,enforce:function(e){return gt(e)?dt(e):pt(e,{})},getterFor:function(e){return function(t){var n;if(!wt(t)||(n=dt(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Mt=o,Ut=me,Dt=z,Ft=we,zt=ht,Kt=Lt.get,Bt=Lt.enforce,Wt=String(String).split("String");(lt.exports=function(e,t,n,r){var o,i=!!r&&!!r.unsafe,c=!!r&&!!r.enumerable,a=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Dt(n,"name")||Ut(n,"name",t),(o=Bt(n)).source||(o.source=Wt.join("string"==typeof t?t:""))),e!==Mt?(i?!a&&e[t]&&(c=!0):delete e[t],c?e[t]=n:Ut(e,t,n)):c?e[t]=n:Ft(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Kt(this).source||zt(this)}));var Gt=Le,Vt=S,Yt=n,qt=et("species"),Xt=n,Ht=o,Jt=p,Qt=function(e,t,n){var r,o;return E&&"function"==typeof(r=t.constructor)&&r!==n&&m(o=r.prototype)&&o!==n.prototype&&E(e,o),e},Zt=S.f,en=$.f,tn=function(e){var t;return tt(e)&&(void 0!==(t=e[rt])?!!t:"RegExp"==nt(e))},nn=it,rn=ct,on=lt.exports,cn=t,an=Lt.enforce,un=function(e){var t=Gt(e),n=Vt.f;Yt&&t&&!t[qt]&&n(t,qt,{configurable:!0,get:function(){return this}})},ln=et("match"),fn=Ht.RegExp,sn=fn.prototype,pn=/a/g,dn=/a/g,gn=new fn(pn)!==pn,hn=rn.UNSUPPORTED_Y;if(Xt&&Jt("RegExp",!gn||hn||cn((function(){return dn[ln]=!1,fn(pn)!=pn||fn(dn)==dn||"/a/i"!=fn(pn,"i")})))){for(var yn=function(e,t){var n,r=this instanceof yn,o=tn(e),i=void 0===t;if(!r&&o&&e.constructor===yn&&i)return e;gn?o&&!i&&(e=e.source):e instanceof yn&&(i&&(t=nn.call(e)),e=e.source),hn&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=Qt(gn?new fn(e,t):fn(e,t),r?this:sn,yn);hn&&n&&(an(c).sticky=!0);return c},vn=function(e){e in yn||Zt(yn,e,{configurable:!0,get:function(){return fn[e]},set:function(t){fn[e]=t}})},xn=en(fn),bn=0;xn.length>bn;)vn(xn[bn++]);sn.constructor=yn,yn.prototype=sn,on(Ht,"RegExp",yn)}un("RegExp");var mn={},En={},Sn={}.propertyIsEnumerable,wn=Object.getOwnPropertyDescriptor,On=wn&&!Sn.call({1:2},1);En.f=On?function(e){var t=wn(this,e);return!!t&&t.enumerable}:Sn;var Rn=n,Tn=En,_n=ve,jn=q,Pn=P,In=z,Cn=_,Nn=Object.getOwnPropertyDescriptor;mn.f=Rn?Nn:function(e,t){if(e=jn(e),t=Pn(t,!0),Cn)try{return Nn(e,t)}catch(e){}if(In(e,t))return _n(!Tn.f.call(e,t),e[t])};var An={};An.f=Object.getOwnPropertySymbols;var kn=$,$n=An,Ln=h,Mn=Le("Reflect","ownKeys")||function(e){var t=kn.f(Ln(e)),n=$n.f;return n?t.concat(n(e)):t},Un=z,Dn=Mn,Fn=mn,zn=S,Kn=o,Bn=mn.f,Wn=me,Gn=lt.exports,Vn=we,Yn=function(e,t){for(var n=Dn(t),r=zn.f,o=Fn.f,i=0;i0&&(!i.multiline||i.multiline&&"\n"!==e[i.lastIndex-1])&&(u="(?: "+u+")",f=" "+f,l++),n=new RegExp("^(?:"+u+")",a)),rr&&(n=new RegExp("^"+u+"$(?!\\s)",a)),tr&&(t=i.lastIndex),r=Qn.call(c?n:i,f),c?r?(r.input=r.input.slice(l),r[0]=r[0].slice(l),r.index=i.lastIndex,i.lastIndex+=r[0].length):i.lastIndex=0:tr&&r&&(i.lastIndex=i.global?r.index+r[0].length:t),rr&&r&&r.length>1&&Zn.call(r[0],n,(function(){for(o=1;o")})),Sr="$0"==="a".replace(/./,"$0"),wr=vr("replace"),Or=!!/./[wr]&&""===/./[wr]("a","$0"),Rr=!yr((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),Tr=J,_r=L,jr=function(e){return function(t,n){var r,o,i=String(_r(t)),c=Tr(n),a=i.length;return c<0||c>=a?e?"":void 0:(r=i.charCodeAt(c))<55296||r>56319||c+1===a||(o=i.charCodeAt(c+1))<56320||o>57343?e?i.charAt(c):r:e?i.slice(c,c+2):o-56320+(r-55296<<10)+65536}},Pr={codeAt:jr(!1),charAt:jr(!0)}.charAt,Ir=U,Cr=Math.floor,Nr="".replace,Ar=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,kr=/\$([$&'`]|\d{1,2})/g,$r=B,Lr=or,Mr=function(e,t,n,r){var o=vr(e),i=!yr((function(){var t={};return t[o]=function(){return 7},7!=""[e](t)})),c=i&&!yr((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[br]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return t=!0,null},n[o](""),!t}));if(!i||!c||"replace"===e&&(!Er||!Sr||Or)||"split"===e&&!Rr){var a=/./[o],u=n(o,""[e],(function(e,t,n,r,o){var c=t.exec;return c===hr||c===mr.exec?i&&!o?{done:!0,value:a.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Sr,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Or}),l=u[0],f=u[1];gr(String.prototype,e,l),gr(mr,o,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)})}r&&xr(mr[o],"sham",!0)},Ur=h,Dr=ee,Fr=J,zr=L,Kr=function(e,t,n){return t+(n?Pr(e,t).length:1)},Br=function(e,t,n,r,o,i){var c=n+e.length,a=r.length,u=kr;return void 0!==o&&(o=Ir(o),u=Ar),Nr.call(i,u,(function(i,u){var l;switch(u.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(c);case"<":l=o[u.slice(1,-1)];break;default:var f=+u;if(0===f)return i;if(f>a){var s=Cr(f/10);return 0===s?i:s<=a?void 0===r[s-1]?u.charAt(1):r[s-1]+u.charAt(1):i}l=r[f-1]}return void 0===l?"":l}))},Wr=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==$r(e))throw TypeError("RegExp#exec called on incompatible receiver");return Lr.call(e,t)},Gr=Math.max,Vr=Math.min;Mr("replace",2,(function(e,t,n,r){var o=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=r.REPLACE_KEEPS_$0,c=o?"$":"$0";return[function(n,r){var o=zr(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!o&&i||"string"==typeof r&&-1===r.indexOf(c)){var a=n(t,e,this,r);if(a.done)return a.value}var u=Ur(e),l=String(this),f="function"==typeof r;f||(r=String(r));var s=u.global;if(s){var p=u.unicode;u.lastIndex=0}for(var d=[];;){var g=Wr(u,l);if(null===g)break;if(d.push(g),!s)break;""===String(g[0])&&(u.lastIndex=Kr(l,Dr(u.lastIndex),p))}for(var h,y="",v=0,x=0;x=v&&(y+=l.slice(v,m)+R,v=m+b.length)}return y+l.slice(v)}]}));var Yr={};Yr[et("toStringTag")]="z";var qr="[object z]"===String(Yr),Xr=qr,Hr=B,Jr=et("toStringTag"),Qr="Arguments"==Hr(function(){return arguments}()),Zr=Xr?Hr:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),Jr))?n:Qr?Hr(t):"Object"==(r=Hr(t))&&"function"==typeof t.callee?"Arguments":r},eo=qr?{}.toString:function(){return"[object "+Zr(this)+"]"},to=qr,no=lt.exports,ro=eo;to||no(Object.prototype,"toString",ro,{unsafe:!0}) +/*! + * Handles finding a text string anywhere in the slides and showing the next occurrence to the user + * by navigatating to that slide and highlighting it. + * + * @author Jon Snyder , February 2013 + */;return function(){var e,t,n,r,o,i,c;function a(){(t=document.createElement("div")).classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',(n=t.querySelector(".searchinput")).style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){switch(t.keyCode){case 13:t.preventDefault(),function(){if(i){var t=n.value;""===t?(c&&c.remove(),r=null):(c=new f("slidecontent"),r=c.apply(t),o=0)}r&&(r.length&&r.length<=o&&(o=0),r.length>o&&(e.slide(r[o].h,r[o].v),o++))}(),i=!1;break;default:i=!0}}),!1),l()}function u(){t||a(),t.style.display="inline",n.focus(),n.select()}function l(){t||a(),t.style.display="none",c&&c.remove()}function f(t,n){var r=document.getElementById(t)||document.body,o=n||"EM",i=new RegExp("^(?:"+o+"|SCRIPT|FORM)$"),c=["#ff6","#a0ffff","#9f9","#f99","#f6f"],a=[],u=0,l="",f=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),l=new RegExp("("+e+")","i")},this.getRegex=function(){return l.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&l&&!i.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n { + + zoom.reset(); + + } + +}; + +export default () => Plugin; + +/*! + * zoom.js 0.3 (modified for use with reveal.js) + * http://lab.hakim.se/zoom-js + * MIT licensed + * + * Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se + */ +var zoom = (function(){ + + // The current zoom level (scale) + var level = 1; + + // The current mouse position, used for panning + var mouseX = 0, + mouseY = 0; + + // Timeout before pan is activated + var panEngageTimeout = -1, + panUpdateInterval = -1; + + // Check for transform support so that we can fallback otherwise + var supportsTransforms = 'transform' in document.body.style; + + if( supportsTransforms ) { + // The easing that will be applied when we zoom in/out + document.body.style.transition = 'transform 0.8s ease'; + } + + // Zoom out if the user hits escape + document.addEventListener( 'keyup', function( event ) { + if( level !== 1 && event.keyCode === 27 ) { + zoom.out(); + } + } ); + + // Monitor mouse movement for panning + document.addEventListener( 'mousemove', function( event ) { + if( level !== 1 ) { + mouseX = event.clientX; + mouseY = event.clientY; + } + } ); + + /** + * Applies the CSS required to zoom in, prefers the use of CSS3 + * transforms but falls back on zoom for IE. + * + * @param {Object} rect + * @param {Number} scale + */ + function magnify( rect, scale ) { + + var scrollOffset = getScrollOffset(); + + // Ensure a width/height is set + rect.width = rect.width || 1; + rect.height = rect.height || 1; + + // Center the rect within the zoomed viewport + rect.x -= ( window.innerWidth - ( rect.width * scale ) ) / 2; + rect.y -= ( window.innerHeight - ( rect.height * scale ) ) / 2; + + if( supportsTransforms ) { + // Reset + if( scale === 1 ) { + document.body.style.transform = ''; + } + // Scale + else { + var origin = scrollOffset.x +'px '+ scrollOffset.y +'px', + transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')'; + + document.body.style.transformOrigin = origin; + document.body.style.transform = transform; + } + } + else { + // Reset + if( scale === 1 ) { + document.body.style.position = ''; + document.body.style.left = ''; + document.body.style.top = ''; + document.body.style.width = ''; + document.body.style.height = ''; + document.body.style.zoom = ''; + } + // Scale + else { + document.body.style.position = 'relative'; + document.body.style.left = ( - ( scrollOffset.x + rect.x ) / scale ) + 'px'; + document.body.style.top = ( - ( scrollOffset.y + rect.y ) / scale ) + 'px'; + document.body.style.width = ( scale * 100 ) + '%'; + document.body.style.height = ( scale * 100 ) + '%'; + document.body.style.zoom = scale; + } + } + + level = scale; + + if( document.documentElement.classList ) { + if( level !== 1 ) { + document.documentElement.classList.add( 'zoomed' ); + } + else { + document.documentElement.classList.remove( 'zoomed' ); + } + } + } + + /** + * Pan the document when the mosue cursor approaches the edges + * of the window. + */ + function pan() { + var range = 0.12, + rangeX = window.innerWidth * range, + rangeY = window.innerHeight * range, + scrollOffset = getScrollOffset(); + + // Up + if( mouseY < rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) ); + } + // Down + else if( mouseY > window.innerHeight - rangeY ) { + window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) ); + } + + // Left + if( mouseX < rangeX ) { + window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y ); + } + // Right + else if( mouseX > window.innerWidth - rangeX ) { + window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y ); + } + } + + function getScrollOffset() { + return { + x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset, + y: window.scrollY !== undefined ? window.scrollY : window.pageYOffset + } + } + + return { + /** + * Zooms in on either a rectangle or HTML element. + * + * @param {Object} options + * - element: HTML element to zoom in on + * OR + * - x/y: coordinates in non-transformed space to zoom in on + * - width/height: the portion of the screen to zoom in on + * - scale: can be used instead of width/height to explicitly set scale + */ + to: function( options ) { + + // Due to an implementation limitation we can't zoom in + // to another element without zooming out first + if( level !== 1 ) { + zoom.out(); + } + else { + options.x = options.x || 0; + options.y = options.y || 0; + + // If an element is set, that takes precedence + if( !!options.element ) { + // Space around the zoomed in element to leave on screen + var padding = 20; + var bounds = options.element.getBoundingClientRect(); + + options.x = bounds.left - padding; + options.y = bounds.top - padding; + options.width = bounds.width + ( padding * 2 ); + options.height = bounds.height + ( padding * 2 ); + } + + // If width/height values are set, calculate scale from those values + if( options.width !== undefined && options.height !== undefined ) { + options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 ); + } + + if( options.scale > 1 ) { + options.x *= options.scale; + options.y *= options.scale; + + magnify( options, options.scale ); + + if( options.pan !== false ) { + + // Wait with engaging panning as it may conflict with the + // zoom transition + panEngageTimeout = setTimeout( function() { + panUpdateInterval = setInterval( pan, 1000 / 60 ); + }, 800 ); + + } + } + } + }, + + /** + * Resets the document zoom state to its default. + */ + out: function() { + clearTimeout( panEngageTimeout ); + clearInterval( panUpdateInterval ); + + magnify( { x: 0, y: 0 }, 1 ); + + level = 1; + }, + + // Alias + magnify: function( options ) { this.to( options ) }, + reset: function() { this.out() }, + + zoomLevel: function() { + return level; + } + } + +})(); diff --git a/slides_files/libs/revealjs/plugin/zoom/zoom.esm.js b/slides_files/libs/revealjs/plugin/zoom/zoom.esm.js new file mode 100644 index 000000000..c0e8d7b67 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/zoom/zoom.esm.js @@ -0,0 +1,4 @@ +/*! + * reveal.js Zoom plugin + */ +var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(n){var o=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:o)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;n[i]&&!e.isOverview()&&(n.preventDefault(),t.to({x:n.clientX,y:n.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,n=0,o=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,n){var o=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*n)/2,t.y-=(window.innerHeight-t.height*n)/2,l)if(1===n)document.body.style.transform="";else{var i=o.x+"px "+o.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+n+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===n?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(o.x+t.x)/n+"px",document.body.style.top=-(o.y+t.y)/n+"px",document.body.style.width=100*n+"%",document.body.style.height=100*n+"%",document.body.style.zoom=n);e=n,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();owindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-o)/i)*(14/e)),nwindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-n)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(n){1!==e&&27===n.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(n=t.clientX,o=t.clientY)})),{to:function(n){if(1!==e)t.out();else{if(n.x=n.x||0,n.y=n.y||0,n.element){var o=n.element.getBoundingClientRect();n.x=o.left-20,n.y=o.top-20,n.width=o.width+40,n.height=o.height+40}void 0!==n.width&&void 0!==n.height&&(n.scale=Math.max(Math.min(window.innerWidth/n.width,window.innerHeight/n.height),1)),n.scale>1&&(n.x*=n.scale,n.y*=n.scale,s(n,n.scale),!1!==n.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e} diff --git a/slides_files/libs/revealjs/plugin/zoom/zoom.js b/slides_files/libs/revealjs/plugin/zoom/zoom.js new file mode 100644 index 000000000..b52804d66 --- /dev/null +++ b/slides_files/libs/revealjs/plugin/zoom/zoom.js @@ -0,0 +1,4 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=t()}(this,(function(){"use strict"; +/*! + * reveal.js Zoom plugin + */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,o){var n=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,l)if(1===o)document.body.style.transform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,s(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}})); diff --git a/test.html b/test.html new file mode 100644 index 000000000..dda58f7b1 --- /dev/null +++ b/test.html @@ -0,0 +1,754 @@ + + + + + + + + + + + + + test + + + + + + + + + + + + + + + +
    +
    + +
    +

    test

    + +
    +
    + +
    +
    +

    Quarto

    +

    Quarto enables you to weave together content and executable code into a finished presentation. To learn more about Quarto presentations see https://quarto.org/docs/presentations/.

    +
    +
    +

    Bullets

    +

    When you click the Render button a document will be generated that includes:

    +
      +
    • Content authored with markdown
    • +
    • Output from executable code
    • +
    +
    +
    +

    Code

    +

    When you click the Render button a presentation will be generated that includes both content and the output of embedded code. You can embed code like this:

    +
    +
    +
    [1] 2
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test.qmd b/test.qmd new file mode 100644 index 000000000..fc404f42b --- /dev/null +++ b/test.qmd @@ -0,0 +1,24 @@ +--- +title: "test" +format: revealjs +editor: visual +--- + +## Quarto + +Quarto enables you to weave together content and executable code into a finished presentation. To learn more about Quarto presentations see . + +## Bullets + +When you click the **Render** button a document will be generated that includes: + +- Content authored with markdown +- Output from executable code + +## Code + +When you click the **Render** button a presentation will be generated that includes both content and the output of embedded code. You can embed code like this: + +```{r} +1 + 1 +``` diff --git a/test_files/libs/clipboard/clipboard.min.js b/test_files/libs/clipboard/clipboard.min.js new file mode 100644 index 000000000..1103f811e --- /dev/null +++ b/test_files/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.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light-border]>.tippy-arrow:after,.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=light-border]>.tippy-arrow:after{border-color:transparent;border-style:solid}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-arrow:after{border-top-color:rgba(0,8,16,.2);border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=light-border][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:rgba(0,8,16,.2);border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:16px}.tippy-box[data-theme~=light-border][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-arrow:after{border-left-color:rgba(0,8,16,.2);border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=light-border][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:rgba(0,8,16,.2)}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=light-border][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=light-border]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px} \ No newline at end of file diff --git a/test_files/libs/quarto-html/popper.min.js b/test_files/libs/quarto-html/popper.min.js new file mode 100644 index 000000000..2269d6696 --- /dev/null +++ b/test_files/libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.4 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/test_files/libs/quarto-html/quarto-html.min.css b/test_files/libs/quarto-html/quarto-html.min.css new file mode 100644 index 000000000..c2857c39b --- /dev/null +++ b/test_files/libs/quarto-html/quarto-html.min.css @@ -0,0 +1 @@ +/*# sourceMappingURL=0a6b880beb84f9b6f36107a76f82c5b1.css.map */ diff --git a/test_files/libs/quarto-html/quarto-syntax-highlighting.css b/test_files/libs/quarto-html/quarto-syntax-highlighting.css new file mode 100644 index 000000000..d9fd98f04 --- /dev/null +++ b/test_files/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: " !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden") + ); + }; + + /** + * Remove roles and attributes from a tab and its content + * @param {Node} tab The tab + * @param {Node} content The tab content + * @param {Object} settings User settings and options + */ + var destroyTab = function (tab, content, settings) { + // Remove the generated ID + if (tab.id.slice(0, settings.idPrefix.length) === settings.idPrefix) { + tab.id = ""; + } + + // remove event listener + tab.removeEventListener("focus", focusHandler, true); + + // Remove roles + tab.removeAttribute("role"); + tab.removeAttribute("aria-controls"); + tab.removeAttribute("aria-selected"); + tab.removeAttribute("tabindex"); + tab.closest("li").removeAttribute("role"); + content.removeAttribute("role"); + content.removeAttribute("aria-labelledby"); + content.removeAttribute("hidden"); + }; + + /** + * Add the required roles and attributes to a tab and its content + * @param {Node} tab The tab + * @param {Node} content The tab content + * @param {Object} settings User settings and options + */ + var setupTab = function (tab, content, settings) { + // Give tab an ID if it doesn't already have one + if (!tab.id) { + tab.id = settings.idPrefix + content.id; + } + + // Add roles + tab.setAttribute("role", "tab"); + tab.setAttribute("aria-controls", content.id); + tab.closest("li").setAttribute("role", "presentation"); + content.setAttribute("role", "tabpanel"); + content.setAttribute("aria-labelledby", tab.id); + + // Add selected state + if (tab.matches(settings.default)) { + tab.setAttribute("aria-selected", "true"); + } else { + tab.setAttribute("aria-selected", "false"); + content.setAttribute("hidden", "hidden"); + } + + // add focus event listender + tab.addEventListener("focus", focusHandler); + }; + + /** + * Hide a tab and its content + * @param {Node} newTab The new tab that's replacing it + */ + var hide = function (newTab) { + // Variables + var tabGroup = newTab.closest('[role="tablist"]'); + if (!tabGroup) return {}; + var tab = tabGroup.querySelector('[role="tab"][aria-selected="true"]'); + if (!tab) return {}; + var content = document.querySelector(tab.hash); + + // Hide the tab + tab.setAttribute("aria-selected", "false"); + + // Hide the content + if (!content) return { previousTab: tab }; + content.setAttribute("hidden", "hidden"); + + // Return the hidden tab and content + return { + previousTab: tab, + previousContent: content, + }; + }; + + /** + * Show a tab and its content + * @param {Node} tab The tab + * @param {Node} content The tab content + */ + var show = function (tab, content) { + tab.setAttribute("aria-selected", "true"); + content.removeAttribute("hidden"); + tab.focus(); + }; + + /** + * Toggle a new tab + * @param {Node} tab The tab to show + */ + var toggle = function (tab) { + // Make sure there's a tab to toggle and it's not already active + if (!tab || tab.getAttribute("aria-selected") == "true") return; + + // Variables + var content = document.querySelector(tab.hash); + if (!content) return; + + // Hide active tab and content + var details = hide(tab); + + // Show new tab and content + show(tab, content); + + // Add event details + details.tab = tab; + details.content = content; + + // Emit a custom event + emitEvent(tab, details); + }; + + /** + * Get all of the tabs in a tablist + * @param {Node} tab A tab from the list + * @return {Object} The tabs and the index of the currently active one + */ + var getTabsMap = function (tab) { + var tabGroup = tab.closest('[role="tablist"]'); + var tabs = tabGroup ? tabGroup.querySelectorAll('[role="tab"]') : null; + if (!tabs) return; + return { + tabs: tabs, + index: Array.prototype.indexOf.call(tabs, tab), + }; + }; + + /** + * Switch the active tab based on keyboard activity + * @param {Node} tab The currently active tab + * @param {Key} key The key that was pressed + */ + var switchTabs = function (tab, key) { + // Get a map of tabs + var map = getTabsMap(tab); + if (!map) return; + var length = map.tabs.length - 1; + var index; + + // Go to previous tab + if (["ArrowUp", "ArrowLeft", "Up", "Left"].indexOf(key) > -1) { + index = map.index < 1 ? length : map.index - 1; + } + + // Go to next tab + else if (["ArrowDown", "ArrowRight", "Down", "Right"].indexOf(key) > -1) { + index = map.index === length ? 0 : map.index + 1; + } + + // Go to home + else if (key === "Home") { + index = 0; + } + + // Go to end + else if (key === "End") { + index = length; + } + + // Toggle the tab + toggle(map.tabs[index]); + }; + + /** + * Create the Constructor object + */ + var Constructor = function (selector, options) { + // + // Variables + // + + var publicAPIs = {}; + var settings, tabWrapper; + + // + // Methods + // + + publicAPIs.destroy = function () { + // Get all tabs + var tabs = tabWrapper.querySelectorAll("a"); + + // Add roles to tabs + Array.prototype.forEach.call(tabs, function (tab) { + // Get the tab content + var content = document.querySelector(tab.hash); + if (!content) return; + + // Setup the tab + destroyTab(tab, content, settings); + }); + + // Remove role from wrapper + tabWrapper.removeAttribute("role"); + + // Remove event listeners + document.documentElement.removeEventListener( + "click", + clickHandler, + true + ); + tabWrapper.removeEventListener("keydown", keyHandler, true); + + // Reset variables + settings = null; + tabWrapper = null; + }; + + /** + * Setup the DOM with the proper attributes + */ + publicAPIs.setup = function () { + // Variables + tabWrapper = document.querySelector(selector); + if (!tabWrapper) return; + var tabs = tabWrapper.querySelectorAll("a"); + + // Add role to wrapper + tabWrapper.setAttribute("role", "tablist"); + + // Add roles to tabs. provide dynanmic tab indexes if we are within reveal + var contentTabindexes = + window.document.body.classList.contains("reveal-viewport"); + var nextTabindex = 1; + Array.prototype.forEach.call(tabs, function (tab) { + if (contentTabindexes) { + tab.setAttribute("tabindex", "" + nextTabindex++); + } else { + tab.setAttribute("tabindex", "0"); + } + + // Get the tab content + var content = document.querySelector(tab.hash); + if (!content) return; + + // set tab indexes for content + if (contentTabindexes) { + getKeyboardFocusableElements(content).forEach(function (el) { + el.setAttribute("tabindex", "" + nextTabindex++); + }); + } + + // Setup the tab + setupTab(tab, content, settings); + }); + }; + + /** + * Toggle a tab based on an ID + * @param {String|Node} id The tab to toggle + */ + publicAPIs.toggle = function (id) { + // Get the tab + var tab = id; + if (typeof id === "string") { + tab = document.querySelector( + selector + ' [role="tab"][href*="' + id + '"]' + ); + } + + // Toggle the tab + toggle(tab); + }; + + /** + * Handle click events + */ + var clickHandler = function (event) { + // Only run on toggles + var tab = event.target.closest(selector + ' [role="tab"]'); + if (!tab) return; + + // Prevent link behavior + event.preventDefault(); + + // Toggle the tab + toggle(tab); + }; + + /** + * Handle keydown events + */ + var keyHandler = function (event) { + // Only run if a tab is in focus + var tab = document.activeElement; + if (!tab.matches(selector + ' [role="tab"]')) return; + + // Only run for specific keys + if (["Home", "End"].indexOf(event.key) < 0) return; + + // Switch tabs + switchTabs(tab, event.key); + }; + + /** + * Initialize the instance + */ + var init = function () { + // Merge user options with defaults + settings = extend(defaults, options || {}); + + // Setup the DOM + publicAPIs.setup(); + + // Add event listeners + document.documentElement.addEventListener("click", clickHandler, true); + tabWrapper.addEventListener("keydown", keyHandler, true); + }; + + // + // Initialize and return the Public APIs + // + + init(); + return publicAPIs; + }; + + // + // Return the Constructor + // + + return Constructor; + } +); diff --git a/test_files/libs/quarto-html/tippy.css b/test_files/libs/quarto-html/tippy.css new file mode 100644 index 000000000..e6ae635cb --- /dev/null +++ b/test_files/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/test_files/libs/quarto-html/tippy.umd.min.js b/test_files/libs/quarto-html/tippy.umd.min.js new file mode 100644 index 000000000..ca292be32 --- /dev/null +++ b/test_files/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/test_files/libs/revealjs/dist/reset.css b/test_files/libs/revealjs/dist/reset.css new file mode 100644 index 000000000..e2385390f --- /dev/null +++ b/test_files/libs/revealjs/dist/reset.css @@ -0,0 +1,30 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v4.0 | 20180602 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +main, menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, main, menu, nav, section { + display: block; +} \ No newline at end of file diff --git a/test_files/libs/revealjs/dist/reveal.css b/test_files/libs/revealjs/dist/reveal.css new file mode 100644 index 000000000..5f80fd096 --- /dev/null +++ b/test_files/libs/revealjs/dist/reveal.css @@ -0,0 +1,8 @@ +/*! +* reveal.js 4.3.1 +* https://revealjs.com +* MIT licensed +* +* Copyright (C) 2011-2022 Hakim El Hattab, https://hakim.se +*/ +.reveal .r-stretch,.reveal .stretch{max-width:none;max-height:none}.reveal pre.r-stretch code,.reveal pre.stretch code{height:100%;max-height:100%;box-sizing:border-box}.reveal .r-fit-text{display:inline-block;white-space:nowrap}.reveal .r-stack{display:grid}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-hstack,.reveal .r-vstack{display:flex}.reveal .r-hstack img,.reveal .r-hstack video,.reveal .r-vstack img,.reveal .r-vstack video{min-width:0;min-height:0;-o-object-fit:contain;object-fit:contain}.reveal .r-vstack{flex-direction:column;align-items:center;justify-content:center}.reveal .r-hstack{flex-direction:row;align-items:center;justify-content:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-full-page{width:100%;height:100%;height:100vh;height:calc(var(--vh,1vh) * 100);overflow:hidden}.reveal-viewport{height:100%;overflow:hidden;position:relative;line-height:1;margin:0;background-color:#fff;color:#000}.reveal-viewport:-webkit-full-screen{top:0!important;left:0!important;width:100%!important;height:100%!important;transform:none!important}.reveal-viewport:-ms-fullscreen{top:0!important;left:0!important;width:100%!important;height:100%!important;transform:none!important}.reveal-viewport:fullscreen{top:0!important;left:0!important;width:100%!important;height:100%!important;transform:none!important}.reveal .slides section .fragment{opacity:0;visibility:hidden;transition:all .2s ease;will-change:opacity}.reveal .slides section .fragment.visible{opacity:1;visibility:inherit}.reveal .slides section .fragment.disabled{transition:none}.reveal .slides section .fragment.grow{opacity:1;visibility:inherit}.reveal .slides section .fragment.grow.visible{transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1;visibility:inherit}.reveal .slides section .fragment.shrink.visible{transform:scale(.7)}.reveal .slides section .fragment.zoom-in{transform:scale(.1)}.reveal .slides section .fragment.zoom-in.visible{transform:none}.reveal .slides section .fragment.fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .slides section .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.strike{opacity:1;visibility:inherit}.reveal .slides section .fragment.strike.visible{text-decoration:line-through}.reveal .slides section .fragment.fade-up{transform:translate(0,40px)}.reveal .slides section .fragment.fade-up.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-down{transform:translate(0,-40px)}.reveal .slides section .fragment.fade-down.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-right{transform:translate(-40px,0)}.reveal .slides section .fragment.fade-right.visible{transform:translate(0,0)}.reveal .slides section .fragment.fade-left{transform:translate(40px,0)}.reveal .slides section .fragment.fade-left.visible{transform:translate(0,0)}.reveal .slides section .fragment.current-visible,.reveal .slides section .fragment.fade-in-then-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.current-visible.current-fragment,.reveal .slides section .fragment.fade-in-then-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .slides section .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .slides section .fragment.fade-in-then-semi-out.current-fragment{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-red{opacity:1;visibility:inherit}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:"";font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(10px)}30%{transform:translateX(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translateX(0)}20%{transform:translateX(-10px)}30%{transform:translateX(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:12px;right:12px;left:auto;z-index:11;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;transform:scale(.9999);transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.reveal .controls .controls-arrow:after,.reveal .controls .controls-arrow:before{content:"";position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translateX(.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translateX(.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;transform:translateX(-10px)}.reveal .controls .navigate-left.highlight{animation:bounce-left 2s 50 both ease-out}.reveal .controls .navigate-right{right:0;bottom:3.2em;transform:translateX(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:-1.4em;padding-bottom:1.4em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled.fragmented:hover,.reveal .controls .enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up{display:none}.reveal:not(.has-vertical-slides) .controls .navigate-left,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left{bottom:1.4em;right:5.5em}.reveal:not(.has-vertical-slides) .controls .navigate-right,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:active:before,.reveal.no-hover .controls .controls-arrow:hover:before{transform:translateX(.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:active:after,.reveal.no-hover .controls .controls-arrow:hover:after{transform:translateX(.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width:500px){.reveal .controls[data-controls-layout=edges]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout=edges] .navigate-down,.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:.8em;margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:.8em;left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:-.3em;left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:rgba(0,0,0,.2);color:#fff}.reveal .progress:after{content:"";display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:100%;background-color:currentColor;transition:transform .8s cubic-bezier(.26,.86,.44,.985);transform-origin:0 0;transform:scaleX(0)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:rgba(0,0,0,.4);padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pinch-zoom}.reveal.embedded{touch-action:pan-y}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;pointer-events:auto;z-index:10;transform-style:flat;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section>section[data-background-interactive],.reveal .slides>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.future,.reveal .slides>section.past,.reveal .slides>section>section.future,.reveal .slides>section>section.past{opacity:0}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translate(0,150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0 0}.reveal.cube .slides>section.past{transform-origin:100% 0;transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0 0;transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0 100%;transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0 0;transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{perspective-origin:0 50%;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0 0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0 0}.reveal.page .slides>section.past{transform-origin:0 0;transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0;transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{transform-origin:0 0;transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0 100%;transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:0 0;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:rgba(0,0,0,0);transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;-o-object-fit:cover;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{-o-object-fit:contain;object-fit:contain}.reveal>.backgrounds .slide-background[data-background-transition=none],.reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]){transition:none}.reveal>.backgrounds .slide-background[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]){opacity:1}.reveal>.backgrounds .slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]){transform:translate(-100%,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]){transform:translate(100%,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){transform:translate(0,-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){transform:translate(0,100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal>.backgrounds .slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal>.backgrounds .slide-background[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]){transition-timing-function:ease}.reveal>.backgrounds .slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50% 50%;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section.present,.reveal.overview .slides section:hover{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0 0;outline:0;overflow:visible}.reveal.overview .backgrounds{perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl code,.reveal.rtl pre{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);transition:all .3s ease}.reveal>.overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal>.overlay header{position:absolute;left:0;top:0;width:100%;padding:5px;z-index:2;box-sizing:border-box}.reveal>.overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal>.overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal>.overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal>.overlay .viewport{position:absolute;display:flex;top:50px;right:0;bottom:0;left:0}.reveal>.overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal>.overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px 20px;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table td,.reveal>.overlay.overlay-help .viewport .viewport-inner table th{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:transparent}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs:not(:first-child).fragment{position:absolute;top:0;left:0;width:100%;box-sizing:border-box}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;perspective:400px;perspective-origin:50% 50%}.reveal .roll:hover{background:0 0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;transform-origin:50% 0;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);transform:translate3d(0,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:50% 0;transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.3333333333%;height:100%;top:0;left:100%;padding:14px 18px 14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:"Speaker notes";display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:30vh;border:0}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:40vh}.reveal .speaker-notes{font-size:14px}}.zoomed .reveal *,.zoomed .reveal :after,.zoomed .reveal :before{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .controls,.zoomed .reveal .progress{opacity:0}.zoomed .reveal .roll span{background:0 0}.zoomed .reveal .roll span:after{visibility:hidden}html.print-pdf *{-webkit-print-color-adjust:exact}html.print-pdf{width:100%;height:100%;overflow:visible}html.print-pdf body{margin:0 auto!important;border:0;padding:0;float:none!important;overflow:visible}html.print-pdf .nestedarrow,html.print-pdf .reveal .controls,html.print-pdf .reveal .playback,html.print-pdf .reveal .progress,html.print-pdf .reveal.overview,html.print-pdf .state-background{display:none!important}html.print-pdf .reveal pre code{overflow:hidden!important;font-family:Courier,"Courier New",monospace!important}html.print-pdf .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.print-pdf .reveal .slides{position:static;width:100%!important;height:auto!important;zoom:1!important;pointer-events:initial;left:auto;top:auto;margin:0!important;padding:0!important;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}html.print-pdf .reveal .slides .pdf-page{position:relative;overflow:hidden;z-index:1;page-break-after:always}html.print-pdf .reveal .slides section{visibility:visible!important;display:block!important;position:absolute!important;margin:0!important;padding:0!important;box-sizing:border-box!important;min-height:1px;opacity:1!important;transform-style:flat!important;transform:none!important}html.print-pdf .reveal section.stack{position:relative!important;margin:0!important;padding:0!important;page-break-after:avoid!important;height:auto!important;min-height:auto!important}html.print-pdf .reveal img{box-shadow:none}html.print-pdf .reveal .backgrounds{display:none}html.print-pdf .reveal .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important}html.print-pdf .reveal.show-notes{max-width:none;max-height:none}html.print-pdf .reveal .speaker-notes-pdf{display:block;width:100%;height:auto;max-height:none;top:auto;right:auto;bottom:auto;left:auto;z-index:100}html.print-pdf .reveal .speaker-notes-pdf[data-layout=separate-page]{position:relative;color:inherit;background-color:transparent;padding:20px;page-break-after:always;border:0}html.print-pdf .reveal .slide-number-pdf{display:block;position:absolute;font-size:14px}html.print-pdf .aria-status{display:none}@media print{html:not(.print-pdf){background:#fff;width:auto;height:auto;overflow:visible}html:not(.print-pdf) body{background:#fff;font-size:20pt;width:auto;height:auto;border:0;margin:0 5%;padding:0;overflow:visible;float:none!important}html:not(.print-pdf) .controls,html:not(.print-pdf) .fork-reveal,html:not(.print-pdf) .nestedarrow,html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .slide-number,html:not(.print-pdf) .share-reveal,html:not(.print-pdf) .state-background{display:none!important}html:not(.print-pdf) body,html:not(.print-pdf) li,html:not(.print-pdf) p,html:not(.print-pdf) td{font-size:20pt!important;color:#000}html:not(.print-pdf) h1,html:not(.print-pdf) h2,html:not(.print-pdf) h3,html:not(.print-pdf) h4,html:not(.print-pdf) h5,html:not(.print-pdf) h6{color:#000!important;height:auto;line-height:normal;text-align:left;letter-spacing:normal}html:not(.print-pdf) h1{font-size:28pt!important}html:not(.print-pdf) h2{font-size:24pt!important}html:not(.print-pdf) h3{font-size:22pt!important}html:not(.print-pdf) h4{font-size:22pt!important;font-variant:small-caps}html:not(.print-pdf) h5{font-size:21pt!important}html:not(.print-pdf) h6{font-size:20pt!important;font-style:italic}html:not(.print-pdf) a:link,html:not(.print-pdf) a:visited{color:#000!important;font-weight:700;text-decoration:underline}html:not(.print-pdf) div,html:not(.print-pdf) ol,html:not(.print-pdf) p,html:not(.print-pdf) ul{visibility:visible;position:static;width:auto;height:auto;display:block;overflow:visible;margin:0;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{position:static!important;width:auto!important;height:auto!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:0!important;zoom:1!important;transform:none!important;overflow:visible!important;display:block!important;text-align:left!important;perspective:none;perspective-origin:50% 50%}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;position:static!important;width:auto!important;height:auto!important;display:block!important;overflow:visible!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:60px 20px!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;transform:none!important;transition:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal section img{display:block;margin:15px 0;background:#fff;border:1px solid #666;box-shadow:none}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{max-height:100%;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}} \ No newline at end of file diff --git a/test_files/libs/revealjs/dist/reveal.esm.js b/test_files/libs/revealjs/dist/reveal.esm.js new file mode 100644 index 000000000..f18da895f --- /dev/null +++ b/test_files/libs/revealjs/dist/reveal.esm.js @@ -0,0 +1,9 @@ +/*! +* reveal.js 4.3.1 +* https://revealjs.com +* MIT licensed +* +* Copyright (C) 2011-2022 Hakim El Hattab, https://hakim.se +*/ +const e=(e,t)=>{for(let i in t)e[i]=t[i];return e},t=(e,t)=>Array.from(e.querySelectorAll(t)),i=(e,t,i)=>{i?e.classList.add(t):e.classList.remove(t)},s=e=>{if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},a=(e,t)=>{e.style.transform=t},n=(e,t)=>{let i=e.matches||e.matchesSelector||e.msMatchesSelector;return!(!i||!i.call(e,t))},r=(e,t)=>{if("function"==typeof e.closest)return e.closest(t);for(;e;){if(n(e,t))return e;e=e.parentNode}return null},o=(e,t,i,s="")=>{let a=e.querySelectorAll("."+i);for(let t=0;t{let t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},d=()=>{let e={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,(t=>{e[t.split("=").shift()]=t.split("=").pop()}));for(let t in e){let i=e[t];e[t]=s(unescape(i))}return void 0!==e.dependencies&&delete e.dependencies,e},c=(e,t=0)=>{if(e){let i,s=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",i=t-e.parentNode.offsetHeight,e.style.height=s+"px",e.parentNode.style.removeProperty("height"),i}return t},h={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},u=navigator.userAgent,g=/(iphone|ipod|ipad|android)/gi.test(u)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1;/chrome/i.test(u)&&/edge/i.test(u);const v=/android/gi.test(u);var p={};Object.defineProperty(p,"__esModule",{value:!0});var m=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e?x(t(document.querySelectorAll(e)),i):x([e],i)[0]}}("undefined"==typeof window?null:window);class b{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(e){let t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e,i={}){e.style.display=this.Reveal.getConfig().display,t(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((e=>{("IFRAME"!==e.tagName||this.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))})),t(e,"video, audio").forEach((e=>{let i=0;t(e,"source[data-src]").forEach((e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),i+=1})),g&&"VIDEO"===e.tagName&&e.setAttribute("playsinline",""),i>0&&e.load()}));let s=e.slideBackgroundElement;if(s){s.style.display="block";let t=e.slideBackgroundContentElement,a=e.getAttribute("data-background-iframe");if(!1===s.hasAttribute("data-loaded")){s.setAttribute("data-loaded","true");let n=e.getAttribute("data-background-image"),r=e.getAttribute("data-background-video"),o=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(n)/^data:/.test(n.trim())?t.style.backgroundImage=`url(${n.trim()})`:t.style.backgroundImage=n.split(",").map((e=>`url(${encodeURI(e.trim())})`)).join(",");else if(r&&!this.Reveal.isSpeakerNotes()){let e=document.createElement("video");o&&e.setAttribute("loop",""),l&&(e.muted=!0),g&&(e.muted=!0,e.setAttribute("playsinline","")),r.split(",").forEach((t=>{let i=((e="")=>h[e.split(".").pop()])(t);e.innerHTML+=i?``:``})),t.appendChild(e)}else if(a&&!0!==i.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",a),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",t.appendChild(e)}}let n=t.querySelector("iframe[data-src]");n&&this.shouldPreload(s)&&!/autoplay=(1|true|yes)/gi.test(a)&&n.getAttribute("src")!==a&&n.setAttribute("src",a)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach((e=>{f(e,{minSize:24,maxSize:.8*this.Reveal.getConfig().height,observeMutations:!1,observeWindow:!1})}))}unload(e){e.style.display="none";let i=this.Reveal.getSlideBackground(e);i&&(i.style.display="none",t(i,"iframe[src]").forEach((e=>{e.removeAttribute("src")}))),t(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach((e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})),t(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach((e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}))}formatEmbeddedContent(){let e=(e,i,s)=>{t(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+i+'"]').forEach((t=>{let i=t.getAttribute(e);i&&-1===i.indexOf(s)&&t.setAttribute(e,i+(/\?/.test(i)?"&":"?")+s)}))};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){e&&!this.Reveal.isSpeakerNotes()&&(t(e,'img[src$=".gif"]').forEach((e=>{e.setAttribute("src",e.getAttribute("src"))})),t(e,"video, audio").forEach((e=>{if(r(e,".fragment")&&!r(e,".fragment.visible"))return;let t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!r(e,".slide-background")),t&&"function"==typeof e.play)if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(g){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.catch((()=>{e.controls=!0,e.addEventListener("play",(()=>{e.controls=!1}))}))}else e.removeEventListener("loadeddata",this.startEmbeddedMedia),e.addEventListener("loadeddata",this.startEmbeddedMedia)})),t(e,"iframe[src]").forEach((e=>{r(e,".fragment")&&!r(e,".fragment.visible")||this.startEmbeddedIframe({target:e})})),t(e,"iframe[data-src]").forEach((e=>{r(e,".fragment")&&!r(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",this.startEmbeddedIframe),e.addEventListener("load",this.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))})))}startEmbeddedMedia(e){let t=!!r(e.target,"html"),i=!!r(e.target,".present");t&&i&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let t=e.target;if(t&&t.contentWindow){let i=!!r(e.target,"html"),s=!!r(e.target,".present");if(i&&s){let e=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!r(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(i,s={}){s=e({unloadIframes:!0},s),i&&i.parentNode&&(t(i,"video, audio").forEach((e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())})),t(i,"iframe").forEach((e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",this.startEmbeddedIframe)})),t(i,'iframe[src*="youtube.com/embed/"]').forEach((e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")})),t(i,'iframe[src*="player.vimeo.com/"]').forEach((e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")})),!0===s.unloadIframes&&t(i,"iframe[data-src]").forEach((e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")})))}}class y{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){let i="none";e.slideNumber&&!this.Reveal.isPrintingPDF()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(i="block"),this.element.style.display=i}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(e=this.Reveal.getCurrentSlide()){let t,i=this.Reveal.getConfig(),s="h.v";if("function"==typeof i.slideNumber)t=i.slideNumber(e);else{"string"==typeof i.slideNumber&&(s=i.slideNumber),/c/.test(s)||1!==this.Reveal.getHorizontalSlides().length||(s="c");let a=e&&"uncounted"===e.dataset.visibility?0:1;switch(t=[],s){case"c":t.push(this.Reveal.getSlidePastCount(e)+a);break;case"c/t":t.push(this.Reveal.getSlidePastCount(e)+a,"/",this.Reveal.getTotalSlides());break;default:let i=this.Reveal.getIndices(e);t.push(i.h+a);let n="h/v"===s?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(n,i.v+1)}}let a="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],a)}formatNumber(e,t,i,s="#"+this.Reveal.location.getHash()){return"number"!=typeof i||isNaN(i)?`\n\t\t\t\t\t${e}\n\t\t\t\t\t`:`\n\t\t\t\t\t${e}\n\t\t\t\t\t${t}\n\t\t\t\t\t${i}\n\t\t\t\t\t`}destroy(){this.element.remove()}}const w=e=>{let t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return t=t[1],{r:17*parseInt(t.charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};let i=e.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.slice(0,2),16),g:parseInt(i.slice(2,4),16),b:parseInt(i.slice(4,6),16)};let s=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(s)return{r:parseInt(s[1],10),g:parseInt(s[2],10),b:parseInt(s[3],10)};let a=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return a?{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10),a:parseFloat(a[4])}:null};class E{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach((e=>{let i=this.createBackground(e,this.element);t(e,"section").forEach((e=>{this.createBackground(e,i),i.classList.add("stack")}))})),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout((()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")}),1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,t){let i=document.createElement("div");i.className="slide-background "+e.className.replace(/present|past|future/,"");let s=document.createElement("div");return s.className="slide-background-content",i.appendChild(s),t.appendChild(i),e.slideBackgroundElement=i,e.slideBackgroundContentElement=s,this.sync(e),i}sync(e){const t=e.slideBackgroundElement,i=e.slideBackgroundContentElement,s={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")},a=e.hasAttribute("data-preload");e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",i.style.backgroundSize="",i.style.backgroundRepeat="",i.style.backgroundPosition="",i.style.backgroundImage="",i.style.opacity="",i.innerHTML="",s.background&&(/^(http|file|\/\/)/gi.test(s.background)||/\.(svg|png|jpg|jpeg|gif|bmp)([?#\s]|$)/gi.test(s.background)?e.setAttribute("data-background-image",s.background):t.style.background=s.background),(s.background||s.backgroundColor||s.backgroundImage||s.backgroundVideo||s.backgroundIframe)&&t.setAttribute("data-background-hash",s.background+s.backgroundSize+s.backgroundImage+s.backgroundVideo+s.backgroundIframe+s.backgroundColor+s.backgroundRepeat+s.backgroundPosition+s.backgroundTransition+s.backgroundOpacity),s.backgroundSize&&t.setAttribute("data-background-size",s.backgroundSize),s.backgroundColor&&(t.style.backgroundColor=s.backgroundColor),s.backgroundTransition&&t.setAttribute("data-background-transition",s.backgroundTransition),a&&t.setAttribute("data-preload",""),s.backgroundSize&&(i.style.backgroundSize=s.backgroundSize),s.backgroundRepeat&&(i.style.backgroundRepeat=s.backgroundRepeat),s.backgroundPosition&&(i.style.backgroundPosition=s.backgroundPosition),s.backgroundOpacity&&(i.style.opacity=s.backgroundOpacity);let n=s.backgroundColor;if(!n||!w(n)){let e=window.getComputedStyle(t);e&&e.backgroundColor&&(n=e.backgroundColor)}if(n){const t=w(n);t&&0!==t.a&&("string"==typeof(r=n)&&(r=w(r)),(r?(299*r.r+587*r.g+114*r.b)/1e3:null)<128?e.classList.add("has-dark-background"):e.classList.add("has-light-background"))}var r}update(e=!1){let i=this.Reveal.getCurrentSlide(),s=this.Reveal.getIndices(),a=null,n=this.Reveal.getConfig().rtl?"future":"past",r=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach(((i,o)=>{i.classList.remove("past","present","future"),os.h?i.classList.add(r):(i.classList.add("present"),a=i),(e||o===s.h)&&t(i,".slide-background").forEach(((e,t)=>{e.classList.remove("past","present","future"),ts.v?e.classList.add("future"):(e.classList.add("present"),o===s.h&&(a=e))}))})),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),a){this.Reveal.slideContent.startEmbeddedContent(a);let e=a.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}let t=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,i=a.getAttribute("data-background-hash");i&&i===t&&a!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=a}i&&["has-light-background","has-dark-background"].forEach((e=>{i.classList.contains(e)?this.Reveal.getRevealElement().classList.add(e):this.Reveal.getRevealElement().classList.remove(e)}),this),setTimeout((()=>{this.element.classList.remove("no-transition")}),1)}updateParallax(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let t,i,s=this.Reveal.getHorizontalSlides(),a=this.Reveal.getVerticalSlides(),n=this.element.style.backgroundSize.split(" ");1===n.length?t=i=parseInt(n[0],10):(t=parseInt(n[0],10),i=parseInt(n[1],10));let r,o,l=this.element.offsetWidth,d=s.length;r="number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:d>1?(t-l)/(d-1):0,o=r*e.h*-1;let c,h,u=this.element.offsetHeight,g=a.length;c="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(i-u)/(g-1),h=g>0?c*e.v:0,this.element.style.backgroundPosition=o+"px "+-h+"px"}}destroy(){this.element.remove()}}const R=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/,S=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;let A=0;class k{constructor(e){this.Reveal=e}run(e,t){this.reset();let i=this.Reveal.getSlides(),s=i.indexOf(t),a=i.indexOf(e);if(e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")&&e.getAttribute("data-auto-animate-id")===t.getAttribute("data-auto-animate-id")&&!(s>a?t:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||l();let i=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending",i.slideDirection=s>a?"forward":"backward";let n=this.getAutoAnimatableElements(e,t).map((e=>this.autoAnimateElements(e.from,e.to,e.options||{},i,A++)));if("false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){let e=.8*i.duration,s=.2*i.duration;this.getUnmatchedAutoAnimateElements(t).forEach((e=>{let t=this.getAutoAnimateOptions(e,i),s="unmatched";t.duration===i.duration&&t.delay===i.delay||(s="unmatched-"+A++,n.push(`[data-auto-animate="running"] [data-auto-animate-target="${s}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)),e.dataset.autoAnimateTarget=s}),this),n.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${s}s; }`)}this.autoAnimateStyleSheet.innerHTML=n.join(""),requestAnimationFrame((()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")})),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}reset(){t(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach((e=>{e.dataset.autoAnimate=""})),t(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach((e=>{delete e.dataset.autoAnimateTarget})),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,t,i,s,a){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=a;let n=this.getAutoAnimateOptions(t,s);void 0!==i.delay&&(n.delay=i.delay),void 0!==i.duration&&(n.duration=i.duration),void 0!==i.easing&&(n.easing=i.easing);let r=this.getAutoAnimatableProperties("from",e,i),o=this.getAutoAnimatableProperties("to",t,i);if(t.classList.contains("fragment")&&(delete o.styles.opacity,e.classList.contains("fragment"))){(e.className.match(S)||[""])[0]===(t.className.match(S)||[""])[0]&&"forward"===s.slideDirection&&t.classList.add("visible","disabled")}if(!1!==i.translate||!1!==i.scale){let e=this.Reveal.getScale(),t={x:(r.x-o.x)/e,y:(r.y-o.y)/e,scaleX:r.width/o.width,scaleY:r.height/o.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let s=!1!==i.translate&&(0!==t.x||0!==t.y),a=!1!==i.scale&&(0!==t.scaleX||0!==t.scaleY);if(s||a){let e=[];s&&e.push(`translate(${t.x}px, ${t.y}px)`),a&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),r.styles.transform=e.join(" "),r.styles["transform-origin"]="top left",o.styles.transform="none"}}for(let e in o.styles){const t=o.styles[e],i=r.styles[e];t===i?delete o.styles[e]:(!0===t.explicitValue&&(o.styles[e]=t.value),!0===i.explicitValue&&(r.styles[e]=i.value))}let l="",d=Object.keys(o.styles);if(d.length>0){r.styles.transition="none",o.styles.transition=`all ${n.duration}s ${n.easing} ${n.delay}s`,o.styles["transition-property"]=d.join(", "),o.styles["will-change"]=d.join(", "),l='[data-auto-animate-target="'+a+'"] {'+Object.keys(r.styles).map((e=>e+": "+r.styles[e]+" !important;")).join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+a+'"] {'+Object.keys(o.styles).map((e=>e+": "+o.styles[e]+" !important;")).join("")+"}"}return l}getAutoAnimateOptions(t,i){let s={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(s=e(s,i),t.parentNode){let e=r(t.parentNode,"[data-auto-animate-target]");e&&(s=this.getAutoAnimateOptions(e,s))}return t.dataset.autoAnimateEasing&&(s.easing=t.dataset.autoAnimateEasing),t.dataset.autoAnimateDuration&&(s.duration=parseFloat(t.dataset.autoAnimateDuration)),t.dataset.autoAnimateDelay&&(s.delay=parseFloat(t.dataset.autoAnimateDelay)),s}getAutoAnimatableProperties(e,t,i){let s=this.Reveal.getConfig(),a={styles:[]};if(!1!==i.translate||!1!==i.scale){let e;if("function"==typeof i.measure)e=i.measure(t);else if(s.center)e=t.getBoundingClientRect();else{let i=this.Reveal.getScale();e={x:t.offsetLeft*i,y:t.offsetTop*i,width:t.offsetWidth*i,height:t.offsetHeight*i}}a.x=e.x,a.y=e.y,a.width=e.width,a.height=e.height}const n=getComputedStyle(t);return(i.styles||s.autoAnimateStyles).forEach((t=>{let i;"string"==typeof t&&(t={property:t}),i=void 0!==t.from&&"from"===e?{value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?{value:t.to,explicitValue:!0}:n[t.property],""!==i&&(a.styles[t.property]=i)})),a}getAutoAnimatableElements(e,t){let i=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),s=[];return i.filter(((e,t)=>{if(-1===s.indexOf(e.to))return s.push(e.to),!0}))}getAutoAnimatePairs(e,t){let i=[];const s="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(i,e,t,"[data-id]",(e=>e.nodeName+":::"+e.getAttribute("data-id"))),this.findAutoAnimateMatches(i,e,t,s,(e=>e.nodeName+":::"+e.innerText)),this.findAutoAnimateMatches(i,e,t,"img, video, iframe",(e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src")))),this.findAutoAnimateMatches(i,e,t,"pre",(e=>e.nodeName+":::"+e.innerText)),i.forEach((e=>{n(e.from,s)?e.options={scale:!1}:n(e.from,"pre")&&(e.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-code",(e=>e.textContent),{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(i,e.from,e.to,".hljs .hljs-ln-line[data-line-number]",(e=>e.getAttribute("data-line-number")),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))}),this),i}getLocalBoundingBox(e){const t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}findAutoAnimateMatches(e,t,i,s,a,n){let r={},o={};[].slice.call(t.querySelectorAll(s)).forEach(((e,t)=>{const i=a(e);"string"==typeof i&&i.length&&(r[i]=r[i]||[],r[i].push(e))})),[].slice.call(i.querySelectorAll(s)).forEach(((t,i)=>{const s=a(t);let l;if(o[s]=o[s]||[],o[s].push(t),r[s]){const e=o[s].length-1,t=r[s].length-1;r[s][e]?(l=r[s][e],r[s][e]=null):r[s][t]&&(l=r[s][t],r[s][t]=null)}l&&e.push({from:l,to:t,options:n})}))}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce(((e,t)=>{const i=t.querySelector("[data-auto-animate-target]");return t.hasAttribute("data-auto-animate-target")||i||e.push(t),t.querySelector("[data-auto-animate-target]")&&(e=e.concat(this.getUnmatchedAutoAnimateElements(t))),e}),[])}}class L{constructor(e){this.Reveal=e}configure(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}disable(){t(this.Reveal.getSlidesElement(),".fragment").forEach((e=>{e.classList.add("visible"),e.classList.remove("current-fragment")}))}enable(){t(this.Reveal.getSlidesElement(),".fragment").forEach((e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")}))}availableRoutes(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let t=e.querySelectorAll(".fragment:not(.disabled)"),i=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-i.length>0,next:!!i.length}}return{prev:!1,next:!1}}sort(e,t=!1){e=Array.from(e);let i=[],s=[],a=[];e.forEach((e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);i[t]||(i[t]=[]),i[t].push(e)}else s.push([e])})),i=i.concat(s);let n=0;return i.forEach((e=>{e.forEach((e=>{a.push(e),e.setAttribute("data-fragment-index",n)})),n++})),!0===t?i:a}sortAll(){this.Reveal.getHorizontalSlides().forEach((e=>{let i=t(e,"section");i.forEach(((e,t)=>{this.sort(e.querySelectorAll(".fragment"))}),this),0===i.length&&this.sort(e.querySelectorAll(".fragment"))}))}update(e,t){let i={shown:[],hidden:[]},s=this.Reveal.getCurrentSlide();if(s&&this.Reveal.getConfig().fragments&&(t=t||this.sort(s.querySelectorAll(".fragment"))).length){let a=0;if("number"!=typeof e){let t=this.sort(s.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach(((t,s)=>{if(t.hasAttribute("data-fragment-index")&&(s=parseInt(t.getAttribute("data-fragment-index"),10)),a=Math.max(a,s),s<=e){let a=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),s===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(t)),t.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(t)),a||(i.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{let e=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),e&&(this.Reveal.slideContent.stopEmbeddedContent(t),i.hidden.push(t),this.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}})),e="number"==typeof e?e:-1,e=Math.max(Math.min(e,a),-1),s.setAttribute("data-fragment",e)}return i}sync(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,t=0){let i=this.Reveal.getCurrentSlide();if(i&&this.Reveal.getConfig().fragments){let s=this.sort(i.querySelectorAll(".fragment:not(.disabled)"));if(s.length){if("number"!=typeof e){let t=this.sort(i.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}e+=t;let a=this.update(e,s);return a.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:a.hidden[0],fragments:a.hidden}}),a.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:a.shown[0],fragments:a.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!a.shown.length&&!a.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class C{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),t(this.Reveal.getRevealElement(),".slides section").forEach((e=>{e.classList.contains("stack")||e.addEventListener("click",this.onSlideClicked,!0)}));const e=70,i=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=i.width+e,this.overviewSlideHeight=i.height+e,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const s=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:s.h,indexv:s.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach(((e,i)=>{e.setAttribute("data-index-h",i),a(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&t(e,"section").forEach(((e,t)=>{e.setAttribute("data-index-h",i),e.setAttribute("data-index-v",t),a(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")}))})),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach(((e,i)=>{a(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),t(e,".slide-background").forEach(((e,t)=>{a(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")}))}))}update(){const e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,i=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-i.h*this.overviewSlideWidth+"px)","translateY("+-i.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout((()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")}),1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),t(this.Reveal.getRevealElement(),".slides section").forEach((e=>{a(e,""),e.removeEventListener("click",this.onSlideClicked,!0)})),t(this.Reveal.getBackgroundsElement(),".slide-background").forEach((e=>{a(e,"")})),this.Reveal.transformSlides({overview:""});const e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){let e=parseInt(t.getAttribute("data-index-h"),10),i=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(e,i)}}}}class x{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}configure(e,t){"linear"===e.navigationMode?(this.shortcuts["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts["P , Shift SPACE"]="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Alt + ←/↑/→/↓"]="Navigate without fragments",this.shortcuts["Shift + ←/↑/→/↓"]="Jump to first/last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}addKeyBinding(e,t){"object"==typeof e&&e.keyCode?this.bindings[e.keyCode]={callback:t,key:e.key,description:e.description}:this.bindings[e]={callback:t,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,t){this.shortcuts[e]=t}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyPress(e){e.shiftKey&&63===e.charCode&&this.Reveal.toggleHelp()}onDocumentKeyDown(e){let t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e))return!0;if("focused"===t.keyboardCondition&&!this.Reveal.isFocused())return!0;let i=e.keyCode,s=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let a=document.activeElement&&!0===document.activeElement.isContentEditable,n=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),r=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),o=!(-1!==[32,37,38,39,40,78,80].indexOf(e.keyCode)&&e.shiftKey||e.altKey)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(a||n||r||o)return;let l,d=[66,86,190,191];if("object"==typeof t.keyboard)for(l in t.keyboard)"togglePause"===t.keyboard[l]&&d.push(parseInt(l,10));if(this.Reveal.isPaused()&&-1===d.indexOf(i))return!1;let c="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),h=!1;if("object"==typeof t.keyboard)for(l in t.keyboard)if(parseInt(l,10)===i){let i=t.keyboard[l];"function"==typeof i?i.apply(null,[e]):"string"==typeof i&&"function"==typeof this.Reveal[i]&&this.Reveal[i].call(),h=!0}if(!1===h)for(l in this.bindings)if(parseInt(l,10)===i){let t=this.bindings[l].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof this.Reveal[t]&&this.Reveal[t].call(),h=!0}!1===h&&(h=!0,80===i||33===i?this.Reveal.prev({skipFragments:e.altKey}):78===i||34===i?this.Reveal.next({skipFragments:e.altKey}):72===i||37===i?e.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&c?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.left({skipFragments:e.altKey}):76===i||39===i?e.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&c?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.right({skipFragments:e.altKey}):75===i||38===i?e.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&c?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.up({skipFragments:e.altKey}):74===i||40===i?e.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&c?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.down({skipFragments:e.altKey}):36===i?this.Reveal.slide(0):35===i?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):32===i?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey})):58===i||59===i||66===i||86===i||190===i||191===i?this.Reveal.togglePause():70===i?(e=>{let t=(e=e||document.documentElement).requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)})(t.embedded?this.Reveal.getViewportElement():document.documentElement):65===i?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(s):h=!1),h?e.preventDefault&&e.preventDefault():27!==i&&79!==i||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class P{constructor(e){var t,i,s;s=1e3,(i="MAX_REPLACE_STATE_FREQUENCY")in(t=this)?Object.defineProperty(t,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[i]=s,this.Reveal=e,this.writeURLTimeout=0,this.replaceStateTimestamp=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}getIndicesFromHash(e=window.location.hash){let t=e.replace(/^#\/?/,""),i=t.split("/");if(/^[0-9]*$/.test(i[0])||!t.length){const e=this.Reveal.getConfig();let t,s=e.hashOneBasedIndex?1:0,a=parseInt(i[0],10)-s||0,n=parseInt(i[1],10)-s||0;return e.fragmentInURL&&(t=parseInt(i[2],10),isNaN(t)&&(t=void 0)),{h:a,v:n,f:t}}{let e,i;/\/[-\d]+$/g.test(t)&&(i=parseInt(t.split("/").pop(),10),i=isNaN(i)?void 0:i,t=t.split("/").shift());try{e=document.getElementById(decodeURIComponent(t))}catch(e){}if(e)return{...this.Reveal.getIndices(e),f:i}}return null}readURL(){const e=this.Reveal.getIndices(),t=this.getIndicesFromHash();t?t.h===e.h&&t.v===e.v&&void 0===t.f||this.Reveal.slide(t.h,t.v,t.f):this.Reveal.slide(e.h||0,e.v||0)}writeURL(e){let t=this.Reveal.getConfig(),i=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),"number"==typeof e)this.writeURLTimeout=setTimeout(this.writeURL,e);else if(i){let e=this.getHash();t.history?window.location.hash=e:t.hash&&("/"===e?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState("#"+e))}}replaceState(e){window.history.replaceState(null,null,e),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(e){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(e):this.replaceStateTimeout=setTimeout((()=>this.replaceState(e)),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(e){let t="/",i=e||this.Reveal.getCurrentSlide(),s=i?i.getAttribute("id"):null;s&&(s=encodeURIComponent(s));let a=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(a.f=void 0),"string"==typeof s&&s.length)t="/"+s,a.f>=0&&(t+="/"+a.f);else{let e=this.Reveal.getConfig().hashOneBasedIndex?1:0;(a.h>0||a.v>0||a.f>=0)&&(t+=a.h+e),(a.v>0||a.f>=0)&&(t+="/"+(a.v+e)),a.f>=0&&(t+="/"+a.f)}return t}onWindowHashChange(e){this.readURL()}}class N{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this)}render(){const e=this.Reveal.getConfig().rtl,i=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`\n\t\t\t\n\t\t\t\n\t\t\t`,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=t(i,".navigate-left"),this.controlsRight=t(i,".navigate-right"),this.controlsUp=t(i,".navigate-up"),this.controlsDown=t(i,".navigate-down"),this.controlsPrev=t(i,".navigate-prev"),this.controlsNext=t(i,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){let e=["touchstart","click"];v&&(e=["touchstart"]),e.forEach((e=>{this.controlsLeft.forEach((t=>t.addEventListener(e,this.onNavigateLeftClicked,!1))),this.controlsRight.forEach((t=>t.addEventListener(e,this.onNavigateRightClicked,!1))),this.controlsUp.forEach((t=>t.addEventListener(e,this.onNavigateUpClicked,!1))),this.controlsDown.forEach((t=>t.addEventListener(e,this.onNavigateDownClicked,!1))),this.controlsPrev.forEach((t=>t.addEventListener(e,this.onNavigatePrevClicked,!1))),this.controlsNext.forEach((t=>t.addEventListener(e,this.onNavigateNextClicked,!1)))}))}unbind(){["touchstart","click"].forEach((e=>{this.controlsLeft.forEach((t=>t.removeEventListener(e,this.onNavigateLeftClicked,!1))),this.controlsRight.forEach((t=>t.removeEventListener(e,this.onNavigateRightClicked,!1))),this.controlsUp.forEach((t=>t.removeEventListener(e,this.onNavigateUpClicked,!1))),this.controlsDown.forEach((t=>t.removeEventListener(e,this.onNavigateDownClicked,!1))),this.controlsPrev.forEach((t=>t.removeEventListener(e,this.onNavigatePrevClicked,!1))),this.controlsNext.forEach((t=>t.removeEventListener(e,this.onNavigateNextClicked,!1)))}))}update(){let e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach((e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")})),e.left&&this.controlsLeft.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")})),e.right&&this.controlsRight.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")})),e.up&&this.controlsUp.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")})),e.down&&this.controlsDown.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.left||e.up)&&this.controlsPrev.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")})),(e.right||e.down)&&this.controlsNext.forEach((e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}));let t=this.Reveal.getCurrentSlide();if(t){let e=this.Reveal.fragments.availableRoutes();e.prev&&this.controlsPrev.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),e.next&&this.controlsNext.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),this.Reveal.isVerticalSlide(t)?(e.prev&&this.controlsUp.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),e.next&&this.controlsDown.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))):(e.prev&&this.controlsLeft.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})),e.next&&this.controlsRight.forEach((e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})))}if(this.Reveal.getConfig().controlsTutorial){let t=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===t.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===t.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}class M{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,t){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){if(this.Reveal.getConfig().progress&&this.bar){let e=this.Reveal.getProgress();this.Reveal.getTotalSlides()<2&&(e=0),this.bar.style.transform="scaleX("+e+")"}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();let t=this.Reveal.getSlides(),i=t.length,s=Math.floor(e.clientX/this.getMaxWidth()*i);this.Reveal.getConfig().rtl&&(s=i-s);let a=this.Reveal.getIndices(t[s]);this.Reveal.slide(a.h,a.v)}destroy(){this.element.remove()}}class D{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,t){e.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}destroy(){this.showCursor(),document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1)}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}const I=(e,t)=>{const i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=e,"function"==typeof t&&(i.onload=i.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,t())},i.onerror=e=>{i.onload=i.onreadystatechange=i.onerror=null,t(new Error("Failed loading script: "+i.src+"\n"+e))});const s=document.querySelector("head");s.insertBefore(i,s.lastChild)};class T{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,t){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise((e=>{let i=[],s=0;if(t.forEach((e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):i.push(e))})),i.length){s=i.length;const t=t=>{t&&"function"==typeof t.callback&&t.callback(),0==--s&&this.initPlugins().then(e)};i.forEach((e=>{"string"==typeof e.id?(this.registerPlugin(e),t(e)):"string"==typeof e.src?I(e.src,(()=>t(e))):(console.warn("Unrecognized plugin format",e),t())}))}else this.initPlugins().then(e)}))}initPlugins(){return new Promise((e=>{let t=Object.values(this.registeredPlugins),i=t.length;if(0===i)this.loadAsync().then(e);else{let s,a=()=>{0==--i?this.loadAsync().then(e):s()},n=0;s=()=>{let e=t[n++];if("function"==typeof e.init){let t=e.init(this.Reveal);t&&"function"==typeof t.then?t.then(a):a()}else a()},s()}}))}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach((e=>{I(e.src,e.callback)})),Promise.resolve()}registerPlugin(e){2===arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());let t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach((e=>{"function"==typeof e.destroy&&e.destroy()})),this.registeredPlugins={},this.asyncDependencies=[]}}class F{constructor(e){this.Reveal=e}async setupPDF(){const e=this.Reveal.getConfig(),i=t(this.Reveal.getRevealElement(),".slides section"),s=e.slideNumber&&/all|print/i.test(e.showSlideNumber),a=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),n=Math.floor(a.width*(1+e.margin)),r=Math.floor(a.height*(1+e.margin)),o=a.width,d=a.height;await new Promise(requestAnimationFrame),l("@page{size:"+n+"px "+r+"px; margin: 0px;}"),l(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+o+"px; max-height:"+d+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=n+"px",document.body.style.height=r+"px";const c=document.querySelector(".reveal-viewport");let h;if(c){const e=window.getComputedStyle(c);e&&e.background&&(h=e.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,d),await new Promise(requestAnimationFrame);const u=i.map((e=>e.scrollHeight)),g=[],v=i[0].parentNode;i.forEach((function(i,a){if(!1===i.classList.contains("stack")){let l=(n-o)/2,c=(r-d)/2;const v=u[a];let p=Math.max(Math.ceil(v/r),1);p=Math.min(p,e.pdfMaxPagesPerSlide),(1===p&&e.center||i.classList.contains("center"))&&(c=Math.max((r-v)/2,0));const m=document.createElement("div");if(g.push(m),m.className="pdf-page",m.style.height=(r+e.pdfPageHeightOffset)*p+"px",h&&(m.style.background=h),m.appendChild(i),i.style.left=l+"px",i.style.top=c+"px",i.style.width=o+"px",this.Reveal.slideContent.layout(i),i.slideBackgroundElement&&m.insertBefore(i.slideBackgroundElement,i),e.showNotes){const t=this.Reveal.getSlideNotes(i);if(t){const i=8,s="string"==typeof e.showNotes?e.showNotes:"inline",a=document.createElement("div");a.classList.add("speaker-notes"),a.classList.add("speaker-notes-pdf"),a.setAttribute("data-layout",s),a.innerHTML=t,"separate-page"===s?g.push(a):(a.style.left=i+"px",a.style.bottom=i+"px",a.style.width=n-2*i+"px",m.appendChild(a))}}if(s){const e=a+1,t=document.createElement("div");t.classList.add("slide-number"),t.classList.add("slide-number-pdf"),t.innerHTML=e,m.appendChild(t)}if(e.pdfSeparateFragments){const e=this.Reveal.fragments.sort(m.querySelectorAll(".fragment"),!0);let t;e.forEach((function(e){t&&t.forEach((function(e){e.classList.remove("current-fragment")})),e.forEach((function(e){e.classList.add("visible","current-fragment")}),this);const i=m.cloneNode(!0);g.push(i),t=e}),this),e.forEach((function(e){e.forEach((function(e){e.classList.remove("visible","current-fragment")}))}))}else t(m,".fragment:not(.fade-out)").forEach((function(e){e.classList.add("visible")}))}}),this),await new Promise(requestAnimationFrame),g.forEach((e=>v.appendChild(e))),this.Reveal.dispatchEvent({type:"pdf-ready"})}isPrintingPDF(){return/print-pdf/gi.test(window.location.search)}}class z{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){let e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){let e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){if(n(e,"video, audio"))return!0;for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;let t=this.Reveal.getConfig();if(this.touchCaptured)v&&e.preventDefault();else{this.Reveal.onUserInput(e);let i=e.touches[0].clientX,s=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){let a=this.Reveal.availableRoutes({includeFragments:!0}),n=i-this.touchStartX,r=s-this.touchStartY;n>40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):n<-40&&Math.abs(n)>Math.abs(r)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):r>40&&a.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):r<-40&&a.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured=!1}onPointerDown(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}class H{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){"focus"!==this.state&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="focus"}blur(){"blur"!==this.state&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state="blur"}isFocused(){return"focus"===this.state}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let t=r(e.target,".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}class q{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'No notes on this slide.')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.print.isPrintingPDF()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelector("aside.notes");return t?t.innerHTML:null}destroy(){this.element.remove()}}class B{constructor(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){const t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){const e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let e=this.playing?this.progress:0,t=this.diameter2-this.thickness,i=this.diameter2,s=this.diameter2,a=28;this.progressOffset+=.1*(1-this.progressOffset);const n=-Math.PI/2+e*(2*Math.PI),r=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(i,s,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(i,s,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(i,s,t,r,n,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(i-14,s-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,a),this.context.fillRect(18,0,10,a)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,a),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var O={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,showHiddenSlides:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,dependencies:[],plugins:[]};function U(n,l){arguments.length<2&&(l=arguments[0],n=document.querySelector(".reveal"));const h={};let u,v,p,m,f,w={},S=!1,A={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},I=[],U=1,W={layout:"",overview:""},K={},V="idle",$=0,j=0,X=-1,Y=!1,_=new b(h),J=new y(h),Q=new k(h),Z=new E(h),G=new L(h),ee=new C(h),te=new x(h),ie=new P(h),se=new N(h),ae=new M(h),ne=new D(h),re=new T(h),oe=new F(h),le=new H(h),de=new z(h),ce=new q(h);function he(e){if(!n)throw'Unable to find presentation root (
    ).';if(K.wrapper=n,K.slides=n.querySelector(".slides"),!K.slides)throw'Unable to find slides container (
    ).';return w={...O,...w,...l,...e,...d()},ue(),window.addEventListener("load",He,!1),re.load(w.plugins,w.dependencies).then(ge),new Promise((e=>h.on("ready",e)))}function ue(){!0===w.embedded?K.viewport=r(n,".reveal-viewport")||n:(K.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),K.viewport.classList.add("reveal-viewport")}function ge(){S=!0,ve(),pe(),Ee(),ye(),we(),tt(),Re(),ie.readURL(),Z.update(!0),setTimeout((()=>{K.slides.classList.remove("no-transition"),K.wrapper.classList.add("ready"),Pe({type:"ready",data:{indexh:u,indexv:v,currentSlide:m}})}),1),oe.isPrintingPDF()&&(Ae(),"complete"===document.readyState?oe.setupPDF():window.addEventListener("load",(()=>{oe.setupPDF()})))}function ve(){w.showHiddenSlides||t(K.wrapper,'section[data-visibility="hidden"]').forEach((e=>{e.parentNode.removeChild(e)}))}function pe(){K.slides.classList.add("no-transition"),g?K.wrapper.classList.add("no-hover"):K.wrapper.classList.remove("no-hover"),Z.render(),J.render(),se.render(),ae.render(),ce.render(),K.pauseOverlay=o(K.wrapper,"div","pause-overlay",w.controls?'':null),K.statusElement=me(),K.wrapper.setAttribute("role","application")}function me(){let e=K.wrapper.querySelector(".aria-status");return e||(e=document.createElement("div"),e.style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),K.wrapper.appendChild(e)),e}function fe(e){K.statusElement.textContent=e}function be(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let i=e.getAttribute("aria-hidden"),s="none"===window.getComputedStyle(e).display;"true"===i||s||Array.from(e.childNodes).forEach((e=>{t+=be(e)}))}return t=t.trim(),""===t?"":t+" "}function ye(){setInterval((()=>{0===K.wrapper.scrollTop&&0===K.wrapper.scrollLeft||(K.wrapper.scrollTop=0,K.wrapper.scrollLeft=0)}),1e3)}function we(){document.addEventListener("fullscreenchange",Ht),document.addEventListener("webkitfullscreenchange",Ht)}function Ee(){w.postMessage&&window.addEventListener("message",Dt,!1)}function Re(t){const s={...w};if("object"==typeof t&&e(w,t),!1===h.isReady())return;const a=K.wrapper.querySelectorAll(".slides section").length;K.wrapper.classList.remove(s.transition),K.wrapper.classList.add(w.transition),K.wrapper.setAttribute("data-transition-speed",w.transitionSpeed),K.wrapper.setAttribute("data-background-transition",w.backgroundTransition),K.viewport.style.setProperty("--slide-width",w.width+"px"),K.viewport.style.setProperty("--slide-height",w.height+"px"),w.shuffle&&it(),i(K.wrapper,"embedded",w.embedded),i(K.wrapper,"rtl",w.rtl),i(K.wrapper,"center",w.center),!1===w.pause&&Xe(),w.previewLinks?(Me(),De("[data-preview-link=false]")):(De(),Me("[data-preview-link]:not([data-preview-link=false])")),Q.reset(),f&&(f.destroy(),f=null),a>1&&w.autoSlide&&w.autoSlideStoppable&&(f=new B(K.wrapper,(()=>Math.min(Math.max((Date.now()-X)/$,0),1))),f.on("click",Bt),Y=!1),"default"!==w.navigationMode?K.wrapper.setAttribute("data-navigation-mode",w.navigationMode):K.wrapper.removeAttribute("data-navigation-mode"),ce.configure(w,s),le.configure(w,s),ne.configure(w,s),se.configure(w,s),ae.configure(w,s),te.configure(w,s),G.configure(w,s),J.configure(w,s),Ge()}function Se(){window.addEventListener("resize",Ft,!1),w.touch&&de.bind(),w.keyboard&&te.bind(),w.progress&&ae.bind(),w.respondToHashChanges&&ie.bind(),se.bind(),le.bind(),K.slides.addEventListener("click",Tt,!1),K.slides.addEventListener("transitionend",It,!1),K.pauseOverlay.addEventListener("click",Xe,!1),w.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",zt,!1)}function Ae(){de.unbind(),le.unbind(),te.unbind(),se.unbind(),ae.unbind(),ie.unbind(),window.removeEventListener("resize",Ft,!1),K.slides.removeEventListener("click",Tt,!1),K.slides.removeEventListener("transitionend",It,!1),K.pauseOverlay.removeEventListener("click",Xe,!1)}function ke(){Ae(),Rt(),De(),ce.destroy(),le.destroy(),re.destroy(),ne.destroy(),se.destroy(),ae.destroy(),Z.destroy(),J.destroy(),document.removeEventListener("fullscreenchange",Ht),document.removeEventListener("webkitfullscreenchange",Ht),document.removeEventListener("visibilitychange",zt,!1),window.removeEventListener("message",Dt,!1),window.removeEventListener("load",He,!1),K.pauseOverlay&&K.pauseOverlay.remove(),K.statusElement&&K.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),K.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),K.wrapper.removeAttribute("data-transition-speed"),K.wrapper.removeAttribute("data-background-transition"),K.viewport.classList.remove("reveal-viewport"),K.viewport.style.removeProperty("--slide-width"),K.viewport.style.removeProperty("--slide-height"),K.slides.style.removeProperty("width"),K.slides.style.removeProperty("height"),K.slides.style.removeProperty("zoom"),K.slides.style.removeProperty("left"),K.slides.style.removeProperty("top"),K.slides.style.removeProperty("bottom"),K.slides.style.removeProperty("right"),K.slides.style.removeProperty("transform"),Array.from(K.wrapper.querySelectorAll(".slides section")).forEach((e=>{e.style.removeProperty("display"),e.style.removeProperty("top"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden")}))}function Le(e,t,i){n.addEventListener(e,t,i)}function Ce(e,t,i){n.removeEventListener(e,t,i)}function xe(e){"string"==typeof e.layout&&(W.layout=e.layout),"string"==typeof e.overview&&(W.overview=e.overview),W.layout?a(K.slides,W.layout+" "+W.overview):a(K.slides,W.overview)}function Pe({target:t=K.wrapper,type:i,data:s,bubbles:a=!0}){let n=document.createEvent("HTMLEvents",1,2);return n.initEvent(i,a,!0),e(n,s),t.dispatchEvent(n),t===K.wrapper&&Ne(i),n}function Ne(t,i){if(w.postMessageEvents&&window.parent!==window.self){let s={namespace:"reveal",eventName:t,state:yt()};e(s,i),window.parent.postMessage(JSON.stringify(s),"*")}}function Me(e="a"){Array.from(K.wrapper.querySelectorAll(e)).forEach((e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",qt,!1)}))}function De(e="a"){Array.from(K.wrapper.querySelectorAll(e)).forEach((e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",qt,!1)}))}function Ie(e){ze(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-preview"),K.wrapper.appendChild(K.overlay),K.overlay.innerHTML=`
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tUnable to load iframe. This is likely due to the site's policy (x-frame-options).\n\t\t\t\t\n\t\t\t
    `,K.overlay.querySelector("iframe").addEventListener("load",(e=>{K.overlay.classList.add("loaded")}),!1),K.overlay.querySelector(".close").addEventListener("click",(e=>{ze(),e.preventDefault()}),!1),K.overlay.querySelector(".external").addEventListener("click",(e=>{ze()}),!1)}function Te(e){"boolean"==typeof e?e?Fe():ze():K.overlay?ze():Fe()}function Fe(){if(w.help){ze(),K.overlay=document.createElement("div"),K.overlay.classList.add("overlay"),K.overlay.classList.add("overlay-help"),K.wrapper.appendChild(K.overlay);let e='

    Keyboard Shortcuts


    ',t=te.getShortcuts(),i=te.getBindings();e+="";for(let i in t)e+=``;for(let t in i)i[t].key&&i[t].description&&(e+=``);e+="
    KEYACTION
    ${i}${t[i]}
    ${i[t].key}${i[t].description}
    ",K.overlay.innerHTML=`\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    ${e}
    \n\t\t\t\t
    \n\t\t\t`,K.overlay.querySelector(".close").addEventListener("click",(e=>{ze(),e.preventDefault()}),!1)}}function ze(){return!!K.overlay&&(K.overlay.parentNode.removeChild(K.overlay),K.overlay=null,!0)}function He(){if(K.wrapper&&!oe.isPrintingPDF()){if(!w.disableLayout){g&&!w.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const e=Be(),t=U;qe(w.width,w.height),K.slides.style.width=e.width+"px",K.slides.style.height=e.height+"px",U=Math.min(e.presentationWidth/e.width,e.presentationHeight/e.height),U=Math.max(U,w.minScale),U=Math.min(U,w.maxScale),1===U?(K.slides.style.zoom="",K.slides.style.left="",K.slides.style.top="",K.slides.style.bottom="",K.slides.style.right="",xe({layout:""})):(K.slides.style.zoom="",K.slides.style.left="50%",K.slides.style.top="50%",K.slides.style.bottom="auto",K.slides.style.right="auto",xe({layout:"translate(-50%, -50%) scale("+U+")"}));const i=Array.from(K.wrapper.querySelectorAll(".slides section"));for(let t=0,s=i.length;t .stretch, section > .r-stretch").forEach((t=>{let s=c(t,i);if(/(img|video)/gi.test(t.nodeName)){const i=t.naturalWidth||t.videoWidth,a=t.naturalHeight||t.videoHeight,n=Math.min(e/i,s/a);t.style.width=i*n+"px",t.style.height=a*n+"px"}else t.style.width=e+"px",t.style.height=s+"px"}))}function Be(e,t){const i={width:w.width,height:w.height,presentationWidth:e||K.wrapper.offsetWidth,presentationHeight:t||K.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*w.margin,i.presentationHeight-=i.presentationHeight*w.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function Oe(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function Ue(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){const t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function We(e=m){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function Ke(){return!(!m||!We(m))&&!m.nextElementSibling}function Ve(){return 0===u&&0===v}function $e(){return!!m&&(!m.nextElementSibling&&(!We(m)||!m.parentNode.nextElementSibling))}function je(){if(w.pause){const e=K.wrapper.classList.contains("paused");Rt(),K.wrapper.classList.add("paused"),!1===e&&Pe({type:"paused"})}}function Xe(){const e=K.wrapper.classList.contains("paused");K.wrapper.classList.remove("paused"),Et(),e&&Pe({type:"resumed"})}function Ye(e){"boolean"==typeof e?e?je():Xe():_e()?Xe():je()}function _e(){return K.wrapper.classList.contains("paused")}function Je(e){"boolean"==typeof e?e?At():St():Y?At():St()}function Qe(){return!(!$||Y)}function Ze(e,t,i,s){if(Pe({type:"beforeslidechange",data:{indexh:void 0===e?u:e,indexv:void 0===t?v:t,origin:s}}).defaultPrevented)return;p=m;const a=K.wrapper.querySelectorAll(".slides>section");if(0===a.length)return;void 0!==t||ee.isActive()||(t=Ue(a[e])),p&&p.parentNode&&p.parentNode.classList.contains("stack")&&Oe(p.parentNode,v);const n=I.concat();I.length=0;let r=u||0,o=v||0;u=st(".slides>section",void 0===e?u:e),v=st(".slides>section.present>section",void 0===t?v:t);let l=u!==r||v!==o;l||(p=null);let d=a[u],c=d.querySelectorAll("section");m=c[v]||d;let h=!1;l&&p&&m&&!ee.isActive()&&(p.hasAttribute("data-auto-animate")&&m.hasAttribute("data-auto-animate")&&p.getAttribute("data-auto-animate-id")===m.getAttribute("data-auto-animate-id")&&!(u>r||v>o?m:p).hasAttribute("data-auto-animate-restart")&&(h=!0,K.slides.classList.add("disable-slide-transitions")),V="running"),at(),He(),ee.isActive()&&ee.update(),void 0!==i&&G.goto(i),p&&p!==m&&(p.classList.remove("present"),p.setAttribute("aria-hidden","true"),Ve()&&setTimeout((()=>{ut().forEach((e=>{Oe(e,0)}))}),0));e:for(let e=0,t=I.length;e{fe(be(m))})),ae.update(),se.update(),ce.update(),Z.update(),Z.updateParallax(),J.update(),G.update(),ie.writeURL(),Et(),h&&(setTimeout((()=>{K.slides.classList.remove("disable-slide-transitions")}),0),w.autoAnimate&&Q.run(p,m))}function Ge(){Ae(),Se(),He(),$=w.autoSlide,Et(),Z.create(),ie.writeURL(),G.sortAll(),se.update(),ae.update(),at(),ce.update(),ce.updateVisibility(),Z.update(!0),J.update(),_.formatEmbeddedContent(),!1===w.autoPlayMedia?_.stopEmbeddedContent(m,{unloadIframes:!1}):_.startEmbeddedContent(m),ee.isActive()&&ee.layout()}function et(e=m){Z.sync(e),G.sync(e),_.load(e),Z.update(),ce.update()}function tt(){ct().forEach((e=>{t(e,"section").forEach(((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))}))}))}function it(e=ct()){e.forEach(((t,i)=>{let s=e[Math.floor(Math.random()*e.length)];s.parentNode===t.parentNode&&t.parentNode.insertBefore(t,s);let a=t.querySelectorAll("section");a.length&&it(a)}))}function st(e,i){let s=t(K.wrapper,e),a=s.length,n=oe.isPrintingPDF();if(a){w.loop&&(i%=a)<0&&(i=a+i),i=Math.max(Math.min(i,a-1),0);for(let e=0;e{e.classList.add("visible"),e.classList.remove("current-fragment")}))):e>i&&(a.classList.add(r?"past":"future"),w.fragments&&t(a,".fragment.visible").forEach((e=>{e.classList.remove("visible","current-fragment")})))}let e=s[i],r=e.classList.contains("present");e.classList.add("present"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),r||Pe({target:e,type:"visible",bubbles:!1});let o=e.getAttribute("data-state");o&&(I=I.concat(o.split(" ")))}else i=0;return i}function at(){let e,i,s=ct(),a=s.length;if(a&&void 0!==u){let n=ee.isActive()?10:w.viewDistance;g&&(n=ee.isActive()?6:w.mobileViewDistance),oe.isPrintingPDF()&&(n=Number.MAX_VALUE);for(let r=0;rsection"),i=K.wrapper.querySelectorAll(".slides>section.present>section"),s={left:u>0,right:u0,down:v1&&(s.left=!0,s.right=!0),i.length>1&&(s.up=!0,s.down=!0)),t.length>1&&"linear"===w.navigationMode&&(s.right=s.right||s.down,s.left=s.left||s.up),!0===e){let e=G.availableRoutes();s.left=s.left||e.prev,s.up=s.up||e.prev,s.down=s.down||e.next,s.right=s.right||e.next}if(w.rtl){let e=s.left;s.left=s.right,s.right=e}return s}function rt(e=m){let t=ct(),i=0;e:for(let s=0;s0){let i=.9;t+=m.querySelectorAll(".fragment.visible").length/e.length*i}}return Math.min(t/(e-1),1)}function lt(e){let i,s=u,a=v;if(e){let i=We(e),n=i?e.parentNode:e,r=ct();s=Math.max(r.indexOf(n),0),a=void 0,i&&(a=Math.max(t(e.parentNode,"section").indexOf(e),0))}if(!e&&m){if(m.querySelectorAll(".fragment").length>0){let e=m.querySelector(".current-fragment");i=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):m.querySelectorAll(".fragment.visible").length-1}}return{h:s,v:a,f:i}}function dt(){return t(K.wrapper,'.slides section:not(.stack):not([data-visibility="uncounted"])')}function ct(){return t(K.wrapper,".slides>section")}function ht(){return t(K.wrapper,".slides>section>section")}function ut(){return t(K.wrapper,".slides>section.stack")}function gt(){return ct().length>1}function vt(){return ht().length>1}function pt(){return dt().map((e=>{let t={};for(let i=0;i{e.hasAttribute("data-autoplay")&&$&&1e3*e.duration/e.playbackRate>$&&($=1e3*e.duration/e.playbackRate+1e3)}))),!$||Y||_e()||ee.isActive()||$e()&&!G.availableRoutes().next&&!0!==w.loop||(j=setTimeout((()=>{"function"==typeof w.autoSlideMethod?w.autoSlideMethod():Nt(),Et()}),$),X=Date.now()),f&&f.setPlaying(-1!==j)}}function Rt(){clearTimeout(j),j=-1}function St(){$&&!Y&&(Y=!0,Pe({type:"autoslidepaused"}),clearTimeout(j),f&&f.setPlaying(!1))}function At(){$&&Y&&(Y=!1,Pe({type:"autoslideresumed"}),Et())}function kt({skipFragments:e=!1}={}){A.hasNavigatedHorizontally=!0,w.rtl?(ee.isActive()||e||!1===G.next())&&nt().left&&Ze(u+1,"grid"===w.navigationMode?v:void 0):(ee.isActive()||e||!1===G.prev())&&nt().left&&Ze(u-1,"grid"===w.navigationMode?v:void 0)}function Lt({skipFragments:e=!1}={}){A.hasNavigatedHorizontally=!0,w.rtl?(ee.isActive()||e||!1===G.prev())&&nt().right&&Ze(u-1,"grid"===w.navigationMode?v:void 0):(ee.isActive()||e||!1===G.next())&&nt().right&&Ze(u+1,"grid"===w.navigationMode?v:void 0)}function Ct({skipFragments:e=!1}={}){(ee.isActive()||e||!1===G.prev())&&nt().up&&Ze(u,v-1)}function xt({skipFragments:e=!1}={}){A.hasNavigatedVertically=!0,(ee.isActive()||e||!1===G.next())&&nt().down&&Ze(u,v+1)}function Pt({skipFragments:e=!1}={}){if(e||!1===G.prev())if(nt().up)Ct({skipFragments:e});else{let i;if(i=w.rtl?t(K.wrapper,".slides>section.future").pop():t(K.wrapper,".slides>section.past").pop(),i&&i.classList.contains("stack")){let e=i.querySelectorAll("section").length-1||void 0;Ze(u-1,e)}else kt({skipFragments:e})}}function Nt({skipFragments:e=!1}={}){if(A.hasNavigatedHorizontally=!0,A.hasNavigatedVertically=!0,e||!1===G.next()){let t=nt();t.down&&t.right&&w.loop&&Ke()&&(t.down=!1),t.down?xt({skipFragments:e}):w.rtl?kt({skipFragments:e}):Lt({skipFragments:e})}}function Mt(e){w.autoSlideStoppable&&St()}function Dt(e){let t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t),t.method&&"function"==typeof h[t.method]))if(!1===R.test(t.method)){const e=h[t.method].apply(h,t.args);Ne("callback",{method:t.method,result:e})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')}function It(e){"running"===V&&/section/gi.test(e.target.nodeName)&&(V="idle",Pe({type:"slidetransitionend",data:{indexh:u,indexv:v,previousSlide:p,currentSlide:m}}))}function Tt(e){const t=r(e.target,'a[href^="#"]');if(t){const i=t.getAttribute("href"),s=ie.getIndicesFromHash(i);s&&(h.slide(s.h,s.v,s.f),e.preventDefault())}}function Ft(e){He()}function zt(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function Ht(e){(document.fullscreenElement||document.webkitFullscreenElement)===K.wrapper&&(e.stopImmediatePropagation(),setTimeout((()=>{h.layout(),h.focus.focus()}),1))}function qt(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(Ie(t),e.preventDefault())}}function Bt(e){$e()&&!1===w.loop?(Ze(0,0),At()):Y?At():St()}const Ot={VERSION:"4.3.1",initialize:he,configure:Re,destroy:ke,sync:Ge,syncSlide:et,syncFragments:G.sync.bind(G),slide:Ze,left:kt,right:Lt,up:Ct,down:xt,prev:Pt,next:Nt,navigateLeft:kt,navigateRight:Lt,navigateUp:Ct,navigateDown:xt,navigatePrev:Pt,navigateNext:Nt,navigateFragment:G.goto.bind(G),prevFragment:G.prev.bind(G),nextFragment:G.next.bind(G),on:Le,off:Ce,addEventListener:Le,removeEventListener:Ce,layout:He,shuffle:it,availableRoutes:nt,availableFragments:G.availableRoutes.bind(G),toggleHelp:Te,toggleOverview:ee.toggle.bind(ee),togglePause:Ye,toggleAutoSlide:Je,isFirstSlide:Ve,isLastSlide:$e,isLastVerticalSlide:Ke,isVerticalSlide:We,isPaused:_e,isAutoSliding:Qe,isSpeakerNotes:ce.isSpeakerNotesWindow.bind(ce),isOverview:ee.isActive.bind(ee),isFocused:le.isFocused.bind(le),isPrintingPDF:oe.isPrintingPDF.bind(oe),isReady:()=>S,loadSlide:_.load.bind(_),unloadSlide:_.unload.bind(_),showPreview:Ie,hidePreview:ze,addEventListeners:Se,removeEventListeners:Ae,dispatchEvent:Pe,getState:yt,setState:wt,getProgress:ot,getIndices:lt,getSlidesAttributes:pt,getSlidePastCount:rt,getTotalSlides:mt,getSlide:ft,getPreviousSlide:()=>p,getCurrentSlide:()=>m,getSlideBackground:bt,getSlideNotes:ce.getSlideNotes.bind(ce),getSlides:dt,getHorizontalSlides:ct,getVerticalSlides:ht,hasHorizontalSlides:gt,hasVerticalSlides:vt,hasNavigatedHorizontally:()=>A.hasNavigatedHorizontally,hasNavigatedVertically:()=>A.hasNavigatedVertically,addKeyBinding:te.addKeyBinding.bind(te),removeKeyBinding:te.removeKeyBinding.bind(te),triggerKey:te.triggerKey.bind(te),registerKeyboardShortcut:te.registerKeyboardShortcut.bind(te),getComputedSlideSize:Be,getScale:()=>U,getConfig:()=>w,getQueryHash:d,getSlidePath:ie.getHash.bind(ie),getRevealElement:()=>n,getSlidesElement:()=>K.slides,getViewportElement:()=>K.viewport,getBackgroundsElement:()=>Z.element,registerPlugin:re.registerPlugin.bind(re),hasPlugin:re.hasPlugin.bind(re),getPlugin:re.getPlugin.bind(re),getPlugins:re.getRegisteredPlugins.bind(re)};return e(h,{...Ot,announceStatus:fe,getStatusText:be,print:oe,focus:le,progress:ae,controls:se,location:ie,overview:ee,fragments:G,slideContent:_,slideNumber:J,onUserInput:Mt,closeOverlay:ze,updateSlidesVisibility:at,layoutSlideContents:qe,transformSlides:xe,cueAutoSlide:Et,cancelAutoSlide:Rt}),Ot}let W=U,K=[];W.initialize=e=>(Object.assign(W,new U(document.querySelector(".reveal"),e)),K.map((e=>e(W))),W.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach((e=>{W[e]=(...t)=>{K.push((i=>i[e].call(null,...t)))}})),W.isReady=()=>!1,W.VERSION="4.3.1";export default W; +//# sourceMappingURL=reveal.esm.js.map diff --git a/test_files/libs/revealjs/dist/reveal.esm.js.map b/test_files/libs/revealjs/dist/reveal.esm.js.map new file mode 100644 index 000000000..286c75a21 --- /dev/null +++ b/test_files/libs/revealjs/dist/reveal.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reveal.esm.js","sources":["../js/utils/util.js","../js/utils/device.js","../node_modules/fitty/dist/fitty.module.js","../js/controllers/slidecontent.js","../js/controllers/slidenumber.js","../js/utils/color.js","../js/controllers/backgrounds.js","../js/utils/constants.js","../js/controllers/autoanimate.js","../js/controllers/fragments.js","../js/controllers/overview.js","../js/controllers/keyboard.js","../js/controllers/location.js","../js/controllers/controls.js","../js/controllers/progress.js","../js/controllers/pointer.js","../js/utils/loader.js","../js/controllers/plugins.js","../js/controllers/print.js","../js/controllers/touch.js","../js/controllers/focus.js","../js/controllers/notes.js","../js/components/playback.js","../js/config.js","../js/reveal.js","../js/index.js"],"sourcesContent":["/**\n * Extend object a with the properties of object b.\n * If there's a conflict, object b takes precedence.\n *\n * @param {object} a\n * @param {object} b\n */\nexport const extend = ( a, b ) => {\n\n\tfor( let i in b ) {\n\t\ta[ i ] = b[ i ];\n\t}\n\n\treturn a;\n\n}\n\n/**\n * querySelectorAll but returns an Array.\n */\nexport const queryAll = ( el, selector ) => {\n\n\treturn Array.from( el.querySelectorAll( selector ) );\n\n}\n\n/**\n * classList.toggle() with cross browser support\n */\nexport const toggleClass = ( el, className, value ) => {\n\tif( value ) {\n\t\tel.classList.add( className );\n\t}\n\telse {\n\t\tel.classList.remove( className );\n\t}\n}\n\n/**\n * Utility for deserializing a value.\n *\n * @param {*} value\n * @return {*}\n */\nexport const deserialize = ( value ) => {\n\n\tif( typeof value === 'string' ) {\n\t\tif( value === 'null' ) return null;\n\t\telse if( value === 'true' ) return true;\n\t\telse if( value === 'false' ) return false;\n\t\telse if( value.match( /^-?[\\d\\.]+$/ ) ) return parseFloat( value );\n\t}\n\n\treturn value;\n\n}\n\n/**\n * Measures the distance in pixels between point a\n * and point b.\n *\n * @param {object} a point with x/y properties\n * @param {object} b point with x/y properties\n *\n * @return {number}\n */\nexport const distanceBetween = ( a, b ) => {\n\n\tlet dx = a.x - b.x,\n\t\tdy = a.y - b.y;\n\n\treturn Math.sqrt( dx*dx + dy*dy );\n\n}\n\n/**\n * Applies a CSS transform to the target element.\n *\n * @param {HTMLElement} element\n * @param {string} transform\n */\nexport const transformElement = ( element, transform ) => {\n\n\telement.style.transform = transform;\n\n}\n\n/**\n * Element.matches with IE support.\n *\n * @param {HTMLElement} target The element to match\n * @param {String} selector The CSS selector to match\n * the element against\n *\n * @return {Boolean}\n */\nexport const matches = ( target, selector ) => {\n\n\tlet matchesMethod = target.matches || target.matchesSelector || target.msMatchesSelector;\n\n\treturn !!( matchesMethod && matchesMethod.call( target, selector ) );\n\n}\n\n/**\n * Find the closest parent that matches the given\n * selector.\n *\n * @param {HTMLElement} target The child element\n * @param {String} selector The CSS selector to match\n * the parents against\n *\n * @return {HTMLElement} The matched parent or null\n * if no matching parent was found\n */\nexport const closest = ( target, selector ) => {\n\n\t// Native Element.closest\n\tif( typeof target.closest === 'function' ) {\n\t\treturn target.closest( selector );\n\t}\n\n\t// Polyfill\n\twhile( target ) {\n\t\tif( matches( target, selector ) ) {\n\t\t\treturn target;\n\t\t}\n\n\t\t// Keep searching\n\t\ttarget = target.parentNode;\n\t}\n\n\treturn null;\n\n}\n\n/**\n * Handling the fullscreen functionality via the fullscreen API\n *\n * @see http://fullscreen.spec.whatwg.org/\n * @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode\n */\nexport const enterFullscreen = element => {\n\n\telement = element || document.documentElement;\n\n\t// Check which implementation is available\n\tlet requestMethod = element.requestFullscreen ||\n\t\t\t\t\t\telement.webkitRequestFullscreen ||\n\t\t\t\t\t\telement.webkitRequestFullScreen ||\n\t\t\t\t\t\telement.mozRequestFullScreen ||\n\t\t\t\t\t\telement.msRequestFullscreen;\n\n\tif( requestMethod ) {\n\t\trequestMethod.apply( element );\n\t}\n\n}\n\n/**\n * Creates an HTML element and returns a reference to it.\n * If the element already exists the existing instance will\n * be returned.\n *\n * @param {HTMLElement} container\n * @param {string} tagname\n * @param {string} classname\n * @param {string} innerHTML\n *\n * @return {HTMLElement}\n */\nexport const createSingletonNode = ( container, tagname, classname, innerHTML='' ) => {\n\n\t// Find all nodes matching the description\n\tlet nodes = container.querySelectorAll( '.' + classname );\n\n\t// Check all matches to find one which is a direct child of\n\t// the specified container\n\tfor( let i = 0; i < nodes.length; i++ ) {\n\t\tlet testNode = nodes[i];\n\t\tif( testNode.parentNode === container ) {\n\t\t\treturn testNode;\n\t\t}\n\t}\n\n\t// If no node was found, create it now\n\tlet node = document.createElement( tagname );\n\tnode.className = classname;\n\tnode.innerHTML = innerHTML;\n\tcontainer.appendChild( node );\n\n\treturn node;\n\n}\n\n/**\n * Injects the given CSS styles into the DOM.\n *\n * @param {string} value\n */\nexport const createStyleSheet = ( value ) => {\n\n\tlet tag = document.createElement( 'style' );\n\ttag.type = 'text/css';\n\n\tif( value && value.length > 0 ) {\n\t\tif( tag.styleSheet ) {\n\t\t\ttag.styleSheet.cssText = value;\n\t\t}\n\t\telse {\n\t\t\ttag.appendChild( document.createTextNode( value ) );\n\t\t}\n\t}\n\n\tdocument.head.appendChild( tag );\n\n\treturn tag;\n\n}\n\n/**\n * Returns a key:value hash of all query params.\n */\nexport const getQueryHash = () => {\n\n\tlet query = {};\n\n\tlocation.search.replace( /[A-Z0-9]+?=([\\w\\.%-]*)/gi, a => {\n\t\tquery[ a.split( '=' ).shift() ] = a.split( '=' ).pop();\n\t} );\n\n\t// Basic deserialization\n\tfor( let i in query ) {\n\t\tlet value = query[ i ];\n\n\t\tquery[ i ] = deserialize( unescape( value ) );\n\t}\n\n\t// Do not accept new dependencies via query config to avoid\n\t// the potential of malicious script injection\n\tif( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];\n\n\treturn query;\n\n}\n\n/**\n * Returns the remaining height within the parent of the\n * target element.\n *\n * remaining height = [ configured parent height ] - [ current parent height ]\n *\n * @param {HTMLElement} element\n * @param {number} [height]\n */\nexport const getRemainingHeight = ( element, height = 0 ) => {\n\n\tif( element ) {\n\t\tlet newHeight, oldHeight = element.style.height;\n\n\t\t// Change the .stretch element height to 0 in order find the height of all\n\t\t// the other elements\n\t\telement.style.height = '0px';\n\n\t\t// In Overview mode, the parent (.slide) height is set of 700px.\n\t\t// Restore it temporarily to its natural height.\n\t\telement.parentNode.style.height = 'auto';\n\n\t\tnewHeight = height - element.parentNode.offsetHeight;\n\n\t\t// Restore the old height, just in case\n\t\telement.style.height = oldHeight + 'px';\n\n\t\t// Clear the parent (.slide) height. .removeProperty works in IE9+\n\t\telement.parentNode.style.removeProperty('height');\n\n\t\treturn newHeight;\n\t}\n\n\treturn height;\n\n}\n\nconst fileExtensionToMimeMap = {\n\t'mp4': 'video/mp4',\n\t'm4a': 'video/mp4',\n\t'ogv': 'video/ogg',\n\t'mpeg': 'video/mpeg',\n\t'webm': 'video/webm'\n}\n\n/**\n * Guess the MIME type for common file formats.\n */\nexport const getMimeTypeFromFile = ( filename='' ) => {\n\treturn fileExtensionToMimeMap[filename.split('.').pop()]\n}","const UA = navigator.userAgent;\n\nexport const isMobile = /(iphone|ipod|ipad|android)/gi.test( UA ) ||\n\t\t\t\t\t\t( navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 ); // iPadOS\n\nexport const isChrome = /chrome/i.test( UA ) && !/edge/i.test( UA );\n\nexport const isAndroid = /android/gi.test( UA );","/*\n * fitty v2.3.3 - Snugly resizes text to fit its parent container\n * Copyright (c) 2020 Rik Schennink (https://pqina.nl/)\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = function (w) {\n\n // no window, early exit\n if (!w) return;\n\n // node list to array helper method\n var toArray = function toArray(nl) {\n return [].slice.call(nl);\n };\n\n // states\n var DrawState = {\n IDLE: 0,\n DIRTY_CONTENT: 1,\n DIRTY_LAYOUT: 2,\n DIRTY: 3\n };\n\n // all active fitty elements\n var fitties = [];\n\n // group all redraw calls till next frame, we cancel each frame request when a new one comes in. If no support for request animation frame, this is an empty function and supports for fitty stops.\n var redrawFrame = null;\n var requestRedraw = 'requestAnimationFrame' in w ? function () {\n w.cancelAnimationFrame(redrawFrame);\n redrawFrame = w.requestAnimationFrame(function () {\n return redraw(fitties.filter(function (f) {\n return f.dirty && f.active;\n }));\n });\n } : function () {};\n\n // sets all fitties to dirty so they are redrawn on the next redraw loop, then calls redraw\n var redrawAll = function redrawAll(type) {\n return function () {\n fitties.forEach(function (f) {\n return f.dirty = type;\n });\n requestRedraw();\n };\n };\n\n // redraws fitties so they nicely fit their parent container\n var redraw = function redraw(fitties) {\n\n // getting info from the DOM at this point should not trigger a reflow, let's gather as much intel as possible before triggering a reflow\n\n // check if styles of all fitties have been computed\n fitties.filter(function (f) {\n return !f.styleComputed;\n }).forEach(function (f) {\n f.styleComputed = computeStyle(f);\n });\n\n // restyle elements that require pre-styling, this triggers a reflow, please try to prevent by adding CSS rules (see docs)\n fitties.filter(shouldPreStyle).forEach(applyStyle);\n\n // we now determine which fitties should be redrawn\n var fittiesToRedraw = fitties.filter(shouldRedraw);\n\n // we calculate final styles for these fitties\n fittiesToRedraw.forEach(calculateStyles);\n\n // now we apply the calculated styles from our previous loop\n fittiesToRedraw.forEach(function (f) {\n applyStyle(f);\n markAsClean(f);\n });\n\n // now we dispatch events for all restyled fitties\n fittiesToRedraw.forEach(dispatchFitEvent);\n };\n\n var markAsClean = function markAsClean(f) {\n return f.dirty = DrawState.IDLE;\n };\n\n var calculateStyles = function calculateStyles(f) {\n\n // get available width from parent node\n f.availableWidth = f.element.parentNode.clientWidth;\n\n // the space our target element uses\n f.currentWidth = f.element.scrollWidth;\n\n // remember current font size\n f.previousFontSize = f.currentFontSize;\n\n // let's calculate the new font size\n f.currentFontSize = Math.min(Math.max(f.minSize, f.availableWidth / f.currentWidth * f.previousFontSize), f.maxSize);\n\n // if allows wrapping, only wrap when at minimum font size (otherwise would break container)\n f.whiteSpace = f.multiLine && f.currentFontSize === f.minSize ? 'normal' : 'nowrap';\n };\n\n // should always redraw if is not dirty layout, if is dirty layout, only redraw if size has changed\n var shouldRedraw = function shouldRedraw(f) {\n return f.dirty !== DrawState.DIRTY_LAYOUT || f.dirty === DrawState.DIRTY_LAYOUT && f.element.parentNode.clientWidth !== f.availableWidth;\n };\n\n // every fitty element is tested for invalid styles\n var computeStyle = function computeStyle(f) {\n\n // get style properties\n var style = w.getComputedStyle(f.element, null);\n\n // get current font size in pixels (if we already calculated it, use the calculated version)\n f.currentFontSize = parseFloat(style.getPropertyValue('font-size'));\n\n // get display type and wrap mode\n f.display = style.getPropertyValue('display');\n f.whiteSpace = style.getPropertyValue('white-space');\n };\n\n // determines if this fitty requires initial styling, can be prevented by applying correct styles through CSS\n var shouldPreStyle = function shouldPreStyle(f) {\n\n var preStyle = false;\n\n // if we already tested for prestyling we don't have to do it again\n if (f.preStyleTestCompleted) return false;\n\n // should have an inline style, if not, apply\n if (!/inline-/.test(f.display)) {\n preStyle = true;\n f.display = 'inline-block';\n }\n\n // to correctly calculate dimensions the element should have whiteSpace set to nowrap\n if (f.whiteSpace !== 'nowrap') {\n preStyle = true;\n f.whiteSpace = 'nowrap';\n }\n\n // we don't have to do this twice\n f.preStyleTestCompleted = true;\n\n return preStyle;\n };\n\n // apply styles to single fitty\n var applyStyle = function applyStyle(f) {\n f.element.style.whiteSpace = f.whiteSpace;\n f.element.style.display = f.display;\n f.element.style.fontSize = f.currentFontSize + 'px';\n };\n\n // dispatch a fit event on a fitty\n var dispatchFitEvent = function dispatchFitEvent(f) {\n f.element.dispatchEvent(new CustomEvent('fit', {\n detail: {\n oldValue: f.previousFontSize,\n newValue: f.currentFontSize,\n scaleFactor: f.currentFontSize / f.previousFontSize\n }\n }));\n };\n\n // fit method, marks the fitty as dirty and requests a redraw (this will also redraw any other fitty marked as dirty)\n var fit = function fit(f, type) {\n return function () {\n f.dirty = type;\n if (!f.active) return;\n requestRedraw();\n };\n };\n\n var init = function init(f) {\n\n // save some of the original CSS properties before we change them\n f.originalStyle = {\n whiteSpace: f.element.style.whiteSpace,\n display: f.element.style.display,\n fontSize: f.element.style.fontSize\n };\n\n // should we observe DOM mutations\n observeMutations(f);\n\n // this is a new fitty so we need to validate if it's styles are in order\n f.newbie = true;\n\n // because it's a new fitty it should also be dirty, we want it to redraw on the first loop\n f.dirty = true;\n\n // we want to be able to update this fitty\n fitties.push(f);\n };\n\n var destroy = function destroy(f) {\n return function () {\n\n // remove from fitties array\n fitties = fitties.filter(function (_) {\n return _.element !== f.element;\n });\n\n // stop observing DOM\n if (f.observeMutations) f.observer.disconnect();\n\n // reset the CSS properties we changes\n f.element.style.whiteSpace = f.originalStyle.whiteSpace;\n f.element.style.display = f.originalStyle.display;\n f.element.style.fontSize = f.originalStyle.fontSize;\n };\n };\n\n // add a new fitty, does not redraw said fitty\n var subscribe = function subscribe(f) {\n return function () {\n if (f.active) return;\n f.active = true;\n requestRedraw();\n };\n };\n\n // remove an existing fitty\n var unsubscribe = function unsubscribe(f) {\n return function () {\n return f.active = false;\n };\n };\n\n var observeMutations = function observeMutations(f) {\n\n // no observing?\n if (!f.observeMutations) return;\n\n // start observing mutations\n f.observer = new MutationObserver(fit(f, DrawState.DIRTY_CONTENT));\n\n // start observing\n f.observer.observe(f.element, f.observeMutations);\n };\n\n // default mutation observer settings\n var mutationObserverDefaultSetting = {\n subtree: true,\n childList: true,\n characterData: true\n };\n\n // default fitty options\n var defaultOptions = {\n minSize: 16,\n maxSize: 512,\n multiLine: true,\n observeMutations: 'MutationObserver' in w ? mutationObserverDefaultSetting : false\n };\n\n // array of elements in, fitty instances out\n function fittyCreate(elements, options) {\n\n // set options object\n var fittyOptions = _extends({}, defaultOptions, options);\n\n // create fitties\n var publicFitties = elements.map(function (element) {\n\n // create fitty instance\n var f = _extends({}, fittyOptions, {\n\n // internal options for this fitty\n element: element,\n active: true\n });\n\n // initialise this fitty\n init(f);\n\n // expose API\n return {\n element: element,\n fit: fit(f, DrawState.DIRTY),\n unfreeze: subscribe(f),\n freeze: unsubscribe(f),\n unsubscribe: destroy(f)\n };\n });\n\n // call redraw on newly initiated fitties\n requestRedraw();\n\n // expose fitties\n return publicFitties;\n }\n\n // fitty creation function\n function fitty(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\n // if target is a string\n return typeof target === 'string' ?\n\n // treat it as a querySelector\n fittyCreate(toArray(document.querySelectorAll(target)), options) :\n\n // create single fitty\n fittyCreate([target], options)[0];\n }\n\n // handles viewport changes, redraws all fitties, but only does so after a timeout\n var resizeDebounce = null;\n var onWindowResized = function onWindowResized() {\n w.clearTimeout(resizeDebounce);\n resizeDebounce = w.setTimeout(redrawAll(DrawState.DIRTY_LAYOUT), fitty.observeWindowDelay);\n };\n\n // define observe window property, so when we set it to true or false events are automatically added and removed\n var events = ['resize', 'orientationchange'];\n Object.defineProperty(fitty, 'observeWindow', {\n set: function set(enabled) {\n var method = (enabled ? 'add' : 'remove') + 'EventListener';\n events.forEach(function (e) {\n w[method](e, onWindowResized);\n });\n }\n });\n\n // fitty global properties (by setting observeWindow to true the events above get added)\n fitty.observeWindow = true;\n fitty.observeWindowDelay = 100;\n\n // public fit all method, will force redraw no matter what\n fitty.fitAll = redrawAll(DrawState.DIRTY);\n\n // export our fitty function, we don't want to keep it to our selves\n return fitty;\n}(typeof window === 'undefined' ? null : window);","import { extend, queryAll, closest, getMimeTypeFromFile } from '../utils/util.js'\nimport { isMobile } from '../utils/device.js'\n\nimport fitty from 'fitty';\n\n/**\n * Handles loading, unloading and playback of slide\n * content such as images, videos and iframes.\n */\nexport default class SlideContent {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\tthis.startEmbeddedIframe = this.startEmbeddedIframe.bind( this );\n\n\t}\n\n\t/**\n\t * Should the given element be preloaded?\n\t * Decides based on local element attributes and global config.\n\t *\n\t * @param {HTMLElement} element\n\t */\n\tshouldPreload( element ) {\n\n\t\t// Prefer an explicit global preload setting\n\t\tlet preload = this.Reveal.getConfig().preloadIframes;\n\n\t\t// If no global setting is available, fall back on the element's\n\t\t// own preload setting\n\t\tif( typeof preload !== 'boolean' ) {\n\t\t\tpreload = element.hasAttribute( 'data-preload' );\n\t\t}\n\n\t\treturn preload;\n\t}\n\n\t/**\n\t * Called when the given slide is within the configured view\n\t * distance. Shows the slide element and loads any content\n\t * that is set to load lazily (data-src).\n\t *\n\t * @param {HTMLElement} slide Slide to show\n\t */\n\tload( slide, options = {} ) {\n\n\t\t// Show the slide element\n\t\tslide.style.display = this.Reveal.getConfig().display;\n\n\t\t// Media elements with data-src attributes\n\t\tqueryAll( slide, 'img[data-src], video[data-src], audio[data-src], iframe[data-src]' ).forEach( element => {\n\t\t\tif( element.tagName !== 'IFRAME' || this.shouldPreload( element ) ) {\n\t\t\t\telement.setAttribute( 'src', element.getAttribute( 'data-src' ) );\n\t\t\t\telement.setAttribute( 'data-lazy-loaded', '' );\n\t\t\t\telement.removeAttribute( 'data-src' );\n\t\t\t}\n\t\t} );\n\n\t\t// Media elements with children\n\t\tqueryAll( slide, 'video, audio' ).forEach( media => {\n\t\t\tlet sources = 0;\n\n\t\t\tqueryAll( media, 'source[data-src]' ).forEach( source => {\n\t\t\t\tsource.setAttribute( 'src', source.getAttribute( 'data-src' ) );\n\t\t\t\tsource.removeAttribute( 'data-src' );\n\t\t\t\tsource.setAttribute( 'data-lazy-loaded', '' );\n\t\t\t\tsources += 1;\n\t\t\t} );\n\n\t\t\t// Enable inline video playback in mobile Safari\n\t\t\tif( isMobile && media.tagName === 'VIDEO' ) {\n\t\t\t\tmedia.setAttribute( 'playsinline', '' );\n\t\t\t}\n\n\t\t\t// If we rewrote sources for this video/audio element, we need\n\t\t\t// to manually tell it to load from its new origin\n\t\t\tif( sources > 0 ) {\n\t\t\t\tmedia.load();\n\t\t\t}\n\t\t} );\n\n\n\t\t// Show the corresponding background element\n\t\tlet background = slide.slideBackgroundElement;\n\t\tif( background ) {\n\t\t\tbackground.style.display = 'block';\n\n\t\t\tlet backgroundContent = slide.slideBackgroundContentElement;\n\t\t\tlet backgroundIframe = slide.getAttribute( 'data-background-iframe' );\n\n\t\t\t// If the background contains media, load it\n\t\t\tif( background.hasAttribute( 'data-loaded' ) === false ) {\n\t\t\t\tbackground.setAttribute( 'data-loaded', 'true' );\n\n\t\t\t\tlet backgroundImage = slide.getAttribute( 'data-background-image' ),\n\t\t\t\t\tbackgroundVideo = slide.getAttribute( 'data-background-video' ),\n\t\t\t\t\tbackgroundVideoLoop = slide.hasAttribute( 'data-background-video-loop' ),\n\t\t\t\t\tbackgroundVideoMuted = slide.hasAttribute( 'data-background-video-muted' );\n\n\t\t\t\t// Images\n\t\t\t\tif( backgroundImage ) {\n\t\t\t\t\t// base64\n\t\t\t\t\tif( /^data:/.test( backgroundImage.trim() ) ) {\n\t\t\t\t\t\tbackgroundContent.style.backgroundImage = `url(${backgroundImage.trim()})`;\n\t\t\t\t\t}\n\t\t\t\t\t// URL(s)\n\t\t\t\t\telse {\n\t\t\t\t\t\tbackgroundContent.style.backgroundImage = backgroundImage.split( ',' ).map( background => {\n\t\t\t\t\t\t\treturn `url(${encodeURI(background.trim())})`;\n\t\t\t\t\t\t}).join( ',' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Videos\n\t\t\t\telse if ( backgroundVideo && !this.Reveal.isSpeakerNotes() ) {\n\t\t\t\t\tlet video = document.createElement( 'video' );\n\n\t\t\t\t\tif( backgroundVideoLoop ) {\n\t\t\t\t\t\tvideo.setAttribute( 'loop', '' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif( backgroundVideoMuted ) {\n\t\t\t\t\t\tvideo.muted = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Enable inline playback in mobile Safari\n\t\t\t\t\t//\n\t\t\t\t\t// Mute is required for video to play when using\n\t\t\t\t\t// swipe gestures to navigate since they don't\n\t\t\t\t\t// count as direct user actions :'(\n\t\t\t\t\tif( isMobile ) {\n\t\t\t\t\t\tvideo.muted = true;\n\t\t\t\t\t\tvideo.setAttribute( 'playsinline', '' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support comma separated lists of video sources\n\t\t\t\t\tbackgroundVideo.split( ',' ).forEach( source => {\n\t\t\t\t\t\tlet type = getMimeTypeFromFile( source );\n\t\t\t\t\t\tif( type ) {\n\t\t\t\t\t\t\tvideo.innerHTML += ``;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvideo.innerHTML += ``;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tbackgroundContent.appendChild( video );\n\t\t\t\t}\n\t\t\t\t// Iframes\n\t\t\t\telse if( backgroundIframe && options.excludeIframes !== true ) {\n\t\t\t\t\tlet iframe = document.createElement( 'iframe' );\n\t\t\t\t\tiframe.setAttribute( 'allowfullscreen', '' );\n\t\t\t\t\tiframe.setAttribute( 'mozallowfullscreen', '' );\n\t\t\t\t\tiframe.setAttribute( 'webkitallowfullscreen', '' );\n\t\t\t\t\tiframe.setAttribute( 'allow', 'autoplay' );\n\n\t\t\t\t\tiframe.setAttribute( 'data-src', backgroundIframe );\n\n\t\t\t\t\tiframe.style.width = '100%';\n\t\t\t\t\tiframe.style.height = '100%';\n\t\t\t\t\tiframe.style.maxHeight = '100%';\n\t\t\t\t\tiframe.style.maxWidth = '100%';\n\n\t\t\t\t\tbackgroundContent.appendChild( iframe );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start loading preloadable iframes\n\t\t\tlet backgroundIframeElement = backgroundContent.querySelector( 'iframe[data-src]' );\n\t\t\tif( backgroundIframeElement ) {\n\n\t\t\t\t// Check if this iframe is eligible to be preloaded\n\t\t\t\tif( this.shouldPreload( background ) && !/autoplay=(1|true|yes)/gi.test( backgroundIframe ) ) {\n\t\t\t\t\tif( backgroundIframeElement.getAttribute( 'src' ) !== backgroundIframe ) {\n\t\t\t\t\t\tbackgroundIframeElement.setAttribute( 'src', backgroundIframe );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.layout( slide );\n\n\t}\n\n\t/**\n\t * Applies JS-dependent layout helpers for the given slide,\n\t * if there are any.\n\t */\n\tlayout( slide ) {\n\n\t\t// Autosize text with the r-fit-text class based on the\n\t\t// size of its container. This needs to happen after the\n\t\t// slide is visible in order to measure the text.\n\t\tArray.from( slide.querySelectorAll( '.r-fit-text' ) ).forEach( element => {\n\t\t\tfitty( element, {\n\t\t\t\tminSize: 24,\n\t\t\t\tmaxSize: this.Reveal.getConfig().height * 0.8,\n\t\t\t\tobserveMutations: false,\n\t\t\t\tobserveWindow: false\n\t\t\t} );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unloads and hides the given slide. This is called when the\n\t * slide is moved outside of the configured view distance.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tunload( slide ) {\n\n\t\t// Hide the slide element\n\t\tslide.style.display = 'none';\n\n\t\t// Hide the corresponding background element\n\t\tlet background = this.Reveal.getSlideBackground( slide );\n\t\tif( background ) {\n\t\t\tbackground.style.display = 'none';\n\n\t\t\t// Unload any background iframes\n\t\t\tqueryAll( background, 'iframe[src]' ).forEach( element => {\n\t\t\t\telement.removeAttribute( 'src' );\n\t\t\t} );\n\t\t}\n\n\t\t// Reset lazy-loaded media elements with src attributes\n\t\tqueryAll( slide, 'video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]' ).forEach( element => {\n\t\t\telement.setAttribute( 'data-src', element.getAttribute( 'src' ) );\n\t\t\telement.removeAttribute( 'src' );\n\t\t} );\n\n\t\t// Reset lazy-loaded media elements with children\n\t\tqueryAll( slide, 'video[data-lazy-loaded] source[src], audio source[src]' ).forEach( source => {\n\t\t\tsource.setAttribute( 'data-src', source.getAttribute( 'src' ) );\n\t\t\tsource.removeAttribute( 'src' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Enforces origin-specific format rules for embedded media.\n\t */\n\tformatEmbeddedContent() {\n\n\t\tlet _appendParamToIframeSource = ( sourceAttribute, sourceURL, param ) => {\n\t\t\tqueryAll( this.Reveal.getSlidesElement(), 'iframe['+ sourceAttribute +'*=\"'+ sourceURL +'\"]' ).forEach( el => {\n\t\t\t\tlet src = el.getAttribute( sourceAttribute );\n\t\t\t\tif( src && src.indexOf( param ) === -1 ) {\n\t\t\t\t\tel.setAttribute( sourceAttribute, src + ( !/\\?/.test( src ) ? '?' : '&' ) + param );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// YouTube frames must include \"?enablejsapi=1\"\n\t\t_appendParamToIframeSource( 'src', 'youtube.com/embed/', 'enablejsapi=1' );\n\t\t_appendParamToIframeSource( 'data-src', 'youtube.com/embed/', 'enablejsapi=1' );\n\n\t\t// Vimeo frames must include \"?api=1\"\n\t\t_appendParamToIframeSource( 'src', 'player.vimeo.com/', 'api=1' );\n\t\t_appendParamToIframeSource( 'data-src', 'player.vimeo.com/', 'api=1' );\n\n\t}\n\n\t/**\n\t * Start playback of any embedded content inside of\n\t * the given element.\n\t *\n\t * @param {HTMLElement} element\n\t */\n\tstartEmbeddedContent( element ) {\n\n\t\tif( element && !this.Reveal.isSpeakerNotes() ) {\n\n\t\t\t// Restart GIFs\n\t\t\tqueryAll( element, 'img[src$=\".gif\"]' ).forEach( el => {\n\t\t\t\t// Setting the same unchanged source like this was confirmed\n\t\t\t\t// to work in Chrome, FF & Safari\n\t\t\t\tel.setAttribute( 'src', el.getAttribute( 'src' ) );\n\t\t\t} );\n\n\t\t\t// HTML5 media elements\n\t\t\tqueryAll( element, 'video, audio' ).forEach( el => {\n\t\t\t\tif( closest( el, '.fragment' ) && !closest( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Prefer an explicit global autoplay setting\n\t\t\t\tlet autoplay = this.Reveal.getConfig().autoPlayMedia;\n\n\t\t\t\t// If no global setting is available, fall back on the element's\n\t\t\t\t// own autoplay setting\n\t\t\t\tif( typeof autoplay !== 'boolean' ) {\n\t\t\t\t\tautoplay = el.hasAttribute( 'data-autoplay' ) || !!closest( el, '.slide-background' );\n\t\t\t\t}\n\n\t\t\t\tif( autoplay && typeof el.play === 'function' ) {\n\n\t\t\t\t\t// If the media is ready, start playback\n\t\t\t\t\tif( el.readyState > 1 ) {\n\t\t\t\t\t\tthis.startEmbeddedMedia( { target: el } );\n\t\t\t\t\t}\n\t\t\t\t\t// Mobile devices never fire a loaded event so instead\n\t\t\t\t\t// of waiting, we initiate playback\n\t\t\t\t\telse if( isMobile ) {\n\t\t\t\t\t\tlet promise = el.play();\n\n\t\t\t\t\t\t// If autoplay does not work, ensure that the controls are visible so\n\t\t\t\t\t\t// that the viewer can start the media on their own\n\t\t\t\t\t\tif( promise && typeof promise.catch === 'function' && el.controls === false ) {\n\t\t\t\t\t\t\tpromise.catch( () => {\n\t\t\t\t\t\t\t\tel.controls = true;\n\n\t\t\t\t\t\t\t\t// Once the video does start playing, hide the controls again\n\t\t\t\t\t\t\t\tel.addEventListener( 'play', () => {\n\t\t\t\t\t\t\t\t\tel.controls = false;\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// If the media isn't loaded, wait before playing\n\t\t\t\t\telse {\n\t\t\t\t\t\tel.removeEventListener( 'loadeddata', this.startEmbeddedMedia ); // remove first to avoid dupes\n\t\t\t\t\t\tel.addEventListener( 'loadeddata', this.startEmbeddedMedia );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Normal iframes\n\t\t\tqueryAll( element, 'iframe[src]' ).forEach( el => {\n\t\t\t\tif( closest( el, '.fragment' ) && !closest( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.startEmbeddedIframe( { target: el } );\n\t\t\t} );\n\n\t\t\t// Lazy loading iframes\n\t\t\tqueryAll( element, 'iframe[data-src]' ).forEach( el => {\n\t\t\t\tif( closest( el, '.fragment' ) && !closest( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif( el.getAttribute( 'src' ) !== el.getAttribute( 'data-src' ) ) {\n\t\t\t\t\tel.removeEventListener( 'load', this.startEmbeddedIframe ); // remove first to avoid dupes\n\t\t\t\t\tel.addEventListener( 'load', this.startEmbeddedIframe );\n\t\t\t\t\tel.setAttribute( 'src', el.getAttribute( 'data-src' ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Starts playing an embedded video/audio element after\n\t * it has finished loading.\n\t *\n\t * @param {object} event\n\t */\n\tstartEmbeddedMedia( event ) {\n\n\t\tlet isAttachedToDOM = !!closest( event.target, 'html' ),\n\t\t\tisVisible \t\t= !!closest( event.target, '.present' );\n\n\t\tif( isAttachedToDOM && isVisible ) {\n\t\t\tevent.target.currentTime = 0;\n\t\t\tevent.target.play();\n\t\t}\n\n\t\tevent.target.removeEventListener( 'loadeddata', this.startEmbeddedMedia );\n\n\t}\n\n\t/**\n\t * \"Starts\" the content of an embedded iframe using the\n\t * postMessage API.\n\t *\n\t * @param {object} event\n\t */\n\tstartEmbeddedIframe( event ) {\n\n\t\tlet iframe = event.target;\n\n\t\tif( iframe && iframe.contentWindow ) {\n\n\t\t\tlet isAttachedToDOM = !!closest( event.target, 'html' ),\n\t\t\t\tisVisible \t\t= !!closest( event.target, '.present' );\n\n\t\t\tif( isAttachedToDOM && isVisible ) {\n\n\t\t\t\t// Prefer an explicit global autoplay setting\n\t\t\t\tlet autoplay = this.Reveal.getConfig().autoPlayMedia;\n\n\t\t\t\t// If no global setting is available, fall back on the element's\n\t\t\t\t// own autoplay setting\n\t\t\t\tif( typeof autoplay !== 'boolean' ) {\n\t\t\t\t\tautoplay = iframe.hasAttribute( 'data-autoplay' ) || !!closest( iframe, '.slide-background' );\n\t\t\t\t}\n\n\t\t\t\t// YouTube postMessage API\n\t\t\t\tif( /youtube\\.com\\/embed\\//.test( iframe.getAttribute( 'src' ) ) && autoplay ) {\n\t\t\t\t\tiframe.contentWindow.postMessage( '{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*' );\n\t\t\t\t}\n\t\t\t\t// Vimeo postMessage API\n\t\t\t\telse if( /player\\.vimeo\\.com\\//.test( iframe.getAttribute( 'src' ) ) && autoplay ) {\n\t\t\t\t\tiframe.contentWindow.postMessage( '{\"method\":\"play\"}', '*' );\n\t\t\t\t}\n\t\t\t\t// Generic postMessage API\n\t\t\t\telse {\n\t\t\t\t\tiframe.contentWindow.postMessage( 'slide:start', '*' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Stop playback of any embedded content inside of\n\t * the targeted slide.\n\t *\n\t * @param {HTMLElement} element\n\t */\n\tstopEmbeddedContent( element, options = {} ) {\n\n\t\toptions = extend( {\n\t\t\t// Defaults\n\t\t\tunloadIframes: true\n\t\t}, options );\n\n\t\tif( element && element.parentNode ) {\n\t\t\t// HTML5 media elements\n\t\t\tqueryAll( element, 'video, audio' ).forEach( el => {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && typeof el.pause === 'function' ) {\n\t\t\t\t\tel.setAttribute('data-paused-by-reveal', '');\n\t\t\t\t\tel.pause();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Generic postMessage API for non-lazy loaded iframes\n\t\t\tqueryAll( element, 'iframe' ).forEach( el => {\n\t\t\t\tif( el.contentWindow ) el.contentWindow.postMessage( 'slide:stop', '*' );\n\t\t\t\tel.removeEventListener( 'load', this.startEmbeddedIframe );\n\t\t\t});\n\n\t\t\t// YouTube postMessage API\n\t\t\tqueryAll( element, 'iframe[src*=\"youtube.com/embed/\"]' ).forEach( el => {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && el.contentWindow && typeof el.contentWindow.postMessage === 'function' ) {\n\t\t\t\t\tel.contentWindow.postMessage( '{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*' );\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Vimeo postMessage API\n\t\t\tqueryAll( element, 'iframe[src*=\"player.vimeo.com/\"]' ).forEach( el => {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && el.contentWindow && typeof el.contentWindow.postMessage === 'function' ) {\n\t\t\t\t\tel.contentWindow.postMessage( '{\"method\":\"pause\"}', '*' );\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif( options.unloadIframes === true ) {\n\t\t\t\t// Unload lazy-loaded iframes\n\t\t\t\tqueryAll( element, 'iframe[data-src]' ).forEach( el => {\n\t\t\t\t\t// Only removing the src doesn't actually unload the frame\n\t\t\t\t\t// in all browsers (Firefox) so we set it to blank first\n\t\t\t\t\tel.setAttribute( 'src', 'about:blank' );\n\t\t\t\t\tel.removeAttribute( 'src' );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t}\n\n}\n","/**\n * Handles the display of reveal.js' optional slide number.\n */\nexport default class SlideNumber {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\trender() {\n\n\t\tthis.element = document.createElement( 'div' );\n\t\tthis.element.className = 'slide-number';\n\t\tthis.Reveal.getRevealElement().appendChild( this.element );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tlet slideNumberDisplay = 'none';\n\t\tif( config.slideNumber && !this.Reveal.isPrintingPDF() ) {\n\t\t\tif( config.showSlideNumber === 'all' ) {\n\t\t\t\tslideNumberDisplay = 'block';\n\t\t\t}\n\t\t\telse if( config.showSlideNumber === 'speaker' && this.Reveal.isSpeakerNotes() ) {\n\t\t\t\tslideNumberDisplay = 'block';\n\t\t\t}\n\t\t}\n\n\t\tthis.element.style.display = slideNumberDisplay;\n\n\t}\n\n\t/**\n\t * Updates the slide number to match the current slide.\n\t */\n\tupdate() {\n\n\t\t// Update slide number if enabled\n\t\tif( this.Reveal.getConfig().slideNumber && this.element ) {\n\t\t\tthis.element.innerHTML = this.getSlideNumber();\n\t\t}\n\n\t}\n\n\t/**\n\t * Returns the HTML string corresponding to the current slide\n\t * number, including formatting.\n\t */\n\tgetSlideNumber( slide = this.Reveal.getCurrentSlide() ) {\n\n\t\tlet config = this.Reveal.getConfig();\n\t\tlet value;\n\t\tlet format = 'h.v';\n\n\t\tif ( typeof config.slideNumber === 'function' ) {\n\t\t\tvalue = config.slideNumber( slide );\n\t\t} else {\n\t\t\t// Check if a custom number format is available\n\t\t\tif( typeof config.slideNumber === 'string' ) {\n\t\t\t\tformat = config.slideNumber;\n\t\t\t}\n\n\t\t\t// If there are ONLY vertical slides in this deck, always use\n\t\t\t// a flattened slide number\n\t\t\tif( !/c/.test( format ) && this.Reveal.getHorizontalSlides().length === 1 ) {\n\t\t\t\tformat = 'c';\n\t\t\t}\n\n\t\t\t// Offset the current slide number by 1 to make it 1-indexed\n\t\t\tlet horizontalOffset = slide && slide.dataset.visibility === 'uncounted' ? 0 : 1;\n\n\t\t\tvalue = [];\n\t\t\tswitch( format ) {\n\t\t\t\tcase 'c':\n\t\t\t\t\tvalue.push( this.Reveal.getSlidePastCount( slide ) + horizontalOffset );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'c/t':\n\t\t\t\t\tvalue.push( this.Reveal.getSlidePastCount( slide ) + horizontalOffset, '/', this.Reveal.getTotalSlides() );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tlet indices = this.Reveal.getIndices( slide );\n\t\t\t\t\tvalue.push( indices.h + horizontalOffset );\n\t\t\t\t\tlet sep = format === 'h/v' ? '/' : '.';\n\t\t\t\t\tif( this.Reveal.isVerticalSlide( slide ) ) value.push( sep, indices.v + 1 );\n\t\t\t}\n\t\t}\n\n\t\tlet url = '#' + this.Reveal.location.getHash( slide );\n\t\treturn this.formatNumber( value[0], value[1], value[2], url );\n\n\t}\n\n\t/**\n\t * Applies HTML formatting to a slide number before it's\n\t * written to the DOM.\n\t *\n\t * @param {number} a Current slide\n\t * @param {string} delimiter Character to separate slide numbers\n\t * @param {(number|*)} b Total slides\n\t * @param {HTMLElement} [url='#'+locationHash()] The url to link to\n\t * @return {string} HTML string fragment\n\t */\n\tformatNumber( a, delimiter, b, url = '#' + this.Reveal.location.getHash() ) {\n\n\t\tif( typeof b === 'number' && !isNaN( b ) ) {\n\t\t\treturn `\n\t\t\t\t\t${a}\n\t\t\t\t\t${delimiter}\n\t\t\t\t\t${b}\n\t\t\t\t\t`;\n\t\t}\n\t\telse {\n\t\t\treturn `\n\t\t\t\t\t${a}\n\t\t\t\t\t`;\n\t\t}\n\n\t}\n\n\tdestroy() {\n\n\t\tthis.element.remove();\n\n\t}\n\n}","/**\n * Converts various color input formats to an {r:0,g:0,b:0} object.\n *\n * @param {string} color The string representation of a color\n * @example\n * colorToRgb('#000');\n * @example\n * colorToRgb('#000000');\n * @example\n * colorToRgb('rgb(0,0,0)');\n * @example\n * colorToRgb('rgba(0,0,0)');\n *\n * @return {{r: number, g: number, b: number, [a]: number}|null}\n */\nexport const colorToRgb = ( color ) => {\n\n\tlet hex3 = color.match( /^#([0-9a-f]{3})$/i );\n\tif( hex3 && hex3[1] ) {\n\t\thex3 = hex3[1];\n\t\treturn {\n\t\t\tr: parseInt( hex3.charAt( 0 ), 16 ) * 0x11,\n\t\t\tg: parseInt( hex3.charAt( 1 ), 16 ) * 0x11,\n\t\t\tb: parseInt( hex3.charAt( 2 ), 16 ) * 0x11\n\t\t};\n\t}\n\n\tlet hex6 = color.match( /^#([0-9a-f]{6})$/i );\n\tif( hex6 && hex6[1] ) {\n\t\thex6 = hex6[1];\n\t\treturn {\n\t\t\tr: parseInt( hex6.slice( 0, 2 ), 16 ),\n\t\t\tg: parseInt( hex6.slice( 2, 4 ), 16 ),\n\t\t\tb: parseInt( hex6.slice( 4, 6 ), 16 )\n\t\t};\n\t}\n\n\tlet rgb = color.match( /^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i );\n\tif( rgb ) {\n\t\treturn {\n\t\t\tr: parseInt( rgb[1], 10 ),\n\t\t\tg: parseInt( rgb[2], 10 ),\n\t\t\tb: parseInt( rgb[3], 10 )\n\t\t};\n\t}\n\n\tlet rgba = color.match( /^rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\,\\s*([\\d]+|[\\d]*.[\\d]+)\\s*\\)$/i );\n\tif( rgba ) {\n\t\treturn {\n\t\t\tr: parseInt( rgba[1], 10 ),\n\t\t\tg: parseInt( rgba[2], 10 ),\n\t\t\tb: parseInt( rgba[3], 10 ),\n\t\t\ta: parseFloat( rgba[4] )\n\t\t};\n\t}\n\n\treturn null;\n\n}\n\n/**\n * Calculates brightness on a scale of 0-255.\n *\n * @param {string} color See colorToRgb for supported formats.\n * @see {@link colorToRgb}\n */\nexport const colorBrightness = ( color ) => {\n\n\tif( typeof color === 'string' ) color = colorToRgb( color );\n\n\tif( color ) {\n\t\treturn ( color.r * 299 + color.g * 587 + color.b * 114 ) / 1000;\n\t}\n\n\treturn null;\n\n}","import { queryAll } from '../utils/util.js'\nimport { colorToRgb, colorBrightness } from '../utils/color.js'\n\n/**\n * Creates and updates slide backgrounds.\n */\nexport default class Backgrounds {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\trender() {\n\n\t\tthis.element = document.createElement( 'div' );\n\t\tthis.element.className = 'backgrounds';\n\t\tthis.Reveal.getRevealElement().appendChild( this.element );\n\n\t}\n\n\t/**\n\t * Creates the slide background elements and appends them\n\t * to the background container. One element is created per\n\t * slide no matter if the given slide has visible background.\n\t */\n\tcreate() {\n\n\t\t// Clear prior backgrounds\n\t\tthis.element.innerHTML = '';\n\t\tthis.element.classList.add( 'no-transition' );\n\n\t\t// Iterate over all horizontal slides\n\t\tthis.Reveal.getHorizontalSlides().forEach( slideh => {\n\n\t\t\tlet backgroundStack = this.createBackground( slideh, this.element );\n\n\t\t\t// Iterate over all vertical slides\n\t\t\tqueryAll( slideh, 'section' ).forEach( slidev => {\n\n\t\t\t\tthis.createBackground( slidev, backgroundStack );\n\n\t\t\t\tbackgroundStack.classList.add( 'stack' );\n\n\t\t\t} );\n\n\t\t} );\n\n\t\t// Add parallax background if specified\n\t\tif( this.Reveal.getConfig().parallaxBackgroundImage ) {\n\n\t\t\tthis.element.style.backgroundImage = 'url(\"' + this.Reveal.getConfig().parallaxBackgroundImage + '\")';\n\t\t\tthis.element.style.backgroundSize = this.Reveal.getConfig().parallaxBackgroundSize;\n\t\t\tthis.element.style.backgroundRepeat = this.Reveal.getConfig().parallaxBackgroundRepeat;\n\t\t\tthis.element.style.backgroundPosition = this.Reveal.getConfig().parallaxBackgroundPosition;\n\n\t\t\t// Make sure the below properties are set on the element - these properties are\n\t\t\t// needed for proper transitions to be set on the element via CSS. To remove\n\t\t\t// annoying background slide-in effect when the presentation starts, apply\n\t\t\t// these properties after short time delay\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.Reveal.getRevealElement().classList.add( 'has-parallax-background' );\n\t\t\t}, 1 );\n\n\t\t}\n\t\telse {\n\n\t\t\tthis.element.style.backgroundImage = '';\n\t\t\tthis.Reveal.getRevealElement().classList.remove( 'has-parallax-background' );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Creates a background for the given slide.\n\t *\n\t * @param {HTMLElement} slide\n\t * @param {HTMLElement} container The element that the background\n\t * should be appended to\n\t * @return {HTMLElement} New background div\n\t */\n\tcreateBackground( slide, container ) {\n\n\t\t// Main slide background element\n\t\tlet element = document.createElement( 'div' );\n\t\telement.className = 'slide-background ' + slide.className.replace( /present|past|future/, '' );\n\n\t\t// Inner background element that wraps images/videos/iframes\n\t\tlet contentElement = document.createElement( 'div' );\n\t\tcontentElement.className = 'slide-background-content';\n\n\t\telement.appendChild( contentElement );\n\t\tcontainer.appendChild( element );\n\n\t\tslide.slideBackgroundElement = element;\n\t\tslide.slideBackgroundContentElement = contentElement;\n\n\t\t// Syncs the background to reflect all current background settings\n\t\tthis.sync( slide );\n\n\t\treturn element;\n\n\t}\n\n\t/**\n\t * Renders all of the visual properties of a slide background\n\t * based on the various background attributes.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tsync( slide ) {\n\n\t\tconst element = slide.slideBackgroundElement,\n\t\t\tcontentElement = slide.slideBackgroundContentElement;\n\n\t\tconst data = {\n\t\t\tbackground: slide.getAttribute( 'data-background' ),\n\t\t\tbackgroundSize: slide.getAttribute( 'data-background-size' ),\n\t\t\tbackgroundImage: slide.getAttribute( 'data-background-image' ),\n\t\t\tbackgroundVideo: slide.getAttribute( 'data-background-video' ),\n\t\t\tbackgroundIframe: slide.getAttribute( 'data-background-iframe' ),\n\t\t\tbackgroundColor: slide.getAttribute( 'data-background-color' ),\n\t\t\tbackgroundRepeat: slide.getAttribute( 'data-background-repeat' ),\n\t\t\tbackgroundPosition: slide.getAttribute( 'data-background-position' ),\n\t\t\tbackgroundTransition: slide.getAttribute( 'data-background-transition' ),\n\t\t\tbackgroundOpacity: slide.getAttribute( 'data-background-opacity' ),\n\t\t};\n\n\t\tconst dataPreload = slide.hasAttribute( 'data-preload' );\n\n\t\t// Reset the prior background state in case this is not the\n\t\t// initial sync\n\t\tslide.classList.remove( 'has-dark-background' );\n\t\tslide.classList.remove( 'has-light-background' );\n\n\t\telement.removeAttribute( 'data-loaded' );\n\t\telement.removeAttribute( 'data-background-hash' );\n\t\telement.removeAttribute( 'data-background-size' );\n\t\telement.removeAttribute( 'data-background-transition' );\n\t\telement.style.backgroundColor = '';\n\n\t\tcontentElement.style.backgroundSize = '';\n\t\tcontentElement.style.backgroundRepeat = '';\n\t\tcontentElement.style.backgroundPosition = '';\n\t\tcontentElement.style.backgroundImage = '';\n\t\tcontentElement.style.opacity = '';\n\t\tcontentElement.innerHTML = '';\n\n\t\tif( data.background ) {\n\t\t\t// Auto-wrap image urls in url(...)\n\t\t\tif( /^(http|file|\\/\\/)/gi.test( data.background ) || /\\.(svg|png|jpg|jpeg|gif|bmp)([?#\\s]|$)/gi.test( data.background ) ) {\n\t\t\t\tslide.setAttribute( 'data-background-image', data.background );\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.background = data.background;\n\t\t\t}\n\t\t}\n\n\t\t// Create a hash for this combination of background settings.\n\t\t// This is used to determine when two slide backgrounds are\n\t\t// the same.\n\t\tif( data.background || data.backgroundColor || data.backgroundImage || data.backgroundVideo || data.backgroundIframe ) {\n\t\t\telement.setAttribute( 'data-background-hash', data.background +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundSize +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundImage +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundVideo +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundIframe +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundColor +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundRepeat +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundPosition +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundTransition +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundOpacity );\n\t\t}\n\n\t\t// Additional and optional background properties\n\t\tif( data.backgroundSize ) element.setAttribute( 'data-background-size', data.backgroundSize );\n\t\tif( data.backgroundColor ) element.style.backgroundColor = data.backgroundColor;\n\t\tif( data.backgroundTransition ) element.setAttribute( 'data-background-transition', data.backgroundTransition );\n\n\t\tif( dataPreload ) element.setAttribute( 'data-preload', '' );\n\n\t\t// Background image options are set on the content wrapper\n\t\tif( data.backgroundSize ) contentElement.style.backgroundSize = data.backgroundSize;\n\t\tif( data.backgroundRepeat ) contentElement.style.backgroundRepeat = data.backgroundRepeat;\n\t\tif( data.backgroundPosition ) contentElement.style.backgroundPosition = data.backgroundPosition;\n\t\tif( data.backgroundOpacity ) contentElement.style.opacity = data.backgroundOpacity;\n\n\t\t// If this slide has a background color, we add a class that\n\t\t// signals if it is light or dark. If the slide has no background\n\t\t// color, no class will be added\n\t\tlet contrastColor = data.backgroundColor;\n\n\t\t// If no bg color was found, or it cannot be converted by colorToRgb, check the computed background\n\t\tif( !contrastColor || !colorToRgb( contrastColor ) ) {\n\t\t\tlet computedBackgroundStyle = window.getComputedStyle( element );\n\t\t\tif( computedBackgroundStyle && computedBackgroundStyle.backgroundColor ) {\n\t\t\t\tcontrastColor = computedBackgroundStyle.backgroundColor;\n\t\t\t}\n\t\t}\n\n\t\tif( contrastColor ) {\n\t\t\tconst rgb = colorToRgb( contrastColor );\n\n\t\t\t// Ignore fully transparent backgrounds. Some browsers return\n\t\t\t// rgba(0,0,0,0) when reading the computed background color of\n\t\t\t// an element with no background\n\t\t\tif( rgb && rgb.a !== 0 ) {\n\t\t\t\tif( colorBrightness( contrastColor ) < 128 ) {\n\t\t\t\t\tslide.classList.add( 'has-dark-background' );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslide.classList.add( 'has-light-background' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the background elements to reflect the current\n\t * slide.\n\t *\n\t * @param {boolean} includeAll If true, the backgrounds of\n\t * all vertical slides (not just the present) will be updated.\n\t */\n\tupdate( includeAll = false ) {\n\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\t\tlet indices = this.Reveal.getIndices();\n\n\t\tlet currentBackground = null;\n\n\t\t// Reverse past/future classes when in RTL mode\n\t\tlet horizontalPast = this.Reveal.getConfig().rtl ? 'future' : 'past',\n\t\t\thorizontalFuture = this.Reveal.getConfig().rtl ? 'past' : 'future';\n\n\t\t// Update the classes of all backgrounds to match the\n\t\t// states of their slides (past/present/future)\n\t\tArray.from( this.element.childNodes ).forEach( ( backgroundh, h ) => {\n\n\t\t\tbackgroundh.classList.remove( 'past', 'present', 'future' );\n\n\t\t\tif( h < indices.h ) {\n\t\t\t\tbackgroundh.classList.add( horizontalPast );\n\t\t\t}\n\t\t\telse if ( h > indices.h ) {\n\t\t\t\tbackgroundh.classList.add( horizontalFuture );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbackgroundh.classList.add( 'present' );\n\n\t\t\t\t// Store a reference to the current background element\n\t\t\t\tcurrentBackground = backgroundh;\n\t\t\t}\n\n\t\t\tif( includeAll || h === indices.h ) {\n\t\t\t\tqueryAll( backgroundh, '.slide-background' ).forEach( ( backgroundv, v ) => {\n\n\t\t\t\t\tbackgroundv.classList.remove( 'past', 'present', 'future' );\n\n\t\t\t\t\tif( v < indices.v ) {\n\t\t\t\t\t\tbackgroundv.classList.add( 'past' );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( v > indices.v ) {\n\t\t\t\t\t\tbackgroundv.classList.add( 'future' );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tbackgroundv.classList.add( 'present' );\n\n\t\t\t\t\t\t// Only if this is the present horizontal and vertical slide\n\t\t\t\t\t\tif( h === indices.h ) currentBackground = backgroundv;\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\t\t\t}\n\n\t\t} );\n\n\t\t// Stop content inside of previous backgrounds\n\t\tif( this.previousBackground ) {\n\n\t\t\tthis.Reveal.slideContent.stopEmbeddedContent( this.previousBackground, { unloadIframes: !this.Reveal.slideContent.shouldPreload( this.previousBackground ) } );\n\n\t\t}\n\n\t\t// Start content in the current background\n\t\tif( currentBackground ) {\n\n\t\t\tthis.Reveal.slideContent.startEmbeddedContent( currentBackground );\n\n\t\t\tlet currentBackgroundContent = currentBackground.querySelector( '.slide-background-content' );\n\t\t\tif( currentBackgroundContent ) {\n\n\t\t\t\tlet backgroundImageURL = currentBackgroundContent.style.backgroundImage || '';\n\n\t\t\t\t// Restart GIFs (doesn't work in Firefox)\n\t\t\t\tif( /\\.gif/i.test( backgroundImageURL ) ) {\n\t\t\t\t\tcurrentBackgroundContent.style.backgroundImage = '';\n\t\t\t\t\twindow.getComputedStyle( currentBackgroundContent ).opacity;\n\t\t\t\t\tcurrentBackgroundContent.style.backgroundImage = backgroundImageURL;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Don't transition between identical backgrounds. This\n\t\t\t// prevents unwanted flicker.\n\t\t\tlet previousBackgroundHash = this.previousBackground ? this.previousBackground.getAttribute( 'data-background-hash' ) : null;\n\t\t\tlet currentBackgroundHash = currentBackground.getAttribute( 'data-background-hash' );\n\t\t\tif( currentBackgroundHash && currentBackgroundHash === previousBackgroundHash && currentBackground !== this.previousBackground ) {\n\t\t\t\tthis.element.classList.add( 'no-transition' );\n\t\t\t}\n\n\t\t\tthis.previousBackground = currentBackground;\n\n\t\t}\n\n\t\t// If there's a background brightness flag for this slide,\n\t\t// bubble it to the .reveal container\n\t\tif( currentSlide ) {\n\t\t\t[ 'has-light-background', 'has-dark-background' ].forEach( classToBubble => {\n\t\t\t\tif( currentSlide.classList.contains( classToBubble ) ) {\n\t\t\t\t\tthis.Reveal.getRevealElement().classList.add( classToBubble );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.getRevealElement().classList.remove( classToBubble );\n\t\t\t\t}\n\t\t\t}, this );\n\t\t}\n\n\t\t// Allow the first background to apply without transition\n\t\tsetTimeout( () => {\n\t\t\tthis.element.classList.remove( 'no-transition' );\n\t\t}, 1 );\n\n\t}\n\n\t/**\n\t * Updates the position of the parallax background based\n\t * on the current slide index.\n\t */\n\tupdateParallax() {\n\n\t\tlet indices = this.Reveal.getIndices();\n\n\t\tif( this.Reveal.getConfig().parallaxBackgroundImage ) {\n\n\t\t\tlet horizontalSlides = this.Reveal.getHorizontalSlides(),\n\t\t\t\tverticalSlides = this.Reveal.getVerticalSlides();\n\n\t\t\tlet backgroundSize = this.element.style.backgroundSize.split( ' ' ),\n\t\t\t\tbackgroundWidth, backgroundHeight;\n\n\t\t\tif( backgroundSize.length === 1 ) {\n\t\t\t\tbackgroundWidth = backgroundHeight = parseInt( backgroundSize[0], 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbackgroundWidth = parseInt( backgroundSize[0], 10 );\n\t\t\t\tbackgroundHeight = parseInt( backgroundSize[1], 10 );\n\t\t\t}\n\n\t\t\tlet slideWidth = this.element.offsetWidth,\n\t\t\t\thorizontalSlideCount = horizontalSlides.length,\n\t\t\t\thorizontalOffsetMultiplier,\n\t\t\t\thorizontalOffset;\n\n\t\t\tif( typeof this.Reveal.getConfig().parallaxBackgroundHorizontal === 'number' ) {\n\t\t\t\thorizontalOffsetMultiplier = this.Reveal.getConfig().parallaxBackgroundHorizontal;\n\t\t\t}\n\t\t\telse {\n\t\t\t\thorizontalOffsetMultiplier = horizontalSlideCount > 1 ? ( backgroundWidth - slideWidth ) / ( horizontalSlideCount-1 ) : 0;\n\t\t\t}\n\n\t\t\thorizontalOffset = horizontalOffsetMultiplier * indices.h * -1;\n\n\t\t\tlet slideHeight = this.element.offsetHeight,\n\t\t\t\tverticalSlideCount = verticalSlides.length,\n\t\t\t\tverticalOffsetMultiplier,\n\t\t\t\tverticalOffset;\n\n\t\t\tif( typeof this.Reveal.getConfig().parallaxBackgroundVertical === 'number' ) {\n\t\t\t\tverticalOffsetMultiplier = this.Reveal.getConfig().parallaxBackgroundVertical;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tverticalOffsetMultiplier = ( backgroundHeight - slideHeight ) / ( verticalSlideCount-1 );\n\t\t\t}\n\n\t\t\tverticalOffset = verticalSlideCount > 0 ? verticalOffsetMultiplier * indices.v : 0;\n\n\t\t\tthis.element.style.backgroundPosition = horizontalOffset + 'px ' + -verticalOffset + 'px';\n\n\t\t}\n\n\t}\n\n\tdestroy() {\n\n\t\tthis.element.remove();\n\n\t}\n\n}\n","\nexport const SLIDES_SELECTOR = '.slides section';\nexport const HORIZONTAL_SLIDES_SELECTOR = '.slides>section';\nexport const VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section';\n\n// Methods that may not be invoked via the postMessage API\nexport const POST_MESSAGE_METHOD_BLACKLIST = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener/;\n\n// Regex for retrieving the fragment style from a class attribute\nexport const FRAGMENT_STYLE_REGEX = /fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;","import { queryAll, extend, createStyleSheet, matches, closest } from '../utils/util.js'\nimport { FRAGMENT_STYLE_REGEX } from '../utils/constants.js'\n\n// Counter used to generate unique IDs for auto-animated elements\nlet autoAnimateCounter = 0;\n\n/**\n * Automatically animates matching elements across\n * slides with the [data-auto-animate] attribute.\n */\nexport default class AutoAnimate {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\t/**\n\t * Runs an auto-animation between the given slides.\n\t *\n\t * @param {HTMLElement} fromSlide\n\t * @param {HTMLElement} toSlide\n\t */\n\trun( fromSlide, toSlide ) {\n\n\t\t// Clean up after prior animations\n\t\tthis.reset();\n\n\t\tlet allSlides = this.Reveal.getSlides();\n\t\tlet toSlideIndex = allSlides.indexOf( toSlide );\n\t\tlet fromSlideIndex = allSlides.indexOf( fromSlide );\n\n\t\t// Ensure that both slides are auto-animate targets with the same data-auto-animate-id value\n\t\t// (including null if absent on both) and that data-auto-animate-restart isn't set on the\n\t\t// physically latter slide (independent of slide direction)\n\t\tif( fromSlide.hasAttribute( 'data-auto-animate' ) && toSlide.hasAttribute( 'data-auto-animate' )\n\t\t\t\t&& fromSlide.getAttribute( 'data-auto-animate-id' ) === toSlide.getAttribute( 'data-auto-animate-id' ) \n\t\t\t\t&& !( toSlideIndex > fromSlideIndex ? toSlide : fromSlide ).hasAttribute( 'data-auto-animate-restart' ) ) {\n\n\t\t\t// Create a new auto-animate sheet\n\t\t\tthis.autoAnimateStyleSheet = this.autoAnimateStyleSheet || createStyleSheet();\n\n\t\t\tlet animationOptions = this.getAutoAnimateOptions( toSlide );\n\n\t\t\t// Set our starting state\n\t\t\tfromSlide.dataset.autoAnimate = 'pending';\n\t\t\ttoSlide.dataset.autoAnimate = 'pending';\n\n\t\t\t// Flag the navigation direction, needed for fragment buildup\n\t\t\tanimationOptions.slideDirection = toSlideIndex > fromSlideIndex ? 'forward' : 'backward';\n\n\t\t\t// Inject our auto-animate styles for this transition\n\t\t\tlet css = this.getAutoAnimatableElements( fromSlide, toSlide ).map( elements => {\n\t\t\t\treturn this.autoAnimateElements( elements.from, elements.to, elements.options || {}, animationOptions, autoAnimateCounter++ );\n\t\t\t} );\n\n\t\t\t// Animate unmatched elements, if enabled\n\t\t\tif( toSlide.dataset.autoAnimateUnmatched !== 'false' && this.Reveal.getConfig().autoAnimateUnmatched === true ) {\n\n\t\t\t\t// Our default timings for unmatched elements\n\t\t\t\tlet defaultUnmatchedDuration = animationOptions.duration * 0.8,\n\t\t\t\t\tdefaultUnmatchedDelay = animationOptions.duration * 0.2;\n\n\t\t\t\tthis.getUnmatchedAutoAnimateElements( toSlide ).forEach( unmatchedElement => {\n\n\t\t\t\t\tlet unmatchedOptions = this.getAutoAnimateOptions( unmatchedElement, animationOptions );\n\t\t\t\t\tlet id = 'unmatched';\n\n\t\t\t\t\t// If there is a duration or delay set specifically for this\n\t\t\t\t\t// element our unmatched elements should adhere to those\n\t\t\t\t\tif( unmatchedOptions.duration !== animationOptions.duration || unmatchedOptions.delay !== animationOptions.delay ) {\n\t\t\t\t\t\tid = 'unmatched-' + autoAnimateCounter++;\n\t\t\t\t\t\tcss.push( `[data-auto-animate=\"running\"] [data-auto-animate-target=\"${id}\"] { transition: opacity ${unmatchedOptions.duration}s ease ${unmatchedOptions.delay}s; }` );\n\t\t\t\t\t}\n\n\t\t\t\t\tunmatchedElement.dataset.autoAnimateTarget = id;\n\n\t\t\t\t}, this );\n\n\t\t\t\t// Our default transition for unmatched elements\n\t\t\t\tcss.push( `[data-auto-animate=\"running\"] [data-auto-animate-target=\"unmatched\"] { transition: opacity ${defaultUnmatchedDuration}s ease ${defaultUnmatchedDelay}s; }` );\n\n\t\t\t}\n\n\t\t\t// Setting the whole chunk of CSS at once is the most\n\t\t\t// efficient way to do this. Using sheet.insertRule\n\t\t\t// is multiple factors slower.\n\t\t\tthis.autoAnimateStyleSheet.innerHTML = css.join( '' );\n\n\t\t\t// Start the animation next cycle\n\t\t\trequestAnimationFrame( () => {\n\t\t\t\tif( this.autoAnimateStyleSheet ) {\n\t\t\t\t\t// This forces our newly injected styles to be applied in Firefox\n\t\t\t\t\tgetComputedStyle( this.autoAnimateStyleSheet ).fontWeight;\n\n\t\t\t\t\ttoSlide.dataset.autoAnimate = 'running';\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\ttype: 'autoanimate',\n\t\t\t\tdata: {\n\t\t\t\t\tfromSlide,\n\t\t\t\t\ttoSlide,\n\t\t\t\t\tsheet: this.autoAnimateStyleSheet\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Rolls back all changes that we've made to the DOM so\n\t * that as part of animating.\n\t */\n\treset() {\n\n\t\t// Reset slides\n\t\tqueryAll( this.Reveal.getRevealElement(), '[data-auto-animate]:not([data-auto-animate=\"\"])' ).forEach( element => {\n\t\t\telement.dataset.autoAnimate = '';\n\t\t} );\n\n\t\t// Reset elements\n\t\tqueryAll( this.Reveal.getRevealElement(), '[data-auto-animate-target]' ).forEach( element => {\n\t\t\tdelete element.dataset.autoAnimateTarget;\n\t\t} );\n\n\t\t// Remove the animation sheet\n\t\tif( this.autoAnimateStyleSheet && this.autoAnimateStyleSheet.parentNode ) {\n\t\t\tthis.autoAnimateStyleSheet.parentNode.removeChild( this.autoAnimateStyleSheet );\n\t\t\tthis.autoAnimateStyleSheet = null;\n\t\t}\n\n\t}\n\n\t/**\n\t * Creates a FLIP animation where the `to` element starts out\n\t * in the `from` element position and animates to its original\n\t * state.\n\t *\n\t * @param {HTMLElement} from\n\t * @param {HTMLElement} to\n\t * @param {Object} elementOptions Options for this element pair\n\t * @param {Object} animationOptions Options set at the slide level\n\t * @param {String} id Unique ID that we can use to identify this\n\t * auto-animate element in the DOM\n\t */\n\tautoAnimateElements( from, to, elementOptions, animationOptions, id ) {\n\n\t\t// 'from' elements are given a data-auto-animate-target with no value,\n\t\t// 'to' elements are are given a data-auto-animate-target with an ID\n\t\tfrom.dataset.autoAnimateTarget = '';\n\t\tto.dataset.autoAnimateTarget = id;\n\n\t\t// Each element may override any of the auto-animate options\n\t\t// like transition easing, duration and delay via data-attributes\n\t\tlet options = this.getAutoAnimateOptions( to, animationOptions );\n\n\t\t// If we're using a custom element matcher the element options\n\t\t// may contain additional transition overrides\n\t\tif( typeof elementOptions.delay !== 'undefined' ) options.delay = elementOptions.delay;\n\t\tif( typeof elementOptions.duration !== 'undefined' ) options.duration = elementOptions.duration;\n\t\tif( typeof elementOptions.easing !== 'undefined' ) options.easing = elementOptions.easing;\n\n\t\tlet fromProps = this.getAutoAnimatableProperties( 'from', from, elementOptions ),\n\t\t\ttoProps = this.getAutoAnimatableProperties( 'to', to, elementOptions );\n\n\t\t// Maintain fragment visibility for matching elements when\n\t\t// we're navigating forwards, this way the viewer won't need\n\t\t// to step through the same fragments twice\n\t\tif( to.classList.contains( 'fragment' ) ) {\n\n\t\t\t// Don't auto-animate the opacity of fragments to avoid\n\t\t\t// conflicts with fragment animations\n\t\t\tdelete toProps.styles['opacity'];\n\n\t\t\tif( from.classList.contains( 'fragment' ) ) {\n\n\t\t\t\tlet fromFragmentStyle = ( from.className.match( FRAGMENT_STYLE_REGEX ) || [''] )[0];\n\t\t\t\tlet toFragmentStyle = ( to.className.match( FRAGMENT_STYLE_REGEX ) || [''] )[0];\n\n\t\t\t\t// Only skip the fragment if the fragment animation style\n\t\t\t\t// remains unchanged\n\t\t\t\tif( fromFragmentStyle === toFragmentStyle && animationOptions.slideDirection === 'forward' ) {\n\t\t\t\t\tto.classList.add( 'visible', 'disabled' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// If translation and/or scaling are enabled, css transform\n\t\t// the 'to' element so that it matches the position and size\n\t\t// of the 'from' element\n\t\tif( elementOptions.translate !== false || elementOptions.scale !== false ) {\n\n\t\t\tlet presentationScale = this.Reveal.getScale();\n\n\t\t\tlet delta = {\n\t\t\t\tx: ( fromProps.x - toProps.x ) / presentationScale,\n\t\t\t\ty: ( fromProps.y - toProps.y ) / presentationScale,\n\t\t\t\tscaleX: fromProps.width / toProps.width,\n\t\t\t\tscaleY: fromProps.height / toProps.height\n\t\t\t};\n\n\t\t\t// Limit decimal points to avoid 0.0001px blur and stutter\n\t\t\tdelta.x = Math.round( delta.x * 1000 ) / 1000;\n\t\t\tdelta.y = Math.round( delta.y * 1000 ) / 1000;\n\t\t\tdelta.scaleX = Math.round( delta.scaleX * 1000 ) / 1000;\n\t\t\tdelta.scaleX = Math.round( delta.scaleX * 1000 ) / 1000;\n\n\t\t\tlet translate = elementOptions.translate !== false && ( delta.x !== 0 || delta.y !== 0 ),\n\t\t\t\tscale = elementOptions.scale !== false && ( delta.scaleX !== 0 || delta.scaleY !== 0 );\n\n\t\t\t// No need to transform if nothing's changed\n\t\t\tif( translate || scale ) {\n\n\t\t\t\tlet transform = [];\n\n\t\t\t\tif( translate ) transform.push( `translate(${delta.x}px, ${delta.y}px)` );\n\t\t\t\tif( scale ) transform.push( `scale(${delta.scaleX}, ${delta.scaleY})` );\n\n\t\t\t\tfromProps.styles['transform'] = transform.join( ' ' );\n\t\t\t\tfromProps.styles['transform-origin'] = 'top left';\n\n\t\t\t\ttoProps.styles['transform'] = 'none';\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Delete all unchanged 'to' styles\n\t\tfor( let propertyName in toProps.styles ) {\n\t\t\tconst toValue = toProps.styles[propertyName];\n\t\t\tconst fromValue = fromProps.styles[propertyName];\n\n\t\t\tif( toValue === fromValue ) {\n\t\t\t\tdelete toProps.styles[propertyName];\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// If these property values were set via a custom matcher providing\n\t\t\t\t// an explicit 'from' and/or 'to' value, we always inject those values.\n\t\t\t\tif( toValue.explicitValue === true ) {\n\t\t\t\t\ttoProps.styles[propertyName] = toValue.value;\n\t\t\t\t}\n\n\t\t\t\tif( fromValue.explicitValue === true ) {\n\t\t\t\t\tfromProps.styles[propertyName] = fromValue.value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet css = '';\n\n\t\tlet toStyleProperties = Object.keys( toProps.styles );\n\n\t\t// Only create animate this element IF at least one style\n\t\t// property has changed\n\t\tif( toStyleProperties.length > 0 ) {\n\n\t\t\t// Instantly move to the 'from' state\n\t\t\tfromProps.styles['transition'] = 'none';\n\n\t\t\t// Animate towards the 'to' state\n\t\t\ttoProps.styles['transition'] = `all ${options.duration}s ${options.easing} ${options.delay}s`;\n\t\t\ttoProps.styles['transition-property'] = toStyleProperties.join( ', ' );\n\t\t\ttoProps.styles['will-change'] = toStyleProperties.join( ', ' );\n\n\t\t\t// Build up our custom CSS. We need to override inline styles\n\t\t\t// so we need to make our styles vErY IMPORTANT!1!!\n\t\t\tlet fromCSS = Object.keys( fromProps.styles ).map( propertyName => {\n\t\t\t\treturn propertyName + ': ' + fromProps.styles[propertyName] + ' !important;';\n\t\t\t} ).join( '' );\n\n\t\t\tlet toCSS = Object.keys( toProps.styles ).map( propertyName => {\n\t\t\t\treturn propertyName + ': ' + toProps.styles[propertyName] + ' !important;';\n\t\t\t} ).join( '' );\n\n\t\t\tcss = \t'[data-auto-animate-target=\"'+ id +'\"] {'+ fromCSS +'}' +\n\t\t\t\t\t'[data-auto-animate=\"running\"] [data-auto-animate-target=\"'+ id +'\"] {'+ toCSS +'}';\n\n\t\t}\n\n\t\treturn css;\n\n\t}\n\n\t/**\n\t * Returns the auto-animate options for the given element.\n\t *\n\t * @param {HTMLElement} element Element to pick up options\n\t * from, either a slide or an animation target\n\t * @param {Object} [inheritedOptions] Optional set of existing\n\t * options\n\t */\n\tgetAutoAnimateOptions( element, inheritedOptions ) {\n\n\t\tlet options = {\n\t\t\teasing: this.Reveal.getConfig().autoAnimateEasing,\n\t\t\tduration: this.Reveal.getConfig().autoAnimateDuration,\n\t\t\tdelay: 0\n\t\t};\n\n\t\toptions = extend( options, inheritedOptions );\n\n\t\t// Inherit options from parent elements\n\t\tif( element.parentNode ) {\n\t\t\tlet autoAnimatedParent = closest( element.parentNode, '[data-auto-animate-target]' );\n\t\t\tif( autoAnimatedParent ) {\n\t\t\t\toptions = this.getAutoAnimateOptions( autoAnimatedParent, options );\n\t\t\t}\n\t\t}\n\n\t\tif( element.dataset.autoAnimateEasing ) {\n\t\t\toptions.easing = element.dataset.autoAnimateEasing;\n\t\t}\n\n\t\tif( element.dataset.autoAnimateDuration ) {\n\t\t\toptions.duration = parseFloat( element.dataset.autoAnimateDuration );\n\t\t}\n\n\t\tif( element.dataset.autoAnimateDelay ) {\n\t\t\toptions.delay = parseFloat( element.dataset.autoAnimateDelay );\n\t\t}\n\n\t\treturn options;\n\n\t}\n\n\t/**\n\t * Returns an object containing all of the properties\n\t * that can be auto-animated for the given element and\n\t * their current computed values.\n\t *\n\t * @param {String} direction 'from' or 'to'\n\t */\n\tgetAutoAnimatableProperties( direction, element, elementOptions ) {\n\n\t\tlet config = this.Reveal.getConfig();\n\n\t\tlet properties = { styles: [] };\n\n\t\t// Position and size\n\t\tif( elementOptions.translate !== false || elementOptions.scale !== false ) {\n\t\t\tlet bounds;\n\n\t\t\t// Custom auto-animate may optionally return a custom tailored\n\t\t\t// measurement function\n\t\t\tif( typeof elementOptions.measure === 'function' ) {\n\t\t\t\tbounds = elementOptions.measure( element );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif( config.center ) {\n\t\t\t\t\t// More precise, but breaks when used in combination\n\t\t\t\t\t// with zoom for scaling the deck ¯\\_(ツ)_/¯\n\t\t\t\t\tbounds = element.getBoundingClientRect();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet scale = this.Reveal.getScale();\n\t\t\t\t\tbounds = {\n\t\t\t\t\t\tx: element.offsetLeft * scale,\n\t\t\t\t\t\ty: element.offsetTop * scale,\n\t\t\t\t\t\twidth: element.offsetWidth * scale,\n\t\t\t\t\t\theight: element.offsetHeight * scale\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tproperties.x = bounds.x;\n\t\t\tproperties.y = bounds.y;\n\t\t\tproperties.width = bounds.width;\n\t\t\tproperties.height = bounds.height;\n\t\t}\n\n\t\tconst computedStyles = getComputedStyle( element );\n\n\t\t// CSS styles\n\t\t( elementOptions.styles || config.autoAnimateStyles ).forEach( style => {\n\t\t\tlet value;\n\n\t\t\t// `style` is either the property name directly, or an object\n\t\t\t// definition of a style property\n\t\t\tif( typeof style === 'string' ) style = { property: style };\n\n\t\t\tif( typeof style.from !== 'undefined' && direction === 'from' ) {\n\t\t\t\tvalue = { value: style.from, explicitValue: true };\n\t\t\t}\n\t\t\telse if( typeof style.to !== 'undefined' && direction === 'to' ) {\n\t\t\t\tvalue = { value: style.to, explicitValue: true };\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = computedStyles[style.property];\n\t\t\t}\n\n\t\t\tif( value !== '' ) {\n\t\t\t\tproperties.styles[style.property] = value;\n\t\t\t}\n\t\t} );\n\n\t\treturn properties;\n\n\t}\n\n\t/**\n\t * Get a list of all element pairs that we can animate\n\t * between the given slides.\n\t *\n\t * @param {HTMLElement} fromSlide\n\t * @param {HTMLElement} toSlide\n\t *\n\t * @return {Array} Each value is an array where [0] is\n\t * the element we're animating from and [1] is the\n\t * element we're animating to\n\t */\n\tgetAutoAnimatableElements( fromSlide, toSlide ) {\n\n\t\tlet matcher = typeof this.Reveal.getConfig().autoAnimateMatcher === 'function' ? this.Reveal.getConfig().autoAnimateMatcher : this.getAutoAnimatePairs;\n\n\t\tlet pairs = matcher.call( this, fromSlide, toSlide );\n\n\t\tlet reserved = [];\n\n\t\t// Remove duplicate pairs\n\t\treturn pairs.filter( ( pair, index ) => {\n\t\t\tif( reserved.indexOf( pair.to ) === -1 ) {\n\t\t\t\treserved.push( pair.to );\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Identifies matching elements between slides.\n\t *\n\t * You can specify a custom matcher function by using\n\t * the `autoAnimateMatcher` config option.\n\t */\n\tgetAutoAnimatePairs( fromSlide, toSlide ) {\n\n\t\tlet pairs = [];\n\n\t\tconst codeNodes = 'pre';\n\t\tconst textNodes = 'h1, h2, h3, h4, h5, h6, p, li';\n\t\tconst mediaNodes = 'img, video, iframe';\n\n\t\t// Eplicit matches via data-id\n\t\tthis.findAutoAnimateMatches( pairs, fromSlide, toSlide, '[data-id]', node => {\n\t\t\treturn node.nodeName + ':::' + node.getAttribute( 'data-id' );\n\t\t} );\n\n\t\t// Text\n\t\tthis.findAutoAnimateMatches( pairs, fromSlide, toSlide, textNodes, node => {\n\t\t\treturn node.nodeName + ':::' + node.innerText;\n\t\t} );\n\n\t\t// Media\n\t\tthis.findAutoAnimateMatches( pairs, fromSlide, toSlide, mediaNodes, node => {\n\t\t\treturn node.nodeName + ':::' + ( node.getAttribute( 'src' ) || node.getAttribute( 'data-src' ) );\n\t\t} );\n\n\t\t// Code\n\t\tthis.findAutoAnimateMatches( pairs, fromSlide, toSlide, codeNodes, node => {\n\t\t\treturn node.nodeName + ':::' + node.innerText;\n\t\t} );\n\n\t\tpairs.forEach( pair => {\n\n\t\t\t// Disable scale transformations on text nodes, we transition\n\t\t\t// each individual text property instead\n\t\t\tif( matches( pair.from, textNodes ) ) {\n\t\t\t\tpair.options = { scale: false };\n\t\t\t}\n\t\t\t// Animate individual lines of code\n\t\t\telse if( matches( pair.from, codeNodes ) ) {\n\n\t\t\t\t// Transition the code block's width and height instead of scaling\n\t\t\t\t// to prevent its content from being squished\n\t\t\t\tpair.options = { scale: false, styles: [ 'width', 'height' ] };\n\n\t\t\t\t// Lines of code\n\t\t\t\tthis.findAutoAnimateMatches( pairs, pair.from, pair.to, '.hljs .hljs-ln-code', node => {\n\t\t\t\t\treturn node.textContent;\n\t\t\t\t}, {\n\t\t\t\t\tscale: false,\n\t\t\t\t\tstyles: [],\n\t\t\t\t\tmeasure: this.getLocalBoundingBox.bind( this )\n\t\t\t\t} );\n\n\t\t\t\t// Line numbers\n\t\t\t\tthis.findAutoAnimateMatches( pairs, pair.from, pair.to, '.hljs .hljs-ln-line[data-line-number]', node => {\n\t\t\t\t\treturn node.getAttribute( 'data-line-number' );\n\t\t\t\t}, {\n\t\t\t\t\tscale: false,\n\t\t\t\t\tstyles: [ 'width' ],\n\t\t\t\t\tmeasure: this.getLocalBoundingBox.bind( this )\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}, this );\n\n\t\treturn pairs;\n\n\t}\n\n\t/**\n\t * Helper method which returns a bounding box based on\n\t * the given elements offset coordinates.\n\t *\n\t * @param {HTMLElement} element\n\t * @return {Object} x, y, width, height\n\t */\n\tgetLocalBoundingBox( element ) {\n\n\t\tconst presentationScale = this.Reveal.getScale();\n\n\t\treturn {\n\t\t\tx: Math.round( ( element.offsetLeft * presentationScale ) * 100 ) / 100,\n\t\t\ty: Math.round( ( element.offsetTop * presentationScale ) * 100 ) / 100,\n\t\t\twidth: Math.round( ( element.offsetWidth * presentationScale ) * 100 ) / 100,\n\t\t\theight: Math.round( ( element.offsetHeight * presentationScale ) * 100 ) / 100\n\t\t};\n\n\t}\n\n\t/**\n\t * Finds matching elements between two slides.\n\t *\n\t * @param {Array} pairs \tList of pairs to push matches to\n\t * @param {HTMLElement} fromScope Scope within the from element exists\n\t * @param {HTMLElement} toScope Scope within the to element exists\n\t * @param {String} selector CSS selector of the element to match\n\t * @param {Function} serializer A function that accepts an element and returns\n\t * a stringified ID based on its contents\n\t * @param {Object} animationOptions Optional config options for this pair\n\t */\n\tfindAutoAnimateMatches( pairs, fromScope, toScope, selector, serializer, animationOptions ) {\n\n\t\tlet fromMatches = {};\n\t\tlet toMatches = {};\n\n\t\t[].slice.call( fromScope.querySelectorAll( selector ) ).forEach( ( element, i ) => {\n\t\t\tconst key = serializer( element );\n\t\t\tif( typeof key === 'string' && key.length ) {\n\t\t\t\tfromMatches[key] = fromMatches[key] || [];\n\t\t\t\tfromMatches[key].push( element );\n\t\t\t}\n\t\t} );\n\n\t\t[].slice.call( toScope.querySelectorAll( selector ) ).forEach( ( element, i ) => {\n\t\t\tconst key = serializer( element );\n\t\t\ttoMatches[key] = toMatches[key] || [];\n\t\t\ttoMatches[key].push( element );\n\n\t\t\tlet fromElement;\n\n\t\t\t// Retrieve the 'from' element\n\t\t\tif( fromMatches[key] ) {\n\t\t\t\tconst pimaryIndex = toMatches[key].length - 1;\n\t\t\t\tconst secondaryIndex = fromMatches[key].length - 1;\n\n\t\t\t\t// If there are multiple identical from elements, retrieve\n\t\t\t\t// the one at the same index as our to-element.\n\t\t\t\tif( fromMatches[key][ pimaryIndex ] ) {\n\t\t\t\t\tfromElement = fromMatches[key][ pimaryIndex ];\n\t\t\t\t\tfromMatches[key][ pimaryIndex ] = null;\n\t\t\t\t}\n\t\t\t\t// If there are no matching from-elements at the same index,\n\t\t\t\t// use the last one.\n\t\t\t\telse if( fromMatches[key][ secondaryIndex ] ) {\n\t\t\t\t\tfromElement = fromMatches[key][ secondaryIndex ];\n\t\t\t\t\tfromMatches[key][ secondaryIndex ] = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If we've got a matching pair, push it to the list of pairs\n\t\t\tif( fromElement ) {\n\t\t\t\tpairs.push({\n\t\t\t\t\tfrom: fromElement,\n\t\t\t\t\tto: element,\n\t\t\t\t\toptions: animationOptions\n\t\t\t\t});\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Returns a all elements within the given scope that should\n\t * be considered unmatched in an auto-animate transition. If\n\t * fading of unmatched elements is turned on, these elements\n\t * will fade when going between auto-animate slides.\n\t *\n\t * Note that parents of auto-animate targets are NOT considerd\n\t * unmatched since fading them would break the auto-animation.\n\t *\n\t * @param {HTMLElement} rootElement\n\t * @return {Array}\n\t */\n\tgetUnmatchedAutoAnimateElements( rootElement ) {\n\n\t\treturn [].slice.call( rootElement.children ).reduce( ( result, element ) => {\n\n\t\t\tconst containsAnimatedElements = element.querySelector( '[data-auto-animate-target]' );\n\n\t\t\t// The element is unmatched if\n\t\t\t// - It is not an auto-animate target\n\t\t\t// - It does not contain any auto-animate targets\n\t\t\tif( !element.hasAttribute( 'data-auto-animate-target' ) && !containsAnimatedElements ) {\n\t\t\t\tresult.push( element );\n\t\t\t}\n\n\t\t\tif( element.querySelector( '[data-auto-animate-target]' ) ) {\n\t\t\t\tresult = result.concat( this.getUnmatchedAutoAnimateElements( element ) );\n\t\t\t}\n\n\t\t\treturn result;\n\n\t\t}, [] );\n\n\t}\n\n}\n","import { extend, queryAll } from '../utils/util.js'\n\n/**\n * Handles sorting and navigation of slide fragments.\n * Fragments are elements within a slide that are\n * revealed/animated incrementally.\n */\nexport default class Fragments {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tif( config.fragments === false ) {\n\t\t\tthis.disable();\n\t\t}\n\t\telse if( oldConfig.fragments === false ) {\n\t\t\tthis.enable();\n\t\t}\n\n\t}\n\n\t/**\n\t * If fragments are disabled in the deck, they should all be\n\t * visible rather than stepped through.\n\t */\n\tdisable() {\n\n\t\tqueryAll( this.Reveal.getSlidesElement(), '.fragment' ).forEach( element => {\n\t\t\telement.classList.add( 'visible' );\n\t\t\telement.classList.remove( 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Reverse of #disable(). Only called if fragments have\n\t * previously been disabled.\n\t */\n\tenable() {\n\n\t\tqueryAll( this.Reveal.getSlidesElement(), '.fragment' ).forEach( element => {\n\t\t\telement.classList.remove( 'visible' );\n\t\t\telement.classList.remove( 'current-fragment' );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Returns an object describing the available fragment\n\t * directions.\n\t *\n\t * @return {{prev: boolean, next: boolean}}\n\t */\n\tavailableRoutes() {\n\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\t\tif( currentSlide && this.Reveal.getConfig().fragments ) {\n\t\t\tlet fragments = currentSlide.querySelectorAll( '.fragment:not(.disabled)' );\n\t\t\tlet hiddenFragments = currentSlide.querySelectorAll( '.fragment:not(.disabled):not(.visible)' );\n\n\t\t\treturn {\n\t\t\t\tprev: fragments.length - hiddenFragments.length > 0,\n\t\t\t\tnext: !!hiddenFragments.length\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\treturn { prev: false, next: false };\n\t\t}\n\n\t}\n\n\t/**\n\t * Return a sorted fragments list, ordered by an increasing\n\t * \"data-fragment-index\" attribute.\n\t *\n\t * Fragments will be revealed in the order that they are returned by\n\t * this function, so you can use the index attributes to control the\n\t * order of fragment appearance.\n\t *\n\t * To maintain a sensible default fragment order, fragments are presumed\n\t * to be passed in document order. This function adds a \"fragment-index\"\n\t * attribute to each node if such an attribute is not already present,\n\t * and sets that attribute to an integer value which is the position of\n\t * the fragment within the fragments list.\n\t *\n\t * @param {object[]|*} fragments\n\t * @param {boolean} grouped If true the returned array will contain\n\t * nested arrays for all fragments with the same index\n\t * @return {object[]} sorted Sorted array of fragments\n\t */\n\tsort( fragments, grouped = false ) {\n\n\t\tfragments = Array.from( fragments );\n\n\t\tlet ordered = [],\n\t\t\tunordered = [],\n\t\t\tsorted = [];\n\n\t\t// Group ordered and unordered elements\n\t\tfragments.forEach( fragment => {\n\t\t\tif( fragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\tlet index = parseInt( fragment.getAttribute( 'data-fragment-index' ), 10 );\n\n\t\t\t\tif( !ordered[index] ) {\n\t\t\t\t\tordered[index] = [];\n\t\t\t\t}\n\n\t\t\t\tordered[index].push( fragment );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tunordered.push( [ fragment ] );\n\t\t\t}\n\t\t} );\n\n\t\t// Append fragments without explicit indices in their\n\t\t// DOM order\n\t\tordered = ordered.concat( unordered );\n\n\t\t// Manually count the index up per group to ensure there\n\t\t// are no gaps\n\t\tlet index = 0;\n\n\t\t// Push all fragments in their sorted order to an array,\n\t\t// this flattens the groups\n\t\tordered.forEach( group => {\n\t\t\tgroup.forEach( fragment => {\n\t\t\t\tsorted.push( fragment );\n\t\t\t\tfragment.setAttribute( 'data-fragment-index', index );\n\t\t\t} );\n\n\t\t\tindex ++;\n\t\t} );\n\n\t\treturn grouped === true ? ordered : sorted;\n\n\t}\n\n\t/**\n\t * Sorts and formats all of fragments in the\n\t * presentation.\n\t */\n\tsortAll() {\n\n\t\tthis.Reveal.getHorizontalSlides().forEach( horizontalSlide => {\n\n\t\t\tlet verticalSlides = queryAll( horizontalSlide, 'section' );\n\t\t\tverticalSlides.forEach( ( verticalSlide, y ) => {\n\n\t\t\t\tthis.sort( verticalSlide.querySelectorAll( '.fragment' ) );\n\n\t\t\t}, this );\n\n\t\t\tif( verticalSlides.length === 0 ) this.sort( horizontalSlide.querySelectorAll( '.fragment' ) );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Refreshes the fragments on the current slide so that they\n\t * have the appropriate classes (.visible + .current-fragment).\n\t *\n\t * @param {number} [index] The index of the current fragment\n\t * @param {array} [fragments] Array containing all fragments\n\t * in the current slide\n\t *\n\t * @return {{shown: array, hidden: array}}\n\t */\n\tupdate( index, fragments ) {\n\n\t\tlet changedFragments = {\n\t\t\tshown: [],\n\t\t\thidden: []\n\t\t};\n\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\t\tif( currentSlide && this.Reveal.getConfig().fragments ) {\n\n\t\t\tfragments = fragments || this.sort( currentSlide.querySelectorAll( '.fragment' ) );\n\n\t\t\tif( fragments.length ) {\n\n\t\t\t\tlet maxIndex = 0;\n\n\t\t\t\tif( typeof index !== 'number' ) {\n\t\t\t\t\tlet currentFragment = this.sort( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop();\n\t\t\t\t\tif( currentFragment ) {\n\t\t\t\t\t\tindex = parseInt( currentFragment.getAttribute( 'data-fragment-index' ) || 0, 10 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tArray.from( fragments ).forEach( ( el, i ) => {\n\n\t\t\t\t\tif( el.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\t\ti = parseInt( el.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t\t}\n\n\t\t\t\t\tmaxIndex = Math.max( maxIndex, i );\n\n\t\t\t\t\t// Visible fragments\n\t\t\t\t\tif( i <= index ) {\n\t\t\t\t\t\tlet wasVisible = el.classList.contains( 'visible' )\n\t\t\t\t\t\tel.classList.add( 'visible' );\n\t\t\t\t\t\tel.classList.remove( 'current-fragment' );\n\n\t\t\t\t\t\tif( i === index ) {\n\t\t\t\t\t\t\t// Announce the fragments one by one to the Screen Reader\n\t\t\t\t\t\t\tthis.Reveal.announceStatus( this.Reveal.getStatusText( el ) );\n\n\t\t\t\t\t\t\tel.classList.add( 'current-fragment' );\n\t\t\t\t\t\t\tthis.Reveal.slideContent.startEmbeddedContent( el );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( !wasVisible ) {\n\t\t\t\t\t\t\tchangedFragments.shown.push( el )\n\t\t\t\t\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\t\t\t\t\ttarget: el,\n\t\t\t\t\t\t\t\ttype: 'visible',\n\t\t\t\t\t\t\t\tbubbles: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Hidden fragments\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet wasVisible = el.classList.contains( 'visible' )\n\t\t\t\t\t\tel.classList.remove( 'visible' );\n\t\t\t\t\t\tel.classList.remove( 'current-fragment' );\n\n\t\t\t\t\t\tif( wasVisible ) {\n\t\t\t\t\t\t\tthis.Reveal.slideContent.stopEmbeddedContent( el );\n\t\t\t\t\t\t\tchangedFragments.hidden.push( el );\n\t\t\t\t\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\t\t\t\t\ttarget: el,\n\t\t\t\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\t\t\t\tbubbles: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\t// Write the current fragment index to the slide
    .\n\t\t\t\t// This can be used by end users to apply styles based on\n\t\t\t\t// the current fragment index.\n\t\t\t\tindex = typeof index === 'number' ? index : -1;\n\t\t\t\tindex = Math.max( Math.min( index, maxIndex ), -1 );\n\t\t\t\tcurrentSlide.setAttribute( 'data-fragment', index );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn changedFragments;\n\n\t}\n\n\t/**\n\t * Formats the fragments on the given slide so that they have\n\t * valid indices. Call this if fragments are changed in the DOM\n\t * after reveal.js has already initialized.\n\t *\n\t * @param {HTMLElement} slide\n\t * @return {Array} a list of the HTML fragments that were synced\n\t */\n\tsync( slide = this.Reveal.getCurrentSlide() ) {\n\n\t\treturn this.sort( slide.querySelectorAll( '.fragment' ) );\n\n\t}\n\n\t/**\n\t * Navigate to the specified slide fragment.\n\t *\n\t * @param {?number} index The index of the fragment that\n\t * should be shown, -1 means all are invisible\n\t * @param {number} offset Integer offset to apply to the\n\t * fragment index\n\t *\n\t * @return {boolean} true if a change was made in any\n\t * fragments visibility as part of this call\n\t */\n\tgoto( index, offset = 0 ) {\n\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\t\tif( currentSlide && this.Reveal.getConfig().fragments ) {\n\n\t\t\tlet fragments = this.sort( currentSlide.querySelectorAll( '.fragment:not(.disabled)' ) );\n\t\t\tif( fragments.length ) {\n\n\t\t\t\t// If no index is specified, find the current\n\t\t\t\tif( typeof index !== 'number' ) {\n\t\t\t\t\tlet lastVisibleFragment = this.sort( currentSlide.querySelectorAll( '.fragment:not(.disabled).visible' ) ).pop();\n\n\t\t\t\t\tif( lastVisibleFragment ) {\n\t\t\t\t\t\tindex = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 0, 10 );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tindex = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply the offset if there is one\n\t\t\t\tindex += offset;\n\n\t\t\t\tlet changedFragments = this.update( index, fragments );\n\n\t\t\t\tif( changedFragments.hidden.length ) {\n\t\t\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\t\t\ttype: 'fragmenthidden',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tfragment: changedFragments.hidden[0],\n\t\t\t\t\t\t\tfragments: changedFragments.hidden\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif( changedFragments.shown.length ) {\n\t\t\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\t\t\ttype: 'fragmentshown',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tfragment: changedFragments.shown[0],\n\t\t\t\t\t\t\tfragments: changedFragments.shown\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.Reveal.controls.update();\n\t\t\t\tthis.Reveal.progress.update();\n\n\t\t\t\tif( this.Reveal.getConfig().fragmentInURL ) {\n\t\t\t\t\tthis.Reveal.location.writeURL();\n\t\t\t\t}\n\n\t\t\t\treturn !!( changedFragments.shown.length || changedFragments.hidden.length );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Navigate to the next slide fragment.\n\t *\n\t * @return {boolean} true if there was a next fragment,\n\t * false otherwise\n\t */\n\tnext() {\n\n\t\treturn this.goto( null, 1 );\n\n\t}\n\n\t/**\n\t * Navigate to the previous slide fragment.\n\t *\n\t * @return {boolean} true if there was a previous fragment,\n\t * false otherwise\n\t */\n\tprev() {\n\n\t\treturn this.goto( null, -1 );\n\n\t}\n\n}","import { SLIDES_SELECTOR } from '../utils/constants.js'\nimport { extend, queryAll, transformElement } from '../utils/util.js'\n\n/**\n * Handles all logic related to the overview mode\n * (birds-eye view of all slides).\n */\nexport default class Overview {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\tthis.active = false;\n\n\t\tthis.onSlideClicked = this.onSlideClicked.bind( this );\n\n\t}\n\n\t/**\n\t * Displays the overview of slides (quick nav) by scaling\n\t * down and arranging all slide elements.\n\t */\n\tactivate() {\n\n\t\t// Only proceed if enabled in config\n\t\tif( this.Reveal.getConfig().overview && !this.isActive() ) {\n\n\t\t\tthis.active = true;\n\n\t\t\tthis.Reveal.getRevealElement().classList.add( 'overview' );\n\n\t\t\t// Don't auto-slide while in overview mode\n\t\t\tthis.Reveal.cancelAutoSlide();\n\n\t\t\t// Move the backgrounds element into the slide container to\n\t\t\t// that the same scaling is applied\n\t\t\tthis.Reveal.getSlidesElement().appendChild( this.Reveal.getBackgroundsElement() );\n\n\t\t\t// Clicking on an overview slide navigates to it\n\t\t\tqueryAll( this.Reveal.getRevealElement(), SLIDES_SELECTOR ).forEach( slide => {\n\t\t\t\tif( !slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\tslide.addEventListener( 'click', this.onSlideClicked, true );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Calculate slide sizes\n\t\t\tconst margin = 70;\n\t\t\tconst slideSize = this.Reveal.getComputedSlideSize();\n\t\t\tthis.overviewSlideWidth = slideSize.width + margin;\n\t\t\tthis.overviewSlideHeight = slideSize.height + margin;\n\n\t\t\t// Reverse in RTL mode\n\t\t\tif( this.Reveal.getConfig().rtl ) {\n\t\t\t\tthis.overviewSlideWidth = -this.overviewSlideWidth;\n\t\t\t}\n\n\t\t\tthis.Reveal.updateSlidesVisibility();\n\n\t\t\tthis.layout();\n\t\t\tthis.update();\n\n\t\t\tthis.Reveal.layout();\n\n\t\t\tconst indices = this.Reveal.getIndices();\n\n\t\t\t// Notify observers of the overview showing\n\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\ttype: 'overviewshown',\n\t\t\t\tdata: {\n\t\t\t\t\t'indexh': indices.h,\n\t\t\t\t\t'indexv': indices.v,\n\t\t\t\t\t'currentSlide': this.Reveal.getCurrentSlide()\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Uses CSS transforms to position all slides in a grid for\n\t * display inside of the overview mode.\n\t */\n\tlayout() {\n\n\t\t// Layout slides\n\t\tthis.Reveal.getHorizontalSlides().forEach( ( hslide, h ) => {\n\t\t\thslide.setAttribute( 'data-index-h', h );\n\t\t\ttransformElement( hslide, 'translate3d(' + ( h * this.overviewSlideWidth ) + 'px, 0, 0)' );\n\n\t\t\tif( hslide.classList.contains( 'stack' ) ) {\n\n\t\t\t\tqueryAll( hslide, 'section' ).forEach( ( vslide, v ) => {\n\t\t\t\t\tvslide.setAttribute( 'data-index-h', h );\n\t\t\t\t\tvslide.setAttribute( 'data-index-v', v );\n\n\t\t\t\t\ttransformElement( vslide, 'translate3d(0, ' + ( v * this.overviewSlideHeight ) + 'px, 0)' );\n\t\t\t\t} );\n\n\t\t\t}\n\t\t} );\n\n\t\t// Layout slide backgrounds\n\t\tArray.from( this.Reveal.getBackgroundsElement().childNodes ).forEach( ( hbackground, h ) => {\n\t\t\ttransformElement( hbackground, 'translate3d(' + ( h * this.overviewSlideWidth ) + 'px, 0, 0)' );\n\n\t\t\tqueryAll( hbackground, '.slide-background' ).forEach( ( vbackground, v ) => {\n\t\t\t\ttransformElement( vbackground, 'translate3d(0, ' + ( v * this.overviewSlideHeight ) + 'px, 0)' );\n\t\t\t} );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Moves the overview viewport to the current slides.\n\t * Called each time the current slide changes.\n\t */\n\tupdate() {\n\n\t\tconst vmin = Math.min( window.innerWidth, window.innerHeight );\n\t\tconst scale = Math.max( vmin / 5, 150 ) / vmin;\n\t\tconst indices = this.Reveal.getIndices();\n\n\t\tthis.Reveal.transformSlides( {\n\t\t\toverview: [\n\t\t\t\t'scale('+ scale +')',\n\t\t\t\t'translateX('+ ( -indices.h * this.overviewSlideWidth ) +'px)',\n\t\t\t\t'translateY('+ ( -indices.v * this.overviewSlideHeight ) +'px)'\n\t\t\t].join( ' ' )\n\t\t} );\n\n\t}\n\n\t/**\n\t * Exits the slide overview and enters the currently\n\t * active slide.\n\t */\n\tdeactivate() {\n\n\t\t// Only proceed if enabled in config\n\t\tif( this.Reveal.getConfig().overview ) {\n\n\t\t\tthis.active = false;\n\n\t\t\tthis.Reveal.getRevealElement().classList.remove( 'overview' );\n\n\t\t\t// Temporarily add a class so that transitions can do different things\n\t\t\t// depending on whether they are exiting/entering overview, or just\n\t\t\t// moving from slide to slide\n\t\t\tthis.Reveal.getRevealElement().classList.add( 'overview-deactivating' );\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.Reveal.getRevealElement().classList.remove( 'overview-deactivating' );\n\t\t\t}, 1 );\n\n\t\t\t// Move the background element back out\n\t\t\tthis.Reveal.getRevealElement().appendChild( this.Reveal.getBackgroundsElement() );\n\n\t\t\t// Clean up changes made to slides\n\t\t\tqueryAll( this.Reveal.getRevealElement(), SLIDES_SELECTOR ).forEach( slide => {\n\t\t\t\ttransformElement( slide, '' );\n\n\t\t\t\tslide.removeEventListener( 'click', this.onSlideClicked, true );\n\t\t\t} );\n\n\t\t\t// Clean up changes made to backgrounds\n\t\t\tqueryAll( this.Reveal.getBackgroundsElement(), '.slide-background' ).forEach( background => {\n\t\t\t\ttransformElement( background, '' );\n\t\t\t} );\n\n\t\t\tthis.Reveal.transformSlides( { overview: '' } );\n\n\t\t\tconst indices = this.Reveal.getIndices();\n\n\t\t\tthis.Reveal.slide( indices.h, indices.v );\n\t\t\tthis.Reveal.layout();\n\t\t\tthis.Reveal.cueAutoSlide();\n\n\t\t\t// Notify observers of the overview hiding\n\t\t\tthis.Reveal.dispatchEvent({\n\t\t\t\ttype: 'overviewhidden',\n\t\t\t\tdata: {\n\t\t\t\t\t'indexh': indices.h,\n\t\t\t\t\t'indexv': indices.v,\n\t\t\t\t\t'currentSlide': this.Reveal.getCurrentSlide()\n\t\t\t\t}\n\t\t\t});\n\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the slide overview mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * overview is open, false means it's closed.\n\t */\n\ttoggle( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? this.activate() : this.deactivate();\n\t\t}\n\t\telse {\n\t\t\tthis.isActive() ? this.deactivate() : this.activate();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the overview is currently active.\n\t *\n\t * @return {Boolean} true if the overview is active,\n\t * false otherwise\n\t */\n\tisActive() {\n\n\t\treturn this.active;\n\n\t}\n\n\t/**\n\t * Invoked when a slide is and we're in the overview.\n\t *\n\t * @param {object} event\n\t */\n\tonSlideClicked( event ) {\n\n\t\tif( this.isActive() ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tlet element = event.target;\n\n\t\t\twhile( element && !element.nodeName.match( /section/gi ) ) {\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\tif( element && !element.classList.contains( 'disabled' ) ) {\n\n\t\t\t\tthis.deactivate();\n\n\t\t\t\tif( element.nodeName.match( /section/gi ) ) {\n\t\t\t\t\tlet h = parseInt( element.getAttribute( 'data-index-h' ), 10 ),\n\t\t\t\t\t\tv = parseInt( element.getAttribute( 'data-index-v' ), 10 );\n\n\t\t\t\t\tthis.Reveal.slide( h, v );\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n}","import { enterFullscreen } from '../utils/util.js'\n\n/**\n * Handles all reveal.js keyboard interactions.\n */\nexport default class Keyboard {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\t// A key:value map of keyboard keys and descriptions of\n\t\t// the actions they trigger\n\t\tthis.shortcuts = {};\n\n\t\t// Holds custom key code mappings\n\t\tthis.bindings = {};\n\n\t\tthis.onDocumentKeyDown = this.onDocumentKeyDown.bind( this );\n\t\tthis.onDocumentKeyPress = this.onDocumentKeyPress.bind( this );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tif( config.navigationMode === 'linear' ) {\n\t\t\tthis.shortcuts['→ , ↓ , SPACE , N , L , J'] = 'Next slide';\n\t\t\tthis.shortcuts['← , ↑ , P , H , K'] = 'Previous slide';\n\t\t}\n\t\telse {\n\t\t\tthis.shortcuts['N , SPACE'] = 'Next slide';\n\t\t\tthis.shortcuts['P , Shift SPACE'] = 'Previous slide';\n\t\t\tthis.shortcuts['← , H'] = 'Navigate left';\n\t\t\tthis.shortcuts['→ , L'] = 'Navigate right';\n\t\t\tthis.shortcuts['↑ , K'] = 'Navigate up';\n\t\t\tthis.shortcuts['↓ , J'] = 'Navigate down';\n\t\t}\n\n\t\tthis.shortcuts['Alt + ←/↑/→/↓'] = 'Navigate without fragments';\n\t\tthis.shortcuts['Shift + ←/↑/→/↓'] = 'Jump to first/last slide';\n\t\tthis.shortcuts['B , .'] = 'Pause';\n\t\tthis.shortcuts['F'] = 'Fullscreen';\n\t\tthis.shortcuts['ESC, O'] = 'Slide overview';\n\n\t}\n\n\t/**\n\t * Starts listening for keyboard events.\n\t */\n\tbind() {\n\n\t\tdocument.addEventListener( 'keydown', this.onDocumentKeyDown, false );\n\t\tdocument.addEventListener( 'keypress', this.onDocumentKeyPress, false );\n\n\t}\n\n\t/**\n\t * Stops listening for keyboard events.\n\t */\n\tunbind() {\n\n\t\tdocument.removeEventListener( 'keydown', this.onDocumentKeyDown, false );\n\t\tdocument.removeEventListener( 'keypress', this.onDocumentKeyPress, false );\n\n\t}\n\n\t/**\n\t * Add a custom key binding with optional description to\n\t * be added to the help screen.\n\t */\n\taddKeyBinding( binding, callback ) {\n\n\t\tif( typeof binding === 'object' && binding.keyCode ) {\n\t\t\tthis.bindings[binding.keyCode] = {\n\t\t\t\tcallback: callback,\n\t\t\t\tkey: binding.key,\n\t\t\t\tdescription: binding.description\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\tthis.bindings[binding] = {\n\t\t\t\tcallback: callback,\n\t\t\t\tkey: null,\n\t\t\t\tdescription: null\n\t\t\t};\n\t\t}\n\n\t}\n\n\t/**\n\t * Removes the specified custom key binding.\n\t */\n\tremoveKeyBinding( keyCode ) {\n\n\t\tdelete this.bindings[keyCode];\n\n\t}\n\n\t/**\n\t * Programmatically triggers a keyboard event\n\t *\n\t * @param {int} keyCode\n\t */\n\ttriggerKey( keyCode ) {\n\n\t\tthis.onDocumentKeyDown( { keyCode } );\n\n\t}\n\n\t/**\n\t * Registers a new shortcut to include in the help overlay\n\t *\n\t * @param {String} key\n\t * @param {String} value\n\t */\n\tregisterKeyboardShortcut( key, value ) {\n\n\t\tthis.shortcuts[key] = value;\n\n\t}\n\n\tgetShortcuts() {\n\n\t\treturn this.shortcuts;\n\n\t}\n\n\tgetBindings() {\n\n\t\treturn this.bindings;\n\n\t}\n\n\t/**\n\t * Handler for the document level 'keypress' event.\n\t *\n\t * @param {object} event\n\t */\n\tonDocumentKeyPress( event ) {\n\n\t\t// Check if the pressed key is question mark\n\t\tif( event.shiftKey && event.charCode === 63 ) {\n\t\t\tthis.Reveal.toggleHelp();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the document level 'keydown' event.\n\t *\n\t * @param {object} event\n\t */\n\tonDocumentKeyDown( event ) {\n\n\t\tlet config = this.Reveal.getConfig();\n\n\t\t// If there's a condition specified and it returns false,\n\t\t// ignore this event\n\t\tif( typeof config.keyboardCondition === 'function' && config.keyboardCondition(event) === false ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If keyboardCondition is set, only capture keyboard events\n\t\t// for embedded decks when they are focused\n\t\tif( config.keyboardCondition === 'focused' && !this.Reveal.isFocused() ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Shorthand\n\t\tlet keyCode = event.keyCode;\n\n\t\t// Remember if auto-sliding was paused so we can toggle it\n\t\tlet autoSlideWasPaused = !this.Reveal.isAutoSliding();\n\n\t\tthis.Reveal.onUserInput( event );\n\n\t\t// Is there a focused element that could be using the keyboard?\n\t\tlet activeElementIsCE = document.activeElement && document.activeElement.isContentEditable === true;\n\t\tlet activeElementIsInput = document.activeElement && document.activeElement.tagName && /input|textarea/i.test( document.activeElement.tagName );\n\t\tlet activeElementIsNotes = document.activeElement && document.activeElement.className && /speaker-notes/i.test( document.activeElement.className);\n\n\t\t// Whitelist certain modifiers for slide navigation shortcuts\n\t\tlet isNavigationKey = [32, 37, 38, 39, 40, 78, 80].indexOf( event.keyCode ) !== -1;\n\n\t\t// Prevent all other events when a modifier is pressed\n\t\tlet unusedModifier = \t!( isNavigationKey && event.shiftKey || event.altKey ) &&\n\t\t\t\t\t\t\t\t( event.shiftKey || event.altKey || event.ctrlKey || event.metaKey );\n\n\t\t// Disregard the event if there's a focused element or a\n\t\t// keyboard modifier key is present\n\t\tif( activeElementIsCE || activeElementIsInput || activeElementIsNotes || unusedModifier ) return;\n\n\t\t// While paused only allow resume keyboard events; 'b', 'v', '.'\n\t\tlet resumeKeyCodes = [66,86,190,191];\n\t\tlet key;\n\n\t\t// Custom key bindings for togglePause should be able to resume\n\t\tif( typeof config.keyboard === 'object' ) {\n\t\t\tfor( key in config.keyboard ) {\n\t\t\t\tif( config.keyboard[key] === 'togglePause' ) {\n\t\t\t\t\tresumeKeyCodes.push( parseInt( key, 10 ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( this.Reveal.isPaused() && resumeKeyCodes.indexOf( keyCode ) === -1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Use linear navigation if we're configured to OR if\n\t\t// the presentation is one-dimensional\n\t\tlet useLinearMode = config.navigationMode === 'linear' || !this.Reveal.hasHorizontalSlides() || !this.Reveal.hasVerticalSlides();\n\n\t\tlet triggered = false;\n\n\t\t// 1. User defined key bindings\n\t\tif( typeof config.keyboard === 'object' ) {\n\n\t\t\tfor( key in config.keyboard ) {\n\n\t\t\t\t// Check if this binding matches the pressed key\n\t\t\t\tif( parseInt( key, 10 ) === keyCode ) {\n\n\t\t\t\t\tlet value = config.keyboard[ key ];\n\n\t\t\t\t\t// Callback function\n\t\t\t\t\tif( typeof value === 'function' ) {\n\t\t\t\t\t\tvalue.apply( null, [ event ] );\n\t\t\t\t\t}\n\t\t\t\t\t// String shortcuts to reveal.js API\n\t\t\t\t\telse if( typeof value === 'string' && typeof this.Reveal[ value ] === 'function' ) {\n\t\t\t\t\t\tthis.Reveal[ value ].call();\n\t\t\t\t\t}\n\n\t\t\t\t\ttriggered = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// 2. Registered custom key bindings\n\t\tif( triggered === false ) {\n\n\t\t\tfor( key in this.bindings ) {\n\n\t\t\t\t// Check if this binding matches the pressed key\n\t\t\t\tif( parseInt( key, 10 ) === keyCode ) {\n\n\t\t\t\t\tlet action = this.bindings[ key ].callback;\n\n\t\t\t\t\t// Callback function\n\t\t\t\t\tif( typeof action === 'function' ) {\n\t\t\t\t\t\taction.apply( null, [ event ] );\n\t\t\t\t\t}\n\t\t\t\t\t// String shortcuts to reveal.js API\n\t\t\t\t\telse if( typeof action === 'string' && typeof this.Reveal[ action ] === 'function' ) {\n\t\t\t\t\t\tthis.Reveal[ action ].call();\n\t\t\t\t\t}\n\n\t\t\t\t\ttriggered = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// 3. System defined key bindings\n\t\tif( triggered === false ) {\n\n\t\t\t// Assume true and try to prove false\n\t\t\ttriggered = true;\n\n\t\t\t// P, PAGE UP\n\t\t\tif( keyCode === 80 || keyCode === 33 ) {\n\t\t\t\tthis.Reveal.prev({skipFragments: event.altKey});\n\t\t\t}\n\t\t\t// N, PAGE DOWN\n\t\t\telse if( keyCode === 78 || keyCode === 34 ) {\n\t\t\t\tthis.Reveal.next({skipFragments: event.altKey});\n\t\t\t}\n\t\t\t// H, LEFT\n\t\t\telse if( keyCode === 72 || keyCode === 37 ) {\n\t\t\t\tif( event.shiftKey ) {\n\t\t\t\t\tthis.Reveal.slide( 0 );\n\t\t\t\t}\n\t\t\t\telse if( !this.Reveal.overview.isActive() && useLinearMode ) {\n\t\t\t\t\tthis.Reveal.prev({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.left({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// L, RIGHT\n\t\t\telse if( keyCode === 76 || keyCode === 39 ) {\n\t\t\t\tif( event.shiftKey ) {\n\t\t\t\t\tthis.Reveal.slide( this.Reveal.getHorizontalSlides().length - 1 );\n\t\t\t\t}\n\t\t\t\telse if( !this.Reveal.overview.isActive() && useLinearMode ) {\n\t\t\t\t\tthis.Reveal.next({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.right({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// K, UP\n\t\t\telse if( keyCode === 75 || keyCode === 38 ) {\n\t\t\t\tif( event.shiftKey ) {\n\t\t\t\t\tthis.Reveal.slide( undefined, 0 );\n\t\t\t\t}\n\t\t\t\telse if( !this.Reveal.overview.isActive() && useLinearMode ) {\n\t\t\t\t\tthis.Reveal.prev({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.up({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// J, DOWN\n\t\t\telse if( keyCode === 74 || keyCode === 40 ) {\n\t\t\t\tif( event.shiftKey ) {\n\t\t\t\t\tthis.Reveal.slide( undefined, Number.MAX_VALUE );\n\t\t\t\t}\n\t\t\t\telse if( !this.Reveal.overview.isActive() && useLinearMode ) {\n\t\t\t\t\tthis.Reveal.next({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.down({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// HOME\n\t\t\telse if( keyCode === 36 ) {\n\t\t\t\tthis.Reveal.slide( 0 );\n\t\t\t}\n\t\t\t// END\n\t\t\telse if( keyCode === 35 ) {\n\t\t\t\tthis.Reveal.slide( this.Reveal.getHorizontalSlides().length - 1 );\n\t\t\t}\n\t\t\t// SPACE\n\t\t\telse if( keyCode === 32 ) {\n\t\t\t\tif( this.Reveal.overview.isActive() ) {\n\t\t\t\t\tthis.Reveal.overview.deactivate();\n\t\t\t\t}\n\t\t\t\tif( event.shiftKey ) {\n\t\t\t\t\tthis.Reveal.prev({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.Reveal.next({skipFragments: event.altKey});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// TWO-SPOT, SEMICOLON, B, V, PERIOD, LOGITECH PRESENTER TOOLS \"BLACK SCREEN\" BUTTON\n\t\t\telse if( keyCode === 58 || keyCode === 59 || keyCode === 66 || keyCode === 86 || keyCode === 190 || keyCode === 191 ) {\n\t\t\t\tthis.Reveal.togglePause();\n\t\t\t}\n\t\t\t// F\n\t\t\telse if( keyCode === 70 ) {\n\t\t\t\tenterFullscreen( config.embedded ? this.Reveal.getViewportElement() : document.documentElement );\n\t\t\t}\n\t\t\t// A\n\t\t\telse if( keyCode === 65 ) {\n\t\t\t\tif ( config.autoSlideStoppable ) {\n\t\t\t\t\tthis.Reveal.toggleAutoSlide( autoSlideWasPaused );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttriggered = false;\n\t\t\t}\n\n\t\t}\n\n\t\t// If the input resulted in a triggered action we should prevent\n\t\t// the browsers default behavior\n\t\tif( triggered ) {\n\t\t\tevent.preventDefault && event.preventDefault();\n\t\t}\n\t\t// ESC or O key\n\t\telse if( keyCode === 27 || keyCode === 79 ) {\n\t\t\tif( this.Reveal.closeOverlay() === false ) {\n\t\t\t\tthis.Reveal.overview.toggle();\n\t\t\t}\n\n\t\t\tevent.preventDefault && event.preventDefault();\n\t\t}\n\n\t\t// If auto-sliding is enabled we need to cue up\n\t\t// another timeout\n\t\tthis.Reveal.cueAutoSlide();\n\n\t}\n\n}","/**\n * Reads and writes the URL based on reveal.js' current state.\n */\nexport default class Location {\n\n\t// The minimum number of milliseconds that must pass between\n\t// calls to history.replaceState\n\tMAX_REPLACE_STATE_FREQUENCY = 1000\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\t// Delays updates to the URL due to a Chrome thumbnailer bug\n\t\tthis.writeURLTimeout = 0;\n\n\t\tthis.replaceStateTimestamp = 0;\n\n\t\tthis.onWindowHashChange = this.onWindowHashChange.bind( this );\n\n\t}\n\n\tbind() {\n\n\t\twindow.addEventListener( 'hashchange', this.onWindowHashChange, false );\n\n\t}\n\n\tunbind() {\n\n\t\twindow.removeEventListener( 'hashchange', this.onWindowHashChange, false );\n\n\t}\n\n\t/**\n\t * Returns the slide indices for the given hash link.\n\t *\n\t * @param {string} [hash] the hash string that we want to\n\t * find the indices for\n\t *\n\t * @returns slide indices or null\n\t */\n\tgetIndicesFromHash( hash=window.location.hash ) {\n\n\t\t// Attempt to parse the hash as either an index or name\n\t\tlet name = hash.replace( /^#\\/?/, '' );\n\t\tlet bits = name.split( '/' );\n\n\t\t// If the first bit is not fully numeric and there is a name we\n\t\t// can assume that this is a named link\n\t\tif( !/^[0-9]*$/.test( bits[0] ) && name.length ) {\n\t\t\tlet element;\n\n\t\t\tlet f;\n\n\t\t\t// Parse named links with fragments (#/named-link/2)\n\t\t\tif( /\\/[-\\d]+$/g.test( name ) ) {\n\t\t\t\tf = parseInt( name.split( '/' ).pop(), 10 );\n\t\t\t\tf = isNaN(f) ? undefined : f;\n\t\t\t\tname = name.split( '/' ).shift();\n\t\t\t}\n\n\t\t\t// Ensure the named link is a valid HTML ID attribute\n\t\t\ttry {\n\t\t\t\telement = document.getElementById( decodeURIComponent( name ) );\n\t\t\t}\n\t\t\tcatch ( error ) { }\n\n\t\t\tif( element ) {\n\t\t\t\treturn { ...this.Reveal.getIndices( element ), f };\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconst config = this.Reveal.getConfig();\n\t\t\tlet hashIndexBase = config.hashOneBasedIndex ? 1 : 0;\n\n\t\t\t// Read the index components of the hash\n\t\t\tlet h = ( parseInt( bits[0], 10 ) - hashIndexBase ) || 0,\n\t\t\t\tv = ( parseInt( bits[1], 10 ) - hashIndexBase ) || 0,\n\t\t\t\tf;\n\n\t\t\tif( config.fragmentInURL ) {\n\t\t\t\tf = parseInt( bits[2], 10 );\n\t\t\t\tif( isNaN( f ) ) {\n\t\t\t\t\tf = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { h, v, f };\n\t\t}\n\n\t\t// The hash couldn't be parsed or no matching named link was found\n\t\treturn null\n\n\t}\n\n\t/**\n\t * Reads the current URL (hash) and navigates accordingly.\n\t */\n\treadURL() {\n\n\t\tconst currentIndices = this.Reveal.getIndices();\n\t\tconst newIndices = this.getIndicesFromHash();\n\n\t\tif( newIndices ) {\n\t\t\tif( ( newIndices.h !== currentIndices.h || newIndices.v !== currentIndices.v || newIndices.f !== undefined ) ) {\n\t\t\t\t\tthis.Reveal.slide( newIndices.h, newIndices.v, newIndices.f );\n\t\t\t}\n\t\t}\n\t\t// If no new indices are available, we're trying to navigate to\n\t\t// a slide hash that does not exist\n\t\telse {\n\t\t\tthis.Reveal.slide( currentIndices.h || 0, currentIndices.v || 0 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the page URL (hash) to reflect the current\n\t * state.\n\t *\n\t * @param {number} delay The time in ms to wait before\n\t * writing the hash\n\t */\n\twriteURL( delay ) {\n\n\t\tlet config = this.Reveal.getConfig();\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\n\t\t// Make sure there's never more than one timeout running\n\t\tclearTimeout( this.writeURLTimeout );\n\n\t\t// If a delay is specified, timeout this call\n\t\tif( typeof delay === 'number' ) {\n\t\t\tthis.writeURLTimeout = setTimeout( this.writeURL, delay );\n\t\t}\n\t\telse if( currentSlide ) {\n\n\t\t\tlet hash = this.getHash();\n\n\t\t\t// If we're configured to push to history OR the history\n\t\t\t// API is not avaialble.\n\t\t\tif( config.history ) {\n\t\t\t\twindow.location.hash = hash;\n\t\t\t}\n\t\t\t// If we're configured to reflect the current slide in the\n\t\t\t// URL without pushing to history.\n\t\t\telse if( config.hash ) {\n\t\t\t\t// If the hash is empty, don't add it to the URL\n\t\t\t\tif( hash === '/' ) {\n\t\t\t\t\tthis.debouncedReplaceState( window.location.pathname + window.location.search );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.debouncedReplaceState( '#' + hash );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// UPDATE: The below nuking of all hash changes breaks\n\t\t\t// anchors on pages where reveal.js is running. Removed\n\t\t\t// in 4.0. Why was it here in the first place? ¯\\_(ツ)_/¯\n\t\t\t//\n\t\t\t// If history and hash are both disabled, a hash may still\n\t\t\t// be added to the URL by clicking on a href with a hash\n\t\t\t// target. Counter this by always removing the hash.\n\t\t\t// else {\n\t\t\t// \twindow.history.replaceState( null, null, window.location.pathname + window.location.search );\n\t\t\t// }\n\n\t\t}\n\n\t}\n\n\treplaceState( url ) {\n\n\t\twindow.history.replaceState( null, null, url );\n\t\tthis.replaceStateTimestamp = Date.now();\n\n\t}\n\n\tdebouncedReplaceState( url ) {\n\n\t\tclearTimeout( this.replaceStateTimeout );\n\n\t\tif( Date.now() - this.replaceStateTimestamp > this.MAX_REPLACE_STATE_FREQUENCY ) {\n\t\t\tthis.replaceState( url );\n\t\t}\n\t\telse {\n\t\t\tthis.replaceStateTimeout = setTimeout( () => this.replaceState( url ), this.MAX_REPLACE_STATE_FREQUENCY );\n\t\t}\n\n\t}\n\n\t/**\n\t * Return a hash URL that will resolve to the given slide location.\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide to link to\n\t */\n\tgetHash( slide ) {\n\n\t\tlet url = '/';\n\n\t\t// Attempt to create a named link based on the slide's ID\n\t\tlet s = slide || this.Reveal.getCurrentSlide();\n\t\tlet id = s ? s.getAttribute( 'id' ) : null;\n\t\tif( id ) {\n\t\t\tid = encodeURIComponent( id );\n\t\t}\n\n\t\tlet index = this.Reveal.getIndices( slide );\n\t\tif( !this.Reveal.getConfig().fragmentInURL ) {\n\t\t\tindex.f = undefined;\n\t\t}\n\n\t\t// If the current slide has an ID, use that as a named link,\n\t\t// but we don't support named links with a fragment index\n\t\tif( typeof id === 'string' && id.length ) {\n\t\t\turl = '/' + id;\n\n\t\t\t// If there is also a fragment, append that at the end\n\t\t\t// of the named link, like: #/named-link/2\n\t\t\tif( index.f >= 0 ) url += '/' + index.f;\n\t\t}\n\t\t// Otherwise use the /h/v index\n\t\telse {\n\t\t\tlet hashIndexBase = this.Reveal.getConfig().hashOneBasedIndex ? 1 : 0;\n\t\t\tif( index.h > 0 || index.v > 0 || index.f >= 0 ) url += index.h + hashIndexBase;\n\t\t\tif( index.v > 0 || index.f >= 0 ) url += '/' + (index.v + hashIndexBase );\n\t\t\tif( index.f >= 0 ) url += '/' + index.f;\n\t\t}\n\n\t\treturn url;\n\n\t}\n\n\t/**\n\t * Handler for the window level 'hashchange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tonWindowHashChange( event ) {\n\n\t\tthis.readURL();\n\n\t}\n\n}","import { queryAll } from '../utils/util.js'\nimport { isAndroid } from '../utils/device.js'\n\n/**\n * Manages our presentation controls. This includes both\n * the built-in control arrows as well as event monitoring\n * of any elements within the presentation with either of the\n * following helper classes:\n * - .navigate-up\n * - .navigate-right\n * - .navigate-down\n * - .navigate-left\n * - .navigate-next\n * - .navigate-prev\n */\nexport default class Controls {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\tthis.onNavigateLeftClicked = this.onNavigateLeftClicked.bind( this );\n\t\tthis.onNavigateRightClicked = this.onNavigateRightClicked.bind( this );\n\t\tthis.onNavigateUpClicked = this.onNavigateUpClicked.bind( this );\n\t\tthis.onNavigateDownClicked = this.onNavigateDownClicked.bind( this );\n\t\tthis.onNavigatePrevClicked = this.onNavigatePrevClicked.bind( this );\n\t\tthis.onNavigateNextClicked = this.onNavigateNextClicked.bind( this );\n\n\t}\n\n\trender() {\n\n\t\tconst rtl = this.Reveal.getConfig().rtl;\n\t\tconst revealElement = this.Reveal.getRevealElement();\n\n\t\tthis.element = document.createElement( 'aside' );\n\t\tthis.element.className = 'controls';\n\t\tthis.element.innerHTML =\n\t\t\t`\n\t\t\t\n\t\t\t\n\t\t\t`;\n\n\t\tthis.Reveal.getRevealElement().appendChild( this.element );\n\n\t\t// There can be multiple instances of controls throughout the page\n\t\tthis.controlsLeft = queryAll( revealElement, '.navigate-left' );\n\t\tthis.controlsRight = queryAll( revealElement, '.navigate-right' );\n\t\tthis.controlsUp = queryAll( revealElement, '.navigate-up' );\n\t\tthis.controlsDown = queryAll( revealElement, '.navigate-down' );\n\t\tthis.controlsPrev = queryAll( revealElement, '.navigate-prev' );\n\t\tthis.controlsNext = queryAll( revealElement, '.navigate-next' );\n\n\t\t// The left, right and down arrows in the standard reveal.js controls\n\t\tthis.controlsRightArrow = this.element.querySelector( '.navigate-right' );\n\t\tthis.controlsLeftArrow = this.element.querySelector( '.navigate-left' );\n\t\tthis.controlsDownArrow = this.element.querySelector( '.navigate-down' );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tthis.element.style.display = config.controls ? 'block' : 'none';\n\n\t\tthis.element.setAttribute( 'data-controls-layout', config.controlsLayout );\n\t\tthis.element.setAttribute( 'data-controls-back-arrows', config.controlsBackArrows );\n\n\t}\n\n\tbind() {\n\n\t\t// Listen to both touch and click events, in case the device\n\t\t// supports both\n\t\tlet pointerEvents = [ 'touchstart', 'click' ];\n\n\t\t// Only support touch for Android, fixes double navigations in\n\t\t// stock browser\n\t\tif( isAndroid ) {\n\t\t\tpointerEvents = [ 'touchstart' ];\n\t\t}\n\n\t\tpointerEvents.forEach( eventName => {\n\t\t\tthis.controlsLeft.forEach( el => el.addEventListener( eventName, this.onNavigateLeftClicked, false ) );\n\t\t\tthis.controlsRight.forEach( el => el.addEventListener( eventName, this.onNavigateRightClicked, false ) );\n\t\t\tthis.controlsUp.forEach( el => el.addEventListener( eventName, this.onNavigateUpClicked, false ) );\n\t\t\tthis.controlsDown.forEach( el => el.addEventListener( eventName, this.onNavigateDownClicked, false ) );\n\t\t\tthis.controlsPrev.forEach( el => el.addEventListener( eventName, this.onNavigatePrevClicked, false ) );\n\t\t\tthis.controlsNext.forEach( el => el.addEventListener( eventName, this.onNavigateNextClicked, false ) );\n\t\t} );\n\n\t}\n\n\tunbind() {\n\n\t\t[ 'touchstart', 'click' ].forEach( eventName => {\n\t\t\tthis.controlsLeft.forEach( el => el.removeEventListener( eventName, this.onNavigateLeftClicked, false ) );\n\t\t\tthis.controlsRight.forEach( el => el.removeEventListener( eventName, this.onNavigateRightClicked, false ) );\n\t\t\tthis.controlsUp.forEach( el => el.removeEventListener( eventName, this.onNavigateUpClicked, false ) );\n\t\t\tthis.controlsDown.forEach( el => el.removeEventListener( eventName, this.onNavigateDownClicked, false ) );\n\t\t\tthis.controlsPrev.forEach( el => el.removeEventListener( eventName, this.onNavigatePrevClicked, false ) );\n\t\t\tthis.controlsNext.forEach( el => el.removeEventListener( eventName, this.onNavigateNextClicked, false ) );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Updates the state of all control/navigation arrows.\n\t */\n\tupdate() {\n\n\t\tlet routes = this.Reveal.availableRoutes();\n\n\t\t// Remove the 'enabled' class from all directions\n\t\t[...this.controlsLeft, ...this.controlsRight, ...this.controlsUp, ...this.controlsDown, ...this.controlsPrev, ...this.controlsNext].forEach( node => {\n\t\t\tnode.classList.remove( 'enabled', 'fragmented' );\n\n\t\t\t// Set 'disabled' attribute on all directions\n\t\t\tnode.setAttribute( 'disabled', 'disabled' );\n\t\t} );\n\n\t\t// Add the 'enabled' class to the available routes; remove 'disabled' attribute to enable buttons\n\t\tif( routes.left ) this.controlsLeft.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.right ) this.controlsRight.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.up ) this.controlsUp.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.down ) this.controlsDown.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t// Prev/next buttons\n\t\tif( routes.left || routes.up ) this.controlsPrev.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.right || routes.down ) this.controlsNext.forEach( el => { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t// Highlight fragment directions\n\t\tlet currentSlide = this.Reveal.getCurrentSlide();\n\t\tif( currentSlide ) {\n\n\t\t\tlet fragmentsRoutes = this.Reveal.fragments.availableRoutes();\n\n\t\t\t// Always apply fragment decorator to prev/next buttons\n\t\t\tif( fragmentsRoutes.prev ) this.controlsPrev.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\tif( fragmentsRoutes.next ) this.controlsNext.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t\t// Apply fragment decorators to directional buttons based on\n\t\t\t// what slide axis they are in\n\t\t\tif( this.Reveal.isVerticalSlide( currentSlide ) ) {\n\t\t\t\tif( fragmentsRoutes.prev ) this.controlsUp.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t\tif( fragmentsRoutes.next ) this.controlsDown.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif( fragmentsRoutes.prev ) this.controlsLeft.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t\tif( fragmentsRoutes.next ) this.controlsRight.forEach( el => { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t}\n\n\t\t}\n\n\t\tif( this.Reveal.getConfig().controlsTutorial ) {\n\n\t\t\tlet indices = this.Reveal.getIndices();\n\n\t\t\t// Highlight control arrows with an animation to ensure\n\t\t\t// that the viewer knows how to navigate\n\t\t\tif( !this.Reveal.hasNavigatedVertically() && routes.down ) {\n\t\t\t\tthis.controlsDownArrow.classList.add( 'highlight' );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.controlsDownArrow.classList.remove( 'highlight' );\n\n\t\t\t\tif( this.Reveal.getConfig().rtl ) {\n\n\t\t\t\t\tif( !this.Reveal.hasNavigatedHorizontally() && routes.left && indices.v === 0 ) {\n\t\t\t\t\t\tthis.controlsLeftArrow.classList.add( 'highlight' );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.controlsLeftArrow.classList.remove( 'highlight' );\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif( !this.Reveal.hasNavigatedHorizontally() && routes.right && indices.v === 0 ) {\n\t\t\t\t\t\tthis.controlsRightArrow.classList.add( 'highlight' );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.controlsRightArrow.classList.remove( 'highlight' );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy() {\n\n\t\tthis.unbind();\n\t\tthis.element.remove();\n\n\t}\n\n\t/**\n\t * Event handlers for navigation control buttons.\n\t */\n\tonNavigateLeftClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tif( this.Reveal.getConfig().navigationMode === 'linear' ) {\n\t\t\tthis.Reveal.prev();\n\t\t}\n\t\telse {\n\t\t\tthis.Reveal.left();\n\t\t}\n\n\t}\n\n\tonNavigateRightClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tif( this.Reveal.getConfig().navigationMode === 'linear' ) {\n\t\t\tthis.Reveal.next();\n\t\t}\n\t\telse {\n\t\t\tthis.Reveal.right();\n\t\t}\n\n\t}\n\n\tonNavigateUpClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tthis.Reveal.up();\n\n\t}\n\n\tonNavigateDownClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tthis.Reveal.down();\n\n\t}\n\n\tonNavigatePrevClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tthis.Reveal.prev();\n\n\t}\n\n\tonNavigateNextClicked( event ) {\n\n\t\tevent.preventDefault();\n\t\tthis.Reveal.onUserInput();\n\n\t\tthis.Reveal.next();\n\n\t}\n\n\n}","/**\n * Creates a visual progress bar for the presentation.\n */\nexport default class Progress {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\tthis.onProgressClicked = this.onProgressClicked.bind( this );\n\n\t}\n\n\trender() {\n\n\t\tthis.element = document.createElement( 'div' );\n\t\tthis.element.className = 'progress';\n\t\tthis.Reveal.getRevealElement().appendChild( this.element );\n\n\t\tthis.bar = document.createElement( 'span' );\n\t\tthis.element.appendChild( this.bar );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tthis.element.style.display = config.progress ? 'block' : 'none';\n\n\t}\n\n\tbind() {\n\n\t\tif( this.Reveal.getConfig().progress && this.element ) {\n\t\t\tthis.element.addEventListener( 'click', this.onProgressClicked, false );\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tif ( this.Reveal.getConfig().progress && this.element ) {\n\t\t\tthis.element.removeEventListener( 'click', this.onProgressClicked, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the progress bar to reflect the current slide.\n\t */\n\tupdate() {\n\n\t\t// Update progress if enabled\n\t\tif( this.Reveal.getConfig().progress && this.bar ) {\n\n\t\t\tlet scale = this.Reveal.getProgress();\n\n\t\t\t// Don't fill the progress bar if there's only one slide\n\t\t\tif( this.Reveal.getTotalSlides() < 2 ) {\n\t\t\t\tscale = 0;\n\t\t\t}\n\n\t\t\tthis.bar.style.transform = 'scaleX('+ scale +')';\n\n\t\t}\n\n\t}\n\n\tgetMaxWidth() {\n\n\t\treturn this.Reveal.getRevealElement().offsetWidth;\n\n\t}\n\n\t/**\n\t * Clicking on the progress bar results in a navigation to the\n\t * closest approximate horizontal slide using this equation:\n\t *\n\t * ( clickX / presentationWidth ) * numberOfSlides\n\t *\n\t * @param {object} event\n\t */\n\tonProgressClicked( event ) {\n\n\t\tthis.Reveal.onUserInput( event );\n\n\t\tevent.preventDefault();\n\n\t\tlet slides = this.Reveal.getSlides();\n\t\tlet slidesTotal = slides.length;\n\t\tlet slideIndex = Math.floor( ( event.clientX / this.getMaxWidth() ) * slidesTotal );\n\n\t\tif( this.Reveal.getConfig().rtl ) {\n\t\t\tslideIndex = slidesTotal - slideIndex;\n\t\t}\n\n\t\tlet targetIndices = this.Reveal.getIndices(slides[slideIndex]);\n\t\tthis.Reveal.slide( targetIndices.h, targetIndices.v );\n\n\t}\n\n\tdestroy() {\n\n\t\tthis.element.remove();\n\n\t}\n\n}","/**\n * Handles hiding of the pointer/cursor when inactive.\n */\nexport default class Pointer {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\t// Throttles mouse wheel navigation\n\t\tthis.lastMouseWheelStep = 0;\n\n\t\t// Is the mouse pointer currently hidden from view\n\t\tthis.cursorHidden = false;\n\n\t\t// Timeout used to determine when the cursor is inactive\n\t\tthis.cursorInactiveTimeout = 0;\n\n\t\tthis.onDocumentCursorActive = this.onDocumentCursorActive.bind( this );\n\t\tthis.onDocumentMouseScroll = this.onDocumentMouseScroll.bind( this );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tif( config.mouseWheel ) {\n\t\t\tdocument.addEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false ); // FF\n\t\t\tdocument.addEventListener( 'mousewheel', this.onDocumentMouseScroll, false );\n\t\t}\n\t\telse {\n\t\t\tdocument.removeEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false ); // FF\n\t\t\tdocument.removeEventListener( 'mousewheel', this.onDocumentMouseScroll, false );\n\t\t}\n\n\t\t// Auto-hide the mouse pointer when its inactive\n\t\tif( config.hideInactiveCursor ) {\n\t\t\tdocument.addEventListener( 'mousemove', this.onDocumentCursorActive, false );\n\t\t\tdocument.addEventListener( 'mousedown', this.onDocumentCursorActive, false );\n\t\t}\n\t\telse {\n\t\t\tthis.showCursor();\n\n\t\t\tdocument.removeEventListener( 'mousemove', this.onDocumentCursorActive, false );\n\t\t\tdocument.removeEventListener( 'mousedown', this.onDocumentCursorActive, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Shows the mouse pointer after it has been hidden with\n\t * #hideCursor.\n\t */\n\tshowCursor() {\n\n\t\tif( this.cursorHidden ) {\n\t\t\tthis.cursorHidden = false;\n\t\t\tthis.Reveal.getRevealElement().style.cursor = '';\n\t\t}\n\n\t}\n\n\t/**\n\t * Hides the mouse pointer when it's on top of the .reveal\n\t * container.\n\t */\n\thideCursor() {\n\n\t\tif( this.cursorHidden === false ) {\n\t\t\tthis.cursorHidden = true;\n\t\t\tthis.Reveal.getRevealElement().style.cursor = 'none';\n\t\t}\n\n\t}\n\n\tdestroy() {\n\n\t\tthis.showCursor();\n\n\t\tdocument.removeEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false );\n\t\tdocument.removeEventListener( 'mousewheel', this.onDocumentMouseScroll, false );\n\t\tdocument.removeEventListener( 'mousemove', this.onDocumentCursorActive, false );\n\t\tdocument.removeEventListener( 'mousedown', this.onDocumentCursorActive, false );\n\n\t}\n\n\t/**\n\t * Called whenever there is mouse input at the document level\n\t * to determine if the cursor is active or not.\n\t *\n\t * @param {object} event\n\t */\n\tonDocumentCursorActive( event ) {\n\n\t\tthis.showCursor();\n\n\t\tclearTimeout( this.cursorInactiveTimeout );\n\n\t\tthis.cursorInactiveTimeout = setTimeout( this.hideCursor.bind( this ), this.Reveal.getConfig().hideCursorTime );\n\n\t}\n\n\t/**\n\t * Handles mouse wheel scrolling, throttled to avoid skipping\n\t * multiple slides.\n\t *\n\t * @param {object} event\n\t */\n\tonDocumentMouseScroll( event ) {\n\n\t\tif( Date.now() - this.lastMouseWheelStep > 1000 ) {\n\n\t\t\tthis.lastMouseWheelStep = Date.now();\n\n\t\t\tlet delta = event.detail || -event.wheelDelta;\n\t\t\tif( delta > 0 ) {\n\t\t\t\tthis.Reveal.next();\n\t\t\t}\n\t\t\telse if( delta < 0 ) {\n\t\t\t\tthis.Reveal.prev();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}","/**\n * Loads a JavaScript file from the given URL and executes it.\n *\n * @param {string} url Address of the .js file to load\n * @param {function} callback Method to invoke when the script\n * has loaded and executed\n */\nexport const loadScript = ( url, callback ) => {\n\n\tconst script = document.createElement( 'script' );\n\tscript.type = 'text/javascript';\n\tscript.async = false;\n\tscript.defer = false;\n\tscript.src = url;\n\n\tif( typeof callback === 'function' ) {\n\n\t\t// Success callback\n\t\tscript.onload = script.onreadystatechange = event => {\n\t\t\tif( event.type === 'load' || /loaded|complete/.test( script.readyState ) ) {\n\n\t\t\t\t// Kill event listeners\n\t\t\t\tscript.onload = script.onreadystatechange = script.onerror = null;\n\n\t\t\t\tcallback();\n\n\t\t\t}\n\t\t};\n\n\t\t// Error callback\n\t\tscript.onerror = err => {\n\n\t\t\t// Kill event listeners\n\t\t\tscript.onload = script.onreadystatechange = script.onerror = null;\n\n\t\t\tcallback( new Error( 'Failed loading script: ' + script.src + '\\n' + err ) );\n\n\t\t};\n\n\t}\n\n\t// Append the script at the end of \n\tconst head = document.querySelector( 'head' );\n\thead.insertBefore( script, head.lastChild );\n\n}","import { loadScript } from '../utils/loader.js'\n\n/**\n * Manages loading and registering of reveal.js plugins.\n */\nexport default class Plugins {\n\n\tconstructor( reveal ) {\n\n\t\tthis.Reveal = reveal;\n\n\t\t// Flags our current state (idle -> loading -> loaded)\n\t\tthis.state = 'idle';\n\n\t\t// An id:instance map of currently registed plugins\n\t\tthis.registeredPlugins = {};\n\n\t\tthis.asyncDependencies = [];\n\n\t}\n\n\t/**\n\t * Loads reveal.js dependencies, registers and\n\t * initializes plugins.\n\t *\n\t * Plugins are direct references to a reveal.js plugin\n\t * object that we register and initialize after any\n\t * synchronous dependencies have loaded.\n\t *\n\t * Dependencies are defined via the 'dependencies' config\n\t * option and will be loaded prior to starting reveal.js.\n\t * Some dependencies may have an 'async' flag, if so they\n\t * will load after reveal.js has been started up.\n\t */\n\tload( plugins, dependencies ) {\n\n\t\tthis.state = 'loading';\n\n\t\tplugins.forEach( this.registerPlugin.bind( this ) );\n\n\t\treturn new Promise( resolve => {\n\n\t\t\tlet scripts = [],\n\t\t\t\tscriptsToLoad = 0;\n\n\t\t\tdependencies.forEach( s => {\n\t\t\t\t// Load if there's no condition or the condition is truthy\n\t\t\t\tif( !s.condition || s.condition() ) {\n\t\t\t\t\tif( s.async ) {\n\t\t\t\t\t\tthis.asyncDependencies.push( s );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tscripts.push( s );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tif( scripts.length ) {\n\t\t\t\tscriptsToLoad = scripts.length;\n\n\t\t\t\tconst scriptLoadedCallback = (s) => {\n\t\t\t\t\tif( s && typeof s.callback === 'function' ) s.callback();\n\n\t\t\t\t\tif( --scriptsToLoad === 0 ) {\n\t\t\t\t\t\tthis.initPlugins().then( resolve );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Load synchronous scripts\n\t\t\t\tscripts.forEach( s => {\n\t\t\t\t\tif( typeof s.id === 'string' ) {\n\t\t\t\t\t\tthis.registerPlugin( s );\n\t\t\t\t\t\tscriptLoadedCallback( s );\n\t\t\t\t\t}\n\t\t\t\t\telse if( typeof s.src === 'string' ) {\n\t\t\t\t\t\tloadScript( s.src, () => scriptLoadedCallback(s) );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.warn( 'Unrecognized plugin format', s );\n\t\t\t\t\t\tscriptLoadedCallback();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.initPlugins().then( resolve );\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Initializes our plugins and waits for them to be ready\n\t * before proceeding.\n\t */\n\tinitPlugins() {\n\n\t\treturn new Promise( resolve => {\n\n\t\t\tlet pluginValues = Object.values( this.registeredPlugins );\n\t\t\tlet pluginsToInitialize = pluginValues.length;\n\n\t\t\t// If there are no plugins, skip this step\n\t\t\tif( pluginsToInitialize === 0 ) {\n\t\t\t\tthis.loadAsync().then( resolve );\n\t\t\t}\n\t\t\t// ... otherwise initialize plugins\n\t\t\telse {\n\n\t\t\t\tlet initNextPlugin;\n\n\t\t\t\tlet afterPlugInitialized = () => {\n\t\t\t\t\tif( --pluginsToInitialize === 0 ) {\n\t\t\t\t\t\tthis.loadAsync().then( resolve );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tinitNextPlugin();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tlet i = 0;\n\n\t\t\t\t// Initialize plugins serially\n\t\t\t\tinitNextPlugin = () => {\n\n\t\t\t\t\tlet plugin = pluginValues[i++];\n\n\t\t\t\t\t// If the plugin has an 'init' method, invoke it\n\t\t\t\t\tif( typeof plugin.init === 'function' ) {\n\t\t\t\t\t\tlet promise = plugin.init( this.Reveal );\n\n\t\t\t\t\t\t// If the plugin returned a Promise, wait for it\n\t\t\t\t\t\tif( promise && typeof promise.then === 'function' ) {\n\t\t\t\t\t\t\tpromise.then( afterPlugInitialized );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tafterPlugInitialized();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tafterPlugInitialized();\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tinitNextPlugin();\n\n\t\t\t}\n\n\t\t} )\n\n\t}\n\n\t/**\n\t * Loads all async reveal.js dependencies.\n\t */\n\tloadAsync() {\n\n\t\tthis.state = 'loaded';\n\n\t\tif( this.asyncDependencies.length ) {\n\t\t\tthis.asyncDependencies.forEach( s => {\n\t\t\t\tloadScript( s.src, s.callback );\n\t\t\t} );\n\t\t}\n\n\t\treturn Promise.resolve();\n\n\t}\n\n\t/**\n\t * Registers a new plugin with this reveal.js instance.\n\t *\n\t * reveal.js waits for all regisered plugins to initialize\n\t * before considering itself ready, as long as the plugin\n\t * is registered before calling `Reveal.initialize()`.\n\t */\n\tregisterPlugin( plugin ) {\n\n\t\t// Backwards compatibility to make reveal.js ~3.9.0\n\t\t// plugins work with reveal.js 4.0.0\n\t\tif( arguments.length === 2 && typeof arguments[0] === 'string' ) {\n\t\t\tplugin = arguments[1];\n\t\t\tplugin.id = arguments[0];\n\t\t}\n\t\t// Plugin can optionally be a function which we call\n\t\t// to create an instance of the plugin\n\t\telse if( typeof plugin === 'function' ) {\n\t\t\tplugin = plugin();\n\t\t}\n\n\t\tlet id = plugin.id;\n\n\t\tif( typeof id !== 'string' ) {\n\t\t\tconsole.warn( 'Unrecognized plugin format; can\\'t find plugin.id', plugin );\n\t\t}\n\t\telse if( this.registeredPlugins[id] === undefined ) {\n\t\t\tthis.registeredPlugins[id] = plugin;\n\n\t\t\t// If a plugin is registered after reveal.js is loaded,\n\t\t\t// initialize it right away\n\t\t\tif( this.state === 'loaded' && typeof plugin.init === 'function' ) {\n\t\t\t\tplugin.init( this.Reveal );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconsole.warn( 'reveal.js: \"'+ id +'\" plugin has already been registered' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if a specific plugin has been registered.\n\t *\n\t * @param {String} id Unique plugin identifier\n\t */\n\thasPlugin( id ) {\n\n\t\treturn !!this.registeredPlugins[id];\n\n\t}\n\n\t/**\n\t * Returns the specific plugin instance, if a plugin\n\t * with the given ID has been registered.\n\t *\n\t * @param {String} id Unique plugin identifier\n\t */\n\tgetPlugin( id ) {\n\n\t\treturn this.registeredPlugins[id];\n\n\t}\n\n\tgetRegisteredPlugins() {\n\n\t\treturn this.registeredPlugins;\n\n\t}\n\n\tdestroy() {\n\n\t\tObject.values( this.registeredPlugins ).forEach( plugin => {\n\t\t\tif( typeof plugin.destroy === 'function' ) {\n\t\t\t\tplugin.destroy();\n\t\t\t}\n\t\t} );\n\n\t\tthis.registeredPlugins = {};\n\t\tthis.asyncDependencies = [];\n\n\t}\n\n}\n","import { SLIDES_SELECTOR } from '../utils/constants.js'\nimport { queryAll, createStyleSheet } from '../utils/util.js'\n\n/**\n * Setups up our presentation for printing/exporting to PDF.\n */\nexport default class Print {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\t/**\n\t * Configures the presentation for printing to a static\n\t * PDF.\n\t */\n\tasync setupPDF() {\n\n\t\tconst config = this.Reveal.getConfig();\n\t\tconst slides = queryAll( this.Reveal.getRevealElement(), SLIDES_SELECTOR )\n\n\t\t// Compute slide numbers now, before we start duplicating slides\n\t\tconst doingSlideNumbers = config.slideNumber && /all|print/i.test( config.showSlideNumber );\n\n\t\tconst slideSize = this.Reveal.getComputedSlideSize( window.innerWidth, window.innerHeight );\n\n\t\t// Dimensions of the PDF pages\n\t\tconst pageWidth = Math.floor( slideSize.width * ( 1 + config.margin ) ),\n\t\t\tpageHeight = Math.floor( slideSize.height * ( 1 + config.margin ) );\n\n\t\t// Dimensions of slides within the pages\n\t\tconst slideWidth = slideSize.width,\n\t\t\tslideHeight = slideSize.height;\n\n\t\tawait new Promise( requestAnimationFrame );\n\n\t\t// Let the browser know what page size we want to print\n\t\tcreateStyleSheet( '@page{size:'+ pageWidth +'px '+ pageHeight +'px; margin: 0px;}' );\n\n\t\t// Limit the size of certain elements to the dimensions of the slide\n\t\tcreateStyleSheet( '.reveal section>img, .reveal section>video, .reveal section>iframe{max-width: '+ slideWidth +'px; max-height:'+ slideHeight +'px}' );\n\n\t\tdocument.documentElement.classList.add( 'print-pdf' );\n\t\tdocument.body.style.width = pageWidth + 'px';\n\t\tdocument.body.style.height = pageHeight + 'px';\n\n\t\tconst viewportElement = document.querySelector( '.reveal-viewport' );\n\t\tlet presentationBackground;\n\t\tif( viewportElement ) {\n\t\t\tconst viewportStyles = window.getComputedStyle( viewportElement );\n\t\t\tif( viewportStyles && viewportStyles.background ) {\n\t\t\t\tpresentationBackground = viewportStyles.background;\n\t\t\t}\n\t\t}\n\n\t\t// Make sure stretch elements fit on slide\n\t\tawait new Promise( requestAnimationFrame );\n\t\tthis.Reveal.layoutSlideContents( slideWidth, slideHeight );\n\n\t\t// Batch scrollHeight access to prevent layout thrashing\n\t\tawait new Promise( requestAnimationFrame );\n\n\t\tconst slideScrollHeights = slides.map( slide => slide.scrollHeight );\n\n\t\tconst pages = [];\n\t\tconst pageContainer = slides[0].parentNode;\n\n\t\t// Slide and slide background layout\n\t\tslides.forEach( function( slide, index ) {\n\n\t\t\t// Vertical stacks are not centred since their section\n\t\t\t// children will be\n\t\t\tif( slide.classList.contains( 'stack' ) === false ) {\n\t\t\t\t// Center the slide inside of the page, giving the slide some margin\n\t\t\t\tlet left = ( pageWidth - slideWidth ) / 2;\n\t\t\t\tlet top = ( pageHeight - slideHeight ) / 2;\n\n\t\t\t\tconst contentHeight = slideScrollHeights[ index ];\n\t\t\t\tlet numberOfPages = Math.max( Math.ceil( contentHeight / pageHeight ), 1 );\n\n\t\t\t\t// Adhere to configured pages per slide limit\n\t\t\t\tnumberOfPages = Math.min( numberOfPages, config.pdfMaxPagesPerSlide );\n\n\t\t\t\t// Center slides vertically\n\t\t\t\tif( numberOfPages === 1 && config.center || slide.classList.contains( 'center' ) ) {\n\t\t\t\t\ttop = Math.max( ( pageHeight - contentHeight ) / 2, 0 );\n\t\t\t\t}\n\n\t\t\t\t// Wrap the slide in a page element and hide its overflow\n\t\t\t\t// so that no page ever flows onto another\n\t\t\t\tconst page = document.createElement( 'div' );\n\t\t\t\tpages.push( page );\n\n\t\t\t\tpage.className = 'pdf-page';\n\t\t\t\tpage.style.height = ( ( pageHeight + config.pdfPageHeightOffset ) * numberOfPages ) + 'px';\n\n\t\t\t\t// Copy the presentation-wide background to each individual\n\t\t\t\t// page when printing\n\t\t\t\tif( presentationBackground ) {\n\t\t\t\t\tpage.style.background = presentationBackground;\n\t\t\t\t}\n\n\t\t\t\tpage.appendChild( slide );\n\n\t\t\t\t// Position the slide inside of the page\n\t\t\t\tslide.style.left = left + 'px';\n\t\t\t\tslide.style.top = top + 'px';\n\t\t\t\tslide.style.width = slideWidth + 'px';\n\n\t\t\t\t// Re-run the slide layout so that r-fit-text is applied based on\n\t\t\t\t// the printed slide size\n\t\t\t\tthis.Reveal.slideContent.layout( slide )\n\n\t\t\t\tif( slide.slideBackgroundElement ) {\n\t\t\t\t\tpage.insertBefore( slide.slideBackgroundElement, slide );\n\t\t\t\t}\n\n\t\t\t\t// Inject notes if `showNotes` is enabled\n\t\t\t\tif( config.showNotes ) {\n\n\t\t\t\t\t// Are there notes for this slide?\n\t\t\t\t\tconst notes = this.Reveal.getSlideNotes( slide );\n\t\t\t\t\tif( notes ) {\n\n\t\t\t\t\t\tconst notesSpacing = 8;\n\t\t\t\t\t\tconst notesLayout = typeof config.showNotes === 'string' ? config.showNotes : 'inline';\n\t\t\t\t\t\tconst notesElement = document.createElement( 'div' );\n\t\t\t\t\t\tnotesElement.classList.add( 'speaker-notes' );\n\t\t\t\t\t\tnotesElement.classList.add( 'speaker-notes-pdf' );\n\t\t\t\t\t\tnotesElement.setAttribute( 'data-layout', notesLayout );\n\t\t\t\t\t\tnotesElement.innerHTML = notes;\n\n\t\t\t\t\t\tif( notesLayout === 'separate-page' ) {\n\t\t\t\t\t\t\tpages.push( notesElement );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesElement.style.left = notesSpacing + 'px';\n\t\t\t\t\t\t\tnotesElement.style.bottom = notesSpacing + 'px';\n\t\t\t\t\t\t\tnotesElement.style.width = ( pageWidth - notesSpacing*2 ) + 'px';\n\t\t\t\t\t\t\tpage.appendChild( notesElement );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Inject slide numbers if `slideNumbers` are enabled\n\t\t\t\tif( doingSlideNumbers ) {\n\t\t\t\t\tconst slideNumber = index + 1;\n\t\t\t\t\tconst numberElement = document.createElement( 'div' );\n\t\t\t\t\tnumberElement.classList.add( 'slide-number' );\n\t\t\t\t\tnumberElement.classList.add( 'slide-number-pdf' );\n\t\t\t\t\tnumberElement.innerHTML = slideNumber;\n\t\t\t\t\tpage.appendChild( numberElement );\n\t\t\t\t}\n\n\t\t\t\t// Copy page and show fragments one after another\n\t\t\t\tif( config.pdfSeparateFragments ) {\n\n\t\t\t\t\t// Each fragment 'group' is an array containing one or more\n\t\t\t\t\t// fragments. Multiple fragments that appear at the same time\n\t\t\t\t\t// are part of the same group.\n\t\t\t\t\tconst fragmentGroups = this.Reveal.fragments.sort( page.querySelectorAll( '.fragment' ), true );\n\n\t\t\t\t\tlet previousFragmentStep;\n\n\t\t\t\t\tfragmentGroups.forEach( function( fragments ) {\n\n\t\t\t\t\t\t// Remove 'current-fragment' from the previous group\n\t\t\t\t\t\tif( previousFragmentStep ) {\n\t\t\t\t\t\t\tpreviousFragmentStep.forEach( function( fragment ) {\n\t\t\t\t\t\t\t\tfragment.classList.remove( 'current-fragment' );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Show the fragments for the current index\n\t\t\t\t\t\tfragments.forEach( function( fragment ) {\n\t\t\t\t\t\t\tfragment.classList.add( 'visible', 'current-fragment' );\n\t\t\t\t\t\t}, this );\n\n\t\t\t\t\t\t// Create a separate page for the current fragment state\n\t\t\t\t\t\tconst clonedPage = page.cloneNode( true );\n\t\t\t\t\t\tpages.push( clonedPage );\n\n\t\t\t\t\t\tpreviousFragmentStep = fragments;\n\n\t\t\t\t\t}, this );\n\n\t\t\t\t\t// Reset the first/original page so that all fragments are hidden\n\t\t\t\t\tfragmentGroups.forEach( function( fragments ) {\n\t\t\t\t\t\tfragments.forEach( function( fragment ) {\n\t\t\t\t\t\t\tfragment.classList.remove( 'visible', 'current-fragment' );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\t\t\t\t// Show all fragments\n\t\t\t\telse {\n\t\t\t\t\tqueryAll( page, '.fragment:not(.fade-out)' ).forEach( function( fragment ) {\n\t\t\t\t\t\tfragment.classList.add( 'visible' );\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}, this );\n\n\t\tawait new Promise( requestAnimationFrame );\n\n\t\tpages.forEach( page => pageContainer.appendChild( page ) );\n\n\t\t// Notify subscribers that the PDF layout is good to go\n\t\tthis.Reveal.dispatchEvent({ type: 'pdf-ready' });\n\n\t}\n\n\t/**\n\t * Checks if this instance is being used to print a PDF.\n\t */\n\tisPrintingPDF() {\n\n\t\treturn ( /print-pdf/gi ).test( window.location.search );\n\n\t}\n\n}\n","import { isAndroid } from '../utils/device.js'\nimport { matches } from '../utils/util.js'\n\nconst SWIPE_THRESHOLD = 40;\n\n/**\n * Controls all touch interactions and navigations for\n * a presentation.\n */\nexport default class Touch {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\t// Holds information about the currently ongoing touch interaction\n\t\tthis.touchStartX = 0;\n\t\tthis.touchStartY = 0;\n\t\tthis.touchStartCount = 0;\n\t\tthis.touchCaptured = false;\n\n\t\tthis.onPointerDown = this.onPointerDown.bind( this );\n\t\tthis.onPointerMove = this.onPointerMove.bind( this );\n\t\tthis.onPointerUp = this.onPointerUp.bind( this );\n\t\tthis.onTouchStart = this.onTouchStart.bind( this );\n\t\tthis.onTouchMove = this.onTouchMove.bind( this );\n\t\tthis.onTouchEnd = this.onTouchEnd.bind( this );\n\n\t}\n\n\t/**\n\t *\n\t */\n\tbind() {\n\n\t\tlet revealElement = this.Reveal.getRevealElement();\n\n\t\tif( 'onpointerdown' in window ) {\n\t\t\t// Use W3C pointer events\n\t\t\trevealElement.addEventListener( 'pointerdown', this.onPointerDown, false );\n\t\t\trevealElement.addEventListener( 'pointermove', this.onPointerMove, false );\n\t\t\trevealElement.addEventListener( 'pointerup', this.onPointerUp, false );\n\t\t}\n\t\telse if( window.navigator.msPointerEnabled ) {\n\t\t\t// IE 10 uses prefixed version of pointer events\n\t\t\trevealElement.addEventListener( 'MSPointerDown', this.onPointerDown, false );\n\t\t\trevealElement.addEventListener( 'MSPointerMove', this.onPointerMove, false );\n\t\t\trevealElement.addEventListener( 'MSPointerUp', this.onPointerUp, false );\n\t\t}\n\t\telse {\n\t\t\t// Fall back to touch events\n\t\t\trevealElement.addEventListener( 'touchstart', this.onTouchStart, false );\n\t\t\trevealElement.addEventListener( 'touchmove', this.onTouchMove, false );\n\t\t\trevealElement.addEventListener( 'touchend', this.onTouchEnd, false );\n\t\t}\n\n\t}\n\n\t/**\n\t *\n\t */\n\tunbind() {\n\n\t\tlet revealElement = this.Reveal.getRevealElement();\n\n\t\trevealElement.removeEventListener( 'pointerdown', this.onPointerDown, false );\n\t\trevealElement.removeEventListener( 'pointermove', this.onPointerMove, false );\n\t\trevealElement.removeEventListener( 'pointerup', this.onPointerUp, false );\n\n\t\trevealElement.removeEventListener( 'MSPointerDown', this.onPointerDown, false );\n\t\trevealElement.removeEventListener( 'MSPointerMove', this.onPointerMove, false );\n\t\trevealElement.removeEventListener( 'MSPointerUp', this.onPointerUp, false );\n\n\t\trevealElement.removeEventListener( 'touchstart', this.onTouchStart, false );\n\t\trevealElement.removeEventListener( 'touchmove', this.onTouchMove, false );\n\t\trevealElement.removeEventListener( 'touchend', this.onTouchEnd, false );\n\n\t}\n\n\t/**\n\t * Checks if the target element prevents the triggering of\n\t * swipe navigation.\n\t */\n\tisSwipePrevented( target ) {\n\n\t\t// Prevent accidental swipes when scrubbing timelines\n\t\tif( matches( target, 'video, audio' ) ) return true;\n\n\t\twhile( target && typeof target.hasAttribute === 'function' ) {\n\t\t\tif( target.hasAttribute( 'data-prevent-swipe' ) ) return true;\n\t\t\ttarget = target.parentNode;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Handler for the 'touchstart' event, enables support for\n\t * swipe and pinch gestures.\n\t *\n\t * @param {object} event\n\t */\n\tonTouchStart( event ) {\n\n\t\tif( this.isSwipePrevented( event.target ) ) return true;\n\n\t\tthis.touchStartX = event.touches[0].clientX;\n\t\tthis.touchStartY = event.touches[0].clientY;\n\t\tthis.touchStartCount = event.touches.length;\n\n\t}\n\n\t/**\n\t * Handler for the 'touchmove' event.\n\t *\n\t * @param {object} event\n\t */\n\tonTouchMove( event ) {\n\n\t\tif( this.isSwipePrevented( event.target ) ) return true;\n\n\t\tlet config = this.Reveal.getConfig();\n\n\t\t// Each touch should only trigger one action\n\t\tif( !this.touchCaptured ) {\n\t\t\tthis.Reveal.onUserInput( event );\n\n\t\t\tlet currentX = event.touches[0].clientX;\n\t\t\tlet currentY = event.touches[0].clientY;\n\n\t\t\t// There was only one touch point, look for a swipe\n\t\t\tif( event.touches.length === 1 && this.touchStartCount !== 2 ) {\n\n\t\t\t\tlet availableRoutes = this.Reveal.availableRoutes({ includeFragments: true });\n\n\t\t\t\tlet deltaX = currentX - this.touchStartX,\n\t\t\t\t\tdeltaY = currentY - this.touchStartY;\n\n\t\t\t\tif( deltaX > SWIPE_THRESHOLD && Math.abs( deltaX ) > Math.abs( deltaY ) ) {\n\t\t\t\t\tthis.touchCaptured = true;\n\t\t\t\t\tif( config.navigationMode === 'linear' ) {\n\t\t\t\t\t\tif( config.rtl ) {\n\t\t\t\t\t\t\tthis.Reveal.next();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.Reveal.prev();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.Reveal.left();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( deltaX < -SWIPE_THRESHOLD && Math.abs( deltaX ) > Math.abs( deltaY ) ) {\n\t\t\t\t\tthis.touchCaptured = true;\n\t\t\t\t\tif( config.navigationMode === 'linear' ) {\n\t\t\t\t\t\tif( config.rtl ) {\n\t\t\t\t\t\t\tthis.Reveal.prev();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis.Reveal.next();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.Reveal.right();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( deltaY > SWIPE_THRESHOLD && availableRoutes.up ) {\n\t\t\t\t\tthis.touchCaptured = true;\n\t\t\t\t\tif( config.navigationMode === 'linear' ) {\n\t\t\t\t\t\tthis.Reveal.prev();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.Reveal.up();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( deltaY < -SWIPE_THRESHOLD && availableRoutes.down ) {\n\t\t\t\t\tthis.touchCaptured = true;\n\t\t\t\t\tif( config.navigationMode === 'linear' ) {\n\t\t\t\t\t\tthis.Reveal.next();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.Reveal.down();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If we're embedded, only block touch events if they have\n\t\t\t\t// triggered an action\n\t\t\t\tif( config.embedded ) {\n\t\t\t\t\tif( this.touchCaptured || this.Reveal.isVerticalSlide() ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Not embedded? Block them all to avoid needless tossing\n\t\t\t\t// around of the viewport in iOS\n\t\t\t\telse {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\t// There's a bug with swiping on some Android devices unless\n\t\t// the default action is always prevented\n\t\telse if( isAndroid ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the 'touchend' event.\n\t *\n\t * @param {object} event\n\t */\n\tonTouchEnd( event ) {\n\n\t\tthis.touchCaptured = false;\n\n\t}\n\n\t/**\n\t * Convert pointer down to touch start.\n\t *\n\t * @param {object} event\n\t */\n\tonPointerDown( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tthis.onTouchStart( event );\n\t\t}\n\n\t}\n\n\t/**\n\t * Convert pointer move to touch move.\n\t *\n\t * @param {object} event\n\t */\n\tonPointerMove( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tthis.onTouchMove( event );\n\t\t}\n\n\t}\n\n\t/**\n\t * Convert pointer up to touch end.\n\t *\n\t * @param {object} event\n\t */\n\tonPointerUp( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tthis.onTouchEnd( event );\n\t\t}\n\n\t}\n\n}","import { closest } from '../utils/util.js'\n\n/**\n * Manages focus when a presentation is embedded. This\n * helps us only capture keyboard from the presentation\n * a user is currently interacting with in a page where\n * multiple presentations are embedded.\n */\n\nconst STATE_FOCUS = 'focus';\nconst STATE_BLUR = 'blur';\n\nexport default class Focus {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t\tthis.onRevealPointerDown = this.onRevealPointerDown.bind( this );\n\t\tthis.onDocumentPointerDown = this.onDocumentPointerDown.bind( this );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tif( config.embedded ) {\n\t\t\tthis.blur();\n\t\t}\n\t\telse {\n\t\t\tthis.focus();\n\t\t\tthis.unbind();\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tif( this.Reveal.getConfig().embedded ) {\n\t\t\tthis.Reveal.getRevealElement().addEventListener( 'pointerdown', this.onRevealPointerDown, false );\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tthis.Reveal.getRevealElement().removeEventListener( 'pointerdown', this.onRevealPointerDown, false );\n\t\tdocument.removeEventListener( 'pointerdown', this.onDocumentPointerDown, false );\n\n\t}\n\n\tfocus() {\n\n\t\tif( this.state !== STATE_FOCUS ) {\n\t\t\tthis.Reveal.getRevealElement().classList.add( 'focused' );\n\t\t\tdocument.addEventListener( 'pointerdown', this.onDocumentPointerDown, false );\n\t\t}\n\n\t\tthis.state = STATE_FOCUS;\n\n\t}\n\n\tblur() {\n\n\t\tif( this.state !== STATE_BLUR ) {\n\t\t\tthis.Reveal.getRevealElement().classList.remove( 'focused' );\n\t\t\tdocument.removeEventListener( 'pointerdown', this.onDocumentPointerDown, false );\n\t\t}\n\n\t\tthis.state = STATE_BLUR;\n\n\t}\n\n\tisFocused() {\n\n\t\treturn this.state === STATE_FOCUS;\n\n\t}\n\n\tdestroy() {\n\n\t\tthis.Reveal.getRevealElement().classList.remove( 'focused' );\n\n\t}\n\n\tonRevealPointerDown( event ) {\n\n\t\tthis.focus();\n\n\t}\n\n\tonDocumentPointerDown( event ) {\n\n\t\tlet revealElement = closest( event.target, '.reveal' );\n\t\tif( !revealElement || revealElement !== this.Reveal.getRevealElement() ) {\n\t\t\tthis.blur();\n\t\t}\n\n\t}\n\n}","/**\n * Handles the showing and \n */\nexport default class Notes {\n\n\tconstructor( Reveal ) {\n\n\t\tthis.Reveal = Reveal;\n\n\t}\n\n\trender() {\n\n\t\tthis.element = document.createElement( 'div' );\n\t\tthis.element.className = 'speaker-notes';\n\t\tthis.element.setAttribute( 'data-prevent-swipe', '' );\n\t\tthis.element.setAttribute( 'tabindex', '0' );\n\t\tthis.Reveal.getRevealElement().appendChild( this.element );\n\n\t}\n\n\t/**\n\t * Called when the reveal.js config is updated.\n\t */\n\tconfigure( config, oldConfig ) {\n\n\t\tif( config.showNotes ) {\n\t\t\tthis.element.setAttribute( 'data-layout', typeof config.showNotes === 'string' ? config.showNotes : 'inline' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Pick up notes from the current slide and display them\n\t * to the viewer.\n\t *\n\t * @see {@link config.showNotes}\n\t */\n\tupdate() {\n\n\t\tif( this.Reveal.getConfig().showNotes && this.element && this.Reveal.getCurrentSlide() && !this.Reveal.print.isPrintingPDF() ) {\n\n\t\t\tthis.element.innerHTML = this.getSlideNotes() || 'No notes on this slide.';\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the visibility of the speaker notes sidebar that\n\t * is used to share annotated slides. The notes sidebar is\n\t * only visible if showNotes is true and there are notes on\n\t * one or more slides in the deck.\n\t */\n\tupdateVisibility() {\n\n\t\tif( this.Reveal.getConfig().showNotes && this.hasNotes() && !this.Reveal.print.isPrintingPDF() ) {\n\t\t\tthis.Reveal.getRevealElement().classList.add( 'show-notes' );\n\t\t}\n\t\telse {\n\t\t\tthis.Reveal.getRevealElement().classList.remove( 'show-notes' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if there are speaker notes for ANY slide in the\n\t * presentation.\n\t */\n\thasNotes() {\n\n\t\treturn this.Reveal.getSlidesElement().querySelectorAll( '[data-notes], aside.notes' ).length > 0;\n\n\t}\n\n\t/**\n\t * Checks if this presentation is running inside of the\n\t * speaker notes window.\n\t *\n\t * @return {boolean}\n\t */\n\tisSpeakerNotesWindow() {\n\n\t\treturn !!window.location.search.match( /receiver/gi );\n\n\t}\n\n\t/**\n\t * Retrieves the speaker notes from a slide. Notes can be\n\t * defined in two ways:\n\t * 1. As a data-notes attribute on the slide
    \n\t * 2. As an