diff --git a/_quarto.yml b/_quarto.yml index d720216..c00a134 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -23,26 +23,26 @@ website: url: pages/0.analisis_general.ipynb - text: "1. @diegobranca" url: pages/1.@diegobranca.ipynb - - text: "2. @JonatanViale" - url: pages/2.@JonatanViale.ipynb - - text: "3. @Angelalerena" - url: pages/3.@Angelalerena.ipynb - - text: "4. @Cris_noticias" - url: pages/4.@Cris_noticias.ipynb - - text: "5. @odonnellmaria" - url: pages/5.@odonnellmaria.ipynb - - text: "6. @edufeiok" - url: pages/6.@edufeiok.ipynb - - text: "7. @rialjorge" - url: pages/7.@rialjorge.ipynb - - text: "8. @robdnavarro" - url: pages/8.@robdnavarro.ipynb - - text: "9. @guadavazquez" - url: pages/9.@guadavazquez.ipynb - - text: "10. @luisnovaresio" - url: pages/10.@luisnovaresio.ipynb - - text: "11. @vivicanosaok" - url: pages/11.@vivicanosaok.ipynb + - text: "2. @Cris_noticias" + url: pages/2.@Cris_noticias.ipynb + - text: "3. @JonatanViale" + url: pages/3.@JonatanViale.ipynb + - text: "4. @Angelalerena" + url: pages/4.@Angelalerena.ipynb + - text: "5. @edufeiok" + url: pages/5.@edufeiok.ipynb + - text: "6. @rialjorge" + url: pages/6.@rialjorge.ipynb + - text: "7. @odonnellmaria" + url: pages/7.@odonnellmaria.ipynb + - text: "8. @guadavazquez" + url: pages/8.@guadavazquez.ipynb + - text: "9. @robdnavarro" + url: pages/9.@robdnavarro.ipynb + - text: "10. @vivicanosaok" + url: pages/10.@vivicanosaok.ipynb + - text: "11. @luisnovaresio" + url: pages/11.@luisnovaresio.ipynb repo-url: https://github.com/DataCritica/elecciones-argentina-2023 repo-actions: [edit, issue] diff --git a/docs/index.html b/docs/index.html index 91e0271..367f3c1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -120,62 +120,62 @@ @@ -216,7 +216,7 @@

Análisis de tweets durante las elecciones generales 2023 en A

Metodología

-

Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 20-11-2023.

+

Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 2023-11-20.

Los textos de los tweets fueron clasificados programáticamente utilizando un modelo de machine learning con la librería de Python transformers para generar etiquetas con tipos de discursos de odio.

El modelo utilizado para este etiquetado lleva por nombre beto-contextualized-hate-speech en Hugging Face y fue elegido ya que está entrenado con datos recolectados en el contexto de Argentina.

Este modelo tiene 9 clasificaciones distintas:

diff --git a/docs/pages/0.analisis_general.html b/docs/pages/0.analisis_general.html index a06b6f0..082310e 100644 --- a/docs/pages/0.analisis_general.html +++ b/docs/pages/0.analisis_general.html @@ -4556,62 +4556,62 @@ @@ -4634,9 +4634,12 @@

On this page

  • Ranking de periodistas atacados por género
  • Hombres periodistas más atacados
  • Mujeres periodistas más atacadas
  • -
  • ranking de tipos de ataques para hombres
  • -
  • ranking de tipos de ataques para mujeres
  • +
  • Ranking the tipos de ataques para hombres
  • +
  • Ranking the tipos de ataques para mujeres
  • Número de ataques por tipo de evento
  • +
  • Proporción de ataques por tipo de evento
  • +
  • Frecuencia de los ataques en función del número de menciones
  • +
  • Frecuencia de los ataques en función del número de seguidores
  • Actividad de los periodistas en Twitter por género
  • Ranking de periodistas más activos
  • Publicaciones de periodistas por evento
  • @@ -4686,31 +4689,33 @@

    Análisis de tweets durante las elecciones generales 2023 en A

    Datos

    -
    +
    Code
    # Print the number of tweets analyzed
     print(f"Número de tweets analizados: {len(df)}")
    -
    Número de tweets analizados: 52476
    +
    Número de tweets analizados: 79887

    Eventos monitoreados

    Cantidad de tweets para cada uno de los eventos monitoreados:

    -
    +
    Code
    # Get the value counts of the "event" column in the dataframe "df"
     df["event"].value_counts()
    -
    +
    event
    -elecciones    27448
    -1er debate    12588
    -2do debate    12440
    +elecciones balotaje     27448
    +elecciones generales    19970
    +1er debate              12588
    +debate balotaje         12440
    +2do debate               7441
     Name: count, dtype: int64
    @@ -4718,7 +4723,7 @@

    Eventos monitoreados<

    Fechas de eventos

    Periodo cubierto para cada evento

    -
    +
    Code
    # Define a function to get the date range of a given event
    @@ -4730,17 +4735,31 @@ 

    Fechas de eventos

    # Get the date ranges for each event debate1_min, debate1_max = get_date_range(df, "1er debate") debate2_min, debate2_max = get_date_range(df, "2do debate") -elecciones_min, elecciones_max = get_date_range(df, "elecciones") - -# Print the date ranges -print(f"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}") -print(f"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}") -print(f"Elecciones contempla tweets desde {elecciones_min} hasta {elecciones_max}")
    +elecciones_gen_min, elecciones_gen_max = get_date_range(df, "elecciones generales") +debate_balotaje_min, debate_balotaje_max = get_date_range(df, "debate balotaje") +elecciones_balotaje_min, elecciones_balotaje_max = get_date_range( + df, "elecciones balotaje" +) + +# Print the date ranges +print(f"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}") +print(f"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}") +print( + f"Elecciones generales contempla tweets desde {elecciones_gen_min} hasta {elecciones_gen_max}" +) +print( + f"El debate del balotaje contempla tweets desde {debate_balotaje_min} hasta {debate_balotaje_max}" +) +print( + f"Elecciones del balotaje contempla tweets desde {elecciones_balotaje_min} hasta {elecciones_balotaje_max}" +)
    El primer debate contempla tweets desde 2023-09-30 hasta 2023-10-02
    -El segundo debate contempla tweets desde 2023-11-11 hasta 2023-11-13
    -Elecciones contempla tweets desde 2023-11-16 hasta 2023-11-20
    +El segundo debate contempla tweets desde 2023-10-07 hasta 2023-10-09 +Elecciones generales contempla tweets desde 2023-10-19 hasta 2023-10-23 +El debate del balotaje contempla tweets desde 2023-11-11 hasta 2023-11-13 +Elecciones del balotaje contempla tweets desde 2023-11-16 hasta 2023-11-20
    @@ -4749,7 +4768,7 @@

    Ataques identificado

    NOTA: Un tweet puede tener diversas etiquetas

    -
    +
    Code
    # Subset of dataframe `df` containing only rows with non-null values in "label" and "to_journalist" columns
    @@ -4761,50 +4780,52 @@ 

    Ataques identificado )

    -
    En los datos se identificaron 2950 publicaciones etiquetadas como ataques.
    +
    En los datos se identificaron 4319 publicaciones etiquetadas como ataques.

    Ranking the periodistas más atacados

    -
    +
    Code
    attacks["to_journalist"].value_counts()
    -
    +
    to_journalist
    -@diegobranca       418
    -@JonatanViale      373
    -@Angelalerena      326
    -@Cris_noticias     266
    -@odonnellmaria     256
    -@edufeiok          244
    -@rialjorge         175
    -@robdnavarro       159
    -@guadavazquez      136
    -@luisnovaresio      99
    -@vivicanosaok       81
    -@majulluis          78
    -@mjolivan           62
    -@rominamanguel      57
    -@NANCYPAZOS         55
    -@nbg__              44
    -@Gatosylvestre      34
    -@ischargro          26
    -@anaecorrea         14
    -@cyngarciaradio     11
    -@hindelita           7
    +@diegobranca       712
    +@Cris_noticias     427
    +@JonatanViale      421
    +@Angelalerena      409
    +@edufeiok          399
    +@rialjorge         261
    +@odonnellmaria     258
    +@guadavazquez      216
    +@robdnavarro       209
    +@vivicanosaok      159
    +@luisnovaresio     154
    +@cyngarciaradio    152
    +@rominamanguel      95
    +@majulluis          85
    +@mjolivan           72
    +@Gatosylvestre      66
    +@nbg__              59
    +@NANCYPAZOS         58
    +@ischargro          27
    +@anaecorrea         21
    +@ertenembaum        11
    +@hindelita          10
    +@juliamengo          7
     @aleberco            7
    -@juliamengo          6
    -@ertenembaum         5
    -@Sietecase           2
    -@soyingridbeck       2
    +@alfleuco            4
    +@maclorena           4
    +@Marcelitaojeda      3
    +@MercedesFunes       3
    +@Sietecase           3
    +@negropolisok        2
     @wwnicolas           2
    -@MercedesFunes       2
    -@Marcelitaojeda      1
    -@negropolisok        1
    -@maclorena           1
    +@soyingridbeck       2
    +@monigps             1
     Name: count, dtype: int64
    @@ -4814,81 +4835,83 @@

    NOTA: Clasificación binaria

    -
    +
    Code
    attacks["journalist_genre"].value_counts()
    -
    +
    journalist_genre
    -H    1622
    -M    1328
    +H    2361
    +M    1958
     Name: count, dtype: int64

    Hombres periodistas más atacados

    -
    +
    Code
    attacks_men = attacks.loc[attacks["journalist_genre"].isin(["H"])]
     attacks_men["to_journalist"].value_counts()
    -
    +
    to_journalist
    -@diegobranca      418
    -@JonatanViale     373
    -@edufeiok         244
    -@rialjorge        175
    -@robdnavarro      159
    -@luisnovaresio     99
    -@majulluis         78
    -@Gatosylvestre     34
    -@ischargro         26
    +@diegobranca      712
    +@JonatanViale     421
    +@edufeiok         399
    +@rialjorge        261
    +@robdnavarro      209
    +@luisnovaresio    154
    +@majulluis         85
    +@Gatosylvestre     66
    +@ischargro         27
    +@ertenembaum       11
     @aleberco           7
    -@ertenembaum        5
    +@alfleuco           4
    +@Sietecase          3
     @wwnicolas          2
    -@Sietecase          2
     Name: count, dtype: int64

    Mujeres periodistas más atacadas

    -
    +
    Code
    attacks_women = attacks.loc[attacks["journalist_genre"].isin(["M"])]
     attacks_women["to_journalist"].value_counts()
    -
    +
    to_journalist
    -@Angelalerena      326
    -@Cris_noticias     266
    -@odonnellmaria     256
    -@guadavazquez      136
    -@vivicanosaok       81
    -@mjolivan           62
    -@rominamanguel      57
    -@NANCYPAZOS         55
    -@nbg__              44
    -@anaecorrea         14
    -@cyngarciaradio     11
    -@hindelita           7
    -@juliamengo          6
    +@Cris_noticias     427
    +@Angelalerena      409
    +@odonnellmaria     258
    +@guadavazquez      216
    +@vivicanosaok      159
    +@cyngarciaradio    152
    +@rominamanguel      95
    +@mjolivan           72
    +@nbg__              59
    +@NANCYPAZOS         58
    +@anaecorrea         21
    +@hindelita          10
    +@juliamengo          7
    +@maclorena           4
    +@MercedesFunes       3
    +@Marcelitaojeda      3
    +@negropolisok        2
     @soyingridbeck       2
    -@MercedesFunes       2
    -@Marcelitaojeda      1
    -@negropolisok        1
    -@maclorena           1
    +@monigps             1
     Name: count, dtype: int64
    -

    ranking de tipos de ataques para hombres

    -
    +

    Ranking the tipos de ataques para hombres

    +
    Code
    conditions = [
    @@ -4904,22 +4927,22 @@ 

    attacks_men_count = attacks_men[conditions].sum() attacks_men_count

    -
    -
    women         370
    -politics      450
    -appearance    646
    -racism         83
    -class          57
    -lgbti          57
    -criminal       31
    -calls          21
    +
    +
    women         524
    +politics      658
    +appearance    910
    +racism        151
    +class          92
    +lgbti          92
    +criminal       49
    +calls          33
     dtype: int64
    -

    ranking de tipos de ataques para mujeres

    -
    +

    Ranking the tipos de ataques para mujeres

    +
    Code
    conditions = [
    @@ -4935,104 +4958,224 @@ 

    attacks_women_count = attacks_women[conditions].sum() attacks_women_count

    -
    -
    women         607
    -politics      424
    -appearance    226
    -racism         63
    -class          69
    -lgbti          19
    -criminal        8
    -calls          10
    +
    +
    women         888
    +politics      569
    +appearance    377
    +racism        117
    +class         104
    +lgbti          29
    +criminal       14
    +calls          19
     dtype: int64

    Número de ataques por tipo de evento

    -
    +
    Code
    attacks["event"].value_counts()
    -
    +
    event
    -elecciones    1584
    -1er debate     698
    -2do debate     668
    +elecciones balotaje     1584
    +elecciones generales     987
    +1er debate               698
    +debate balotaje          668
    +2do debate               382
     Name: count, dtype: int64
    +
    +

    Proporción de ataques por tipo de evento

    +

    Porcentaje de ataques por tweets recolectados para cada evento

    +
    +
    +Code +
    count_1er_debate = df[df["event"] == "1er debate"].shape[0]
    +count_2do_debate = df[df["event"] == "2do debate"].shape[0]
    +count_elecciones_gen = df[df["event"] == "elecciones generales"].shape[0]
    +count_debate_balotaje = df[df["event"] == "debate balotaje"].shape[0]
    +count_elecciones_balotaje = df[df["event"] == "elecciones balotaje"].shape[0]
    +
    +
    +count_attacks_1er_debate = attacks[attacks["event"] == "1er debate"].shape[0]
    +count_attacks_2do_debate = attacks[attacks["event"] == "2do debate"].shape[0]
    +count_attacks_elecciones_gen = attacks[
    +    attacks["event"] == "elecciones generales"
    +].shape[0]
    +count_attacks_debate_balotaje = attacks[attacks["event"] == "debate balotaje"].shape[0]
    +count_attacks_elecciones_balotaje = attacks[
    +    attacks["event"] == "elecciones balotaje"
    +].shape[0]
    +
    +print(
    +    "El",
    +    round((count_attacks_1er_debate / count_1er_debate) * 100),
    +    "% del total de los tweets del 1er debate fueron ataques",
    +)
    +print(
    +    "El",
    +    round((count_attacks_2do_debate / count_2do_debate) * 100),
    +    "% del total de los tweets del 2do debate fueron ataques",
    +)
    +print(
    +    "El",
    +    round((count_attacks_elecciones_gen / count_elecciones_gen) * 100),
    +    "% del total de los tweets de las elecciones generales fueron ataques",
    +)
    +print(
    +    "El",
    +    round((count_attacks_debate_balotaje / count_debate_balotaje) * 100),
    +    "% del total de los tweets del debate del balotaje fueron ataques",
    +)
    +print(
    +    "El",
    +    round((count_attacks_elecciones_balotaje / count_elecciones_balotaje) * 100),
    +    "% del total de los tweets de las elecciones del balotaje fueron ataques",
    +)
    +
    +
    +
    El 6 % del total de los tweets del 1er debate fueron ataques
    +El 5 % del total de los tweets del 2do debate fueron ataques
    +El 5 % del total de los tweets de las elecciones generales fueron ataques
    +El 5 % del total de los tweets del debate del balotaje fueron ataques
    +El 6 % del total de los tweets de las elecciones del balotaje fueron ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de menciones

    +
    +
    +Code +
    mj_proportion_mentions = (1 + 1.6 + 0.9 + 0.8 + 0.6 + 0.8) / 6
    +formatted_mj = "{:.2f}".format(mj_proportion_mentions)
    +
    +wj_proportion_mentions = (0.9 + 1.1 + 0.8 + 0.6 + 0.6) / 5
    +formatted_wj = "{:.2f}".format(wj_proportion_mentions)
    +
    +
    +
    +
    +Code +
    print(
    +    f"Por cada 10 menciones, los periodistas hombres recibieron {formatted_mj} ataques"
    +)
    +print(
    +    f"Por cada 10 menciones, las periodistas mujeres recibieron {formatted_wj} ataques"
    +)
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +
    +
    +Code +
    mj_proportion_followers = (1.77 + 0.38 + 0.34 + 0.08 + 0.38 + 0.15) / 6
    +formatted_mj = "{:.2f}".format(mj_proportion_followers)
    +
    +wj_proportion_followers = (0.44 + 1.37 + 0.67 + 0.79 + 0.21) / 5
    +formatted_wj = "{:.2f}".format(wj_proportion_followers)
    +
    +
    +
    +
    +Code +
    print(
    +    f"Por cada 1K seguidores, los periodistas hombres recibieron {formatted_mj} ataques"
    +)
    +print(
    +    f"Por cada 1K seguidores, las periodistas mujeres recibieron {formatted_wj} ataques"
    +)
    +
    +
    +
    Por cada 1K seguidores, los periodistas hombres recibieron 0.52 ataques
    +Por cada 1K seguidores, las periodistas mujeres recibieron 0.70 ataques
    +
    +
    +

    Actividad de los periodistas en Twitter por género

    -
    +
    Code -
    journalist_posts = df.dropna(subset=["from_journalist"])
    -men_journalist_posts = journalist_posts.loc[
    -    journalist_posts["journalist_genre"].isin(["M"])
    -]
    -women_journalist_posts = journalist_posts.loc[
    -    journalist_posts["journalist_genre"].isin(["H"])
    -]
    -
    -print(
    -    f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
    -)
    +
    journalist_posts = df.dropna(subset=["from_journalist"])
    +men_journalist_posts = journalist_posts.loc[
    +    journalist_posts["journalist_genre"].isin(["M"])
    +]
    +women_journalist_posts = journalist_posts.loc[
    +    journalist_posts["journalist_genre"].isin(["H"])
    +]
    +
    +print(
    +    f"""Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}"""
    +)
    -
    Tweets publicados por periodistas hombres: 640
    -Tweets publicados por periodistas mujeres: 292
    +
    Tweets publicados por periodistas hombres: 1223
    +Tweets publicados por periodistas mujeres: 489

    Ranking de periodistas más activos

    -
    +
    Code -
    journalist_activity = df["from_journalist"].value_counts()
    -journalist_activity
    +
    journalist_activity = df["from_journalist"].value_counts()
    +journalist_activity
    -
    +
    from_journalist
    -@anaecorrea         105
    -@rominamanguel       61
    -@rialjorge           61
    -@diegobranca         60
    -@guadavazquez        55
    -@odonnellmaria       45
    -@Cris_noticias       42
    -@SilvinaMolina       36
    -@NANCYPAZOS          35
    -@hindelita           35
    -@majulluis           32
    -@soyingridbeck       31
    -@Marcelitaojeda      27
    -@nbg__               25
    -@Gatosylvestre       25
    -@edufeiok            24
    -@luisnovaresio       24
    -@monigps             23
    -@robdnavarro         23
    -@Angelalerena        22
    -@mjolivan            20
    -@MercedesFunes       18
    -@maclorena           13
    -@vivicanosaok        12
    -@aleberco            11
    +@anaecorrea         206
    +@guadavazquez       127
    +@rialjorge           99
    +@diegobranca         86
    +@SilvinaMolina       83
    +@rominamanguel       80
    +@Angelalerena        80
    +@nbg__               71
    +@NANCYPAZOS          70
    +@hindelita           66
    +@Cris_noticias       64
    +@Marcelitaojeda      53
    +@odonnellmaria       49
    +@Gatosylvestre       49
    +@soyingridbeck       48
    +@luisnovaresio       47
    +@edufeiok            46
    +@monigps             44
    +@mjolivan            39
    +@majulluis           37
    +@robdnavarro         31
    +@vivicanosaok        20
    +@cyngarciaradio      20
    +@MercedesFunes       20
    +@JonatanViale        20
    +@maclorena           18
    +@ertenembaum         16
    +@aleberco            15
    +@SANTIAGODELMORO     13
    +@ischargro           13
    +@juliamengo          13
    +@mafito11            12
    +@FlorHalfon          11
    +@SoleVallejos        11
    +@Sietecase           11
     @silviafbarrio        9
    -@juliamengo           9
    -@cyngarciaradio       9
    -@JonatanViale         8
    -@Sietecase            7
    -@SANTIAGODELMORO      7
    -@ischargro            7
    -@mafito11             5
    +@alfleuco             3
    +@gabycociffi          3
    +@negropolisok         2
     @wwnicolas            2
    -@FlorHalfon           2
    -@ertenembaum          1
    +@gabipellegrini3      1
    +@GabrielaWeller       1
    +@lucianageuna         1
    +@barilirodolfo        1
     @deboraplager         1
     Name: count, dtype: int64
    @@ -5040,43 +5183,43 @@

    Rankin

    Publicaciones de periodistas por evento

    -
    +
    Code -
    men_debate1 = men_journalist_posts.loc[
    -    men_journalist_posts["event"].isin(["1er debate"])
    -]
    -men_count = men_debate1.groupby("dt_date").size().reset_index(name="count")
    -
    -women_debate1 = women_journalist_posts.loc[
    -    women_journalist_posts["event"].isin(["1er debate"])
    -]
    -women_count = women_debate1.groupby("dt_date").size().reset_index(name="count")
    -
    -fig = px.line()
    -fig.add_scatter(
    -    x=men_count["dt_date"],
    -    y=men_count["count"],
    -    name="Hombres",
    -    line=dict(color="orange"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.add_scatter(
    -    x=women_count["dt_date"],
    -    y=women_count["count"],
    -    name="Mujeres",
    -    line=dict(color="purple"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.update_layout(title="Publicaciones de periodistas durante el 1er debate", width=600)
    -fig.update_xaxes(type="category")
    -fig.show()
    +
    men_debate1 = men_journalist_posts.loc[
    +    men_journalist_posts["event"].isin(["1er debate"])
    +]
    +men_count = men_debate1.groupby("dt_date").size().reset_index(name="count")
    +
    +women_debate1 = women_journalist_posts.loc[
    +    women_journalist_posts["event"].isin(["1er debate"])
    +]
    +women_count = women_debate1.groupby("dt_date").size().reset_index(name="count")
    +
    +fig = px.line()
    +fig.add_scatter(
    +    x=men_count["dt_date"],
    +    y=men_count["count"],
    +    name="Hombres",
    +    line=dict(color="orange"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.add_scatter(
    +    x=women_count["dt_date"],
    +    y=women_count["count"],
    +    name="Mujeres",
    +    line=dict(color="purple"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.update_layout(title="Publicaciones de periodistas durante el 1er debate", width=600)
    +fig.update_xaxes(type="category")
    +fig.show()
    -
    -
    +
    Code -
    def count_posts_by_gender(df, event):
    -    """
    -    This function takes in a DataFrame of journalist posts and an event string,
    -    and returns a new DataFrame with the count of posts by date for that event
    -    and gender.
    -    """
    -    debate_posts = df[df["event"].eq(event)]  # filter posts by event
    -    return (
    -        debate_posts.groupby("dt_date").size().reset_index(name="count")
    -    )  # group by date and count
    -
    -
    -# get posts for the 2nd debate for male and female journalists
    -men_debate2 = count_posts_by_gender(men_journalist_posts, "2do debate")
    -women_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
    -
    -# create a line plot of post counts by date for male and female journalists
    -fig = px.line()
    -fig.add_scatter(
    -    x=men_debate2["dt_date"],
    -    y=men_debate2["count"],
    -    name="Hombres",
    -    line=dict(color="orange"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.add_scatter(
    -    x=women_debate2["dt_date"],
    -    y=women_debate2["count"],
    -    name="Mujeres",
    -    line=dict(color="purple"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.update_layout(title="Publicaciones de periodistas durante el 2do debate", width=600)
    -fig.update_xaxes(type="category")
    -fig.show()
    +
    def count_posts_by_gender(df, event):
    +    """
    +    This function takes in a DataFrame of journalist posts and an event string,
    +    and returns a new DataFrame with the count of posts by date for that event
    +    and gender.
    +    """
    +    debate_posts = df[df["event"].eq(event)]  # filter posts by event
    +    return (
    +        debate_posts.groupby("dt_date").size().reset_index(name="count")
    +    )  # group by date and count
    +
    +
    +# get posts for the 2nd debate for male and female journalists
    +men_debate2 = count_posts_by_gender(men_journalist_posts, "2do debate")
    +women_debate2 = count_posts_by_gender(women_journalist_posts, "2do debate")
    +
    +# create a line plot of post counts by date for male and female journalists
    +fig = px.line()
    +fig.add_scatter(
    +    x=men_debate2["dt_date"],
    +    y=men_debate2["count"],
    +    name="Hombres",
    +    line=dict(color="orange"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.add_scatter(
    +    x=women_debate2["dt_date"],
    +    y=women_debate2["count"],
    +    name="Mujeres",
    +    line=dict(color="purple"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.update_layout(title="Publicaciones de periodistas durante el 2do debate", width=600)
    +fig.update_xaxes(type="category")
    +fig.show()
    -
    -
    +
    Code -
    men_debate2 = men_journalist_posts.loc[
    -    men_journalist_posts["event"].isin(["2do debate"])
    -]
    -men_count = men_debate2.groupby("dt_date").size().reset_index(name="count")
    -
    -women_debate2 = women_journalist_posts.loc[
    -    women_journalist_posts["event"].isin(["2do debate"])
    -]
    -women_count = women_debate2.groupby("dt_date").size().reset_index(name="count")
    -
    -fig = px.line()
    -fig.add_scatter(
    -    x=men_count["dt_date"],
    -    y=men_count["count"],
    -    name="Hombres",
    -    line=dict(color="orange"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.add_scatter(
    -    x=women_count["dt_date"],
    -    y=women_count["count"],
    -    name="Mujeres",
    -    line=dict(color="purple"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.update_layout(title="Publicaciones de periodistas durante el 2do debate", width=600)
    -fig.update_xaxes(type="category")
    -fig.show()
    +
    men_elecciones_gen = men_journalist_posts.loc[
    +    men_journalist_posts["event"].isin(["elecciones generales"])
    +]
    +men_count = men_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
    +
    +women_elecciones_gen = women_journalist_posts.loc[
    +    women_journalist_posts["event"].isin(["elecciones generales"])
    +]
    +women_count = women_elecciones_gen.groupby("dt_date").size().reset_index(name="count")
    +
    +fig = px.line()
    +fig.add_scatter(
    +    x=men_count["dt_date"],
    +    y=men_count["count"],
    +    name="Hombres",
    +    line=dict(color="orange"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.add_scatter(
    +    x=women_count["dt_date"],
    +    y=women_count["count"],
    +    name="Mujeres",
    +    line=dict(color="purple"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.update_layout(
    +    title="Publicaciones de periodistas durante las elecciones generales", width=600
    +)
    +fig.update_xaxes(type="category")
    +fig.show()
    -
    -
    +
    +
    +Code +
    men_debate_balotaje = men_journalist_posts.loc[
    +    men_journalist_posts["event"].isin(["debate balotaje"])
    +]
    +men_count = men_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
    +
    +women_debate_balotaje = women_journalist_posts.loc[
    +    women_journalist_posts["event"].isin(["debate balotaje"])
    +]
    +women_count = women_debate_balotaje.groupby("dt_date").size().reset_index(name="count")
    +
    +fig = px.line()
    +fig.add_scatter(
    +    x=men_count["dt_date"],
    +    y=men_count["count"],
    +    name="Hombres",
    +    line=dict(color="orange"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.add_scatter(
    +    x=women_count["dt_date"],
    +    y=women_count["count"],
    +    name="Mujeres",
    +    line=dict(color="purple"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.update_layout(
    +    title="Publicaciones de periodistas durante el debate del balotaje", width=600
    +)
    +fig.update_xaxes(type="category")
    +fig.show()
    +
    +
    + +
    +
    +
    +
    Code -
    men_elecciones = men_journalist_posts.loc[
    -    men_journalist_posts["event"].isin(["elecciones"])
    -]
    -men_count = men_elecciones.groupby("dt_date").size().reset_index(name="count")
    -
    -women_elecciones = women_journalist_posts.loc[
    -    women_journalist_posts["event"].isin(["elecciones"])
    -]
    -women_count = women_elecciones.groupby("dt_date").size().reset_index(name="count")
    -
    -fig = px.line()
    -fig.add_scatter(
    -    x=men_count["dt_date"],
    -    y=men_count["count"],
    -    name="Hombres",
    -    line=dict(color="orange"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.add_scatter(
    -    x=women_count["dt_date"],
    -    y=women_count["count"],
    -    name="Mujeres",
    -    line=dict(color="purple"),
    -    hovertemplate="posts: %{y}",
    -)
    -fig.update_layout(title="Publicaciones de periodistas durante las eleciones", width=600)
    -fig.update_xaxes(type="category")
    -fig.show()
    +
    men_elecciones_balotaje = men_journalist_posts.loc[
    +    men_journalist_posts["event"].isin(["elecciones balotaje"])
    +]
    +men_count = men_elecciones_balotaje.groupby("dt_date").size().reset_index(name="count")
    +
    +women_elecciones_balotaje = women_journalist_posts.loc[
    +    women_journalist_posts["event"].isin(["elecciones balotaje"])
    +]
    +women_count = (
    +    women_elecciones_balotaje.groupby("dt_date").size().reset_index(name="count")
    +)
    +
    +fig = px.line()
    +fig.add_scatter(
    +    x=men_count["dt_date"],
    +    y=men_count["count"],
    +    name="Hombres",
    +    line=dict(color="orange"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.add_scatter(
    +    x=women_count["dt_date"],
    +    y=women_count["count"],
    +    name="Mujeres",
    +    line=dict(color="purple"),
    +    hovertemplate="posts: %{y}",
    +)
    +fig.update_layout(
    +    title="Publicaciones de periodistas durante las elecciones del balotaje", width=600
    +)
    +fig.update_xaxes(type="category")
    +fig.show()
    -
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @vivicanosaok

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 159
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.6 de cada 10 publicaciones que mencionan a @vivicanosaok son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 742466) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.21 ataques para @vivicanosaok
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    women         91
    +appearance    50
    +politics      14
    +racism         4
    +class          4
    +lgbti          2
    +criminal       1
    +calls          0
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones generales    46
    +1er debate              45
    +2do debate              32
    +debate balotaje         21
    +elecciones balotaje     15
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #Milei               1
    +#VotoContraMassa     1
    +#SeVanParaSiempre    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    vivicanosaok    2
    +PatoBullrich    1
    +JonatanViale    1
    +JMilei          1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    massa        24
    +milei        20
    +vieja        18
    +sos          15
    +q            15
    +pautosa      11
    +viviana      10
    +meada        10
    +canosa        8
    +vos           8
    +jajaja        7
    +vas           7
    +viejo         7
    +ensobrada     6
    +das           6
    +gordo         6
    +anda          6
    +borracha      5
    +debate        5
    +asco          5
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/11.@luisnovaresio.html b/docs/pages/11.@luisnovaresio.html new file mode 100644 index 0000000..b857273 --- /dev/null +++ b/docs/pages/11.@luisnovaresio.html @@ -0,0 +1,5229 @@ + + + + + + + + + + + +Análisis de tweets atacando a @luisnovaresio + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @luisnovaresio

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 154
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.8 de cada 10 publicaciones que mencionan a @luisnovaresio son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 1019016) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.15 ataques para @luisnovaresio
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    politics      68
    +women         31
    +appearance    28
    +racism        20
    +lgbti         16
    +class          5
    +calls          4
    +criminal       1
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +1er debate              64
    +2do debate              51
    +elecciones balotaje     26
    +debate balotaje          9
    +elecciones generales     4
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #Pato2023    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    PatoBullrich     1
    +JMilei           1
    +luisnovaresio    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos         27
    +sos         26
    +zurda       14
    +gorila      14
    +q           11
    +asco         7
    +estás        7
    +luis         6
    +años         5
    +mierda       5
    +país         5
    +trolo        5
    +zurdo        5
    +israel       5
    +d            5
    +tenes        5
    +milei        4
    +zurdos       4
    +derechos     4
    +bregman      4
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/2.@Cris_noticias.html b/docs/pages/2.@Cris_noticias.html new file mode 100644 index 0000000..d690019 --- /dev/null +++ b/docs/pages/2.@Cris_noticias.html @@ -0,0 +1,5240 @@ + + + + + + + + + + + +Análisis de tweets atacando a @Cris_noticias + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @Cris_noticias

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 427
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.9 de cada 10 publicaciones que mencionan a @Cris_noticias son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 979948) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.44 ataques para @Cris_noticias
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    women         218
    +politics      115
    +appearance     80
    +racism         21
    +class          13
    +lgbti           3
    +calls           2
    +criminal        0
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones balotaje     214
    +elecciones generales    115
    +debate balotaje          52
    +2do debate               46
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #nuncamas               1
    +#PalestinaLibre         1
    +#YoVotoAMassa           1
    +#Milei                  1
    +#NuncaMilei             1
    +#MassaPresidente2023    1
    +#NuncaMas               1
    +#MileiNo                1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    Cris_noticias      2
    +myriambregman      1
    +SergioMassa        1
    +JMilei             1
    +PatoBullrich       1
    +luispetri          1
    +JorgeTelerman      1
    +horaciorlarreta    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos          43
    +sos          38
    +gorila       34
    +q            32
    +marido       30
    +novio        25
    +botox        23
    +vieja        19
    +mierda       19
    +cara         17
    +milei        16
    +gente        16
    +vas          15
    +zurdos       15
    +tenes        14
    +dictadura    10
    +x            10
    +orto         10
    +anda          9
    +massa         9
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/3.@JonatanViale.html b/docs/pages/3.@JonatanViale.html new file mode 100644 index 0000000..82a8642 --- /dev/null +++ b/docs/pages/3.@JonatanViale.html @@ -0,0 +1,5245 @@ + + + + + + + + + + + +Análisis de tweets atacando a @JonatanViale + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @JonatanViale

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 421
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 1.6 de cada 10 publicaciones que mencionan a @JonatanViale son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 1096113) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.38 ataques para @JonatanViale
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    appearance    258
    +women          97
    +politics       41
    +racism         22
    +class           7
    +criminal        7
    +lgbti           6
    +calls           4
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +debate balotaje        176
    +elecciones balotaje    130
    +1er debate              67
    +2do debate              48
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #SeVanParaSiempre         1
    +#MemoriaAlVotar           1
    +#EsCorrupciónOJusticia    1
    +#MassaPresidente          1
    +#LaLibertadTransa         1
    +#MassaPresidente2023      1
    +#NoAMilei                 1
    +#GORDITOLECHOSO           1
    +#Gorditolechoso           1
    +#Periodistaensobrado      1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    vivicanosaok       1
    +PatoBullrich       1
    +JonatanViale       1
    +MalenaGalmarini    1
    +edufeiok           1
    +Kicillofok         1
    +minsaurralde       1
    +LANACION           1
    +JMilei             1
    +c0o0ni             1
    +Pontifex_es        1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    lechoso       136
    +gordito        90
    +gordo          68
    +vos            53
    +sos            46
    +vas            45
    +q              30
    +leche          22
    +rodilleras     16
    +pija           15
    +ensobrado      15
    +milei          15
    +pelotudo       15
    +viejo          14
    +macri          12
    +cara           12
    +chupa          11
    +mierda         10
    +puta            9
    +tomar           9
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/4.@Angelalerena.html b/docs/pages/4.@Angelalerena.html new file mode 100644 index 0000000..3769d3e --- /dev/null +++ b/docs/pages/4.@Angelalerena.html @@ -0,0 +1,5229 @@ + + + + + + + + + + + +Análisis de tweets atacando a @Angelalerena + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @Angelalerena

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 409
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 1.1 de cada 10 publicaciones que mencionan a @Angelalerena son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 297964) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 1.37 ataques para @Angelalerena
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    women         191
    +politics      132
    +appearance     69
    +class          54
    +racism         14
    +lgbti           9
    +criminal        4
    +calls           2
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones balotaje     308
    +elecciones generales     83
    +1er debate               10
    +debate balotaje           8
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #viv    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    Angelalerena       1
    +diegobranca        1
    +MalenaGalmarini    1
    +JMilei             1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    sos        42
    +vos        42
    +q          36
    +laburo     31
    +mierda     28
    +vas        27
    +amor       20
    +laburar    19
    +orto       19
    +buscar     18
    +curro      16
    +anda       16
    +zurda      15
    +puta       15
    +años       14
    +kuka       14
    +gente      14
    +voto       14
    +cara       13
    +trabajo    12
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/5.@edufeiok.html b/docs/pages/5.@edufeiok.html new file mode 100644 index 0000000..203be22 --- /dev/null +++ b/docs/pages/5.@edufeiok.html @@ -0,0 +1,5242 @@ + + + + + + + + + + + +Análisis de tweets atacando a @edufeiok + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @edufeiok

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 399
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.9 de cada 10 publicaciones que mencionan a @edufeiok son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 1172661) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.34 ataques para @edufeiok
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    appearance    115
    +women         112
    +politics      108
    +racism         48
    +lgbti           9
    +calls           9
    +criminal        8
    +class           7
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones balotaje     190
    +elecciones generales    115
    +2do debate               40
    +debate balotaje          35
    +1er debate               19
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #PatoBullrichPresidente2023    1
    +#PatoPresidente                1
    +#PatriciaBullrich              1
    +#ZurdosHijosDePuta             1
    +#Colombia                      1
    +#NegroFuturo                   1
    +#bipolaridad                   1
    +#argentina                     1
    +#Son30Mil                      1
    +#fraude                        1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    edufeiok           1
    +myriambregman      1
    +r                  1
    +JonatanViale       1
    +CarlosMaslaton     1
    +QuintelaRicardo    1
    +ursuvargues        1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos          48
    +q            45
    +enano        32
    +sos          28
    +edu          24
    +asco         22
    +trompas      20
    +ligó         17
    +facho        14
    +país         14
    +mierda       14
    +viejo        14
    +massa        13
    +das          12
    +milei        12
    +vas          11
    +años         10
    +argentina    10
    +votar         9
    +mujer         9
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/6.@rialjorge.html b/docs/pages/6.@rialjorge.html new file mode 100644 index 0000000..19513e6 --- /dev/null +++ b/docs/pages/6.@rialjorge.html @@ -0,0 +1,5234 @@ + + + + + + + + + + + +Análisis de tweets atacando a @rialjorge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @rialjorge

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 261
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.8 de cada 10 publicaciones que mencionan a @rialjorge son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 3342769) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.08 ataques para @rialjorge
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    appearance    95
    +women         78
    +politics      68
    +racism        14
    +class          9
    +lgbti          5
    +criminal       2
    +calls          1
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones balotaje     108
    +elecciones generales     70
    +debate balotaje          39
    +1er debate               28
    +2do debate               16
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #BrancatelliPelotudo    1
    +#MileiPresidente        1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    rialjorge         2
    +SergioMassa       1
    +JMilei            1
    +do                1
    +JonatanViale      1
    +PRossiOficial     1
    +LuisNovaresio1    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos       39
    +q         35
    +viejo     34
    +sos       27
    +huevo     14
    +vas       13
    +gente     11
    +vieja     11
    +tenes      9
    +rial       9
    +duro       9
    +asco       9
    +zurdos     9
    +cara       9
    +bajate     8
    +huevos     7
    +sorete     7
    +ojalá      7
    +bájate     7
    +país       7
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/7.@odonnellmaria.html b/docs/pages/7.@odonnellmaria.html new file mode 100644 index 0000000..54031bc --- /dev/null +++ b/docs/pages/7.@odonnellmaria.html @@ -0,0 +1,5231 @@ + + + + + + + + + + + +Análisis de tweets atacando a @odonnellmaria + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @odonnellmaria

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 258
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.8 de cada 10 publicaciones que mencionan a @odonnellmaria son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 383772) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.67 ataques para @odonnellmaria
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    politics      116
    +women         107
    +appearance     51
    +class          13
    +racism          8
    +lgbti           0
    +criminal        0
    +calls           0
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +1er debate              113
    +debate balotaje          90
    +elecciones balotaje      53
    +elecciones generales      2
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #Milei2023EnPrimeraVuelta    1
    +#coreadelcentro              1
    +#LameTujesK                  1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    odonellmaria     1
    +odonnellmaria    1
    +SergioMassa      1
    +ertenembaum      1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos          44
    +sos          41
    +zurda        39
    +q            20
    +maría        13
    +ensobrada    11
    +anda          9
    +pauta         8
    +milei         8
    +derecho       8
    +kuka          8
    +k             8
    +gente         7
    +puta          7
    +vieja         7
    +zurdos        7
    +mujer         7
    +vagos         7
    +orto          6
    +nota          6
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/8.@guadavazquez.html b/docs/pages/8.@guadavazquez.html new file mode 100644 index 0000000..e2a2aec --- /dev/null +++ b/docs/pages/8.@guadavazquez.html @@ -0,0 +1,5230 @@ + + + + + + + + + + + +Análisis de tweets atacando a @guadavazquez + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @guadavazquez

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 216
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.6 de cada 10 publicaciones que mencionan a @guadavazquez son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 272752) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.79 ataques para @guadavazquez
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    women         91
    +politics      46
    +appearance    23
    +racism        13
    +calls          7
    +class          6
    +lgbti          6
    +criminal       2
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +1er debate              63
    +elecciones balotaje     53
    +elecciones generales    42
    +2do debate              38
    +debate balotaje         20
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #Tenemos    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    vivicanosaok      1
    +guadavazquez      1
    +edufeiok          1
    +EsmeraldaMitre    1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    gato         25
    +guada        17
    +q            14
    +jajaja       13
    +vos          10
    +zurdos        8
    +sos           8
    +cara          7
    +milei         7
    +medicado      6
    +abrazo        6
    +peronchos     6
    +entiendo      5
    +gatos         5
    +re            5
    +familia       5
    +acá           5
    +bregman       5
    +zurda         5
    +asco          5
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/pages/9.@robdnavarro.html b/docs/pages/9.@robdnavarro.html new file mode 100644 index 0000000..4a76114 --- /dev/null +++ b/docs/pages/9.@robdnavarro.html @@ -0,0 +1,5236 @@ + + + + + + + + + + + +Análisis de tweets atacando a @robdnavarro + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + +
    + +
    + + +
    + + + +
    + +
    +
    +

    Análisis de tweets atacando a @robdnavarro

    +
    + + + +
    + +
    +
    Author
    +
    +

    Fernanda Aguirre

    +
    +
    + +
    +
    Published
    +
    +

    January 16, 2024

    +
    +
    + + +
    + + +
    + +
    +

    Datos

    +
    +
    +Code +
    df_attacks = attacks.loc[attacks["to_journalist"].isin([USERNAME])]
    +print(f"Número de ataques: {len(df_attacks)}")
    +
    +
    +
    Número de ataques: 209
    +
    +
    +
    +
    +

    Frecuencia de ataques

    +

    Proporción de ataques = (Número de ataques / Número de menciones) * 100

    +
    +
    +Code +
    journalist_mentions = len(df.loc[df["to_journalist"].isin([USERNAME])])
    +journalist_attacks = len(df_attacks)
    +
    +percentage_attacks = (journalist_attacks / journalist_mentions) * 100
    +
    +proportion = (percentage_attacks / 100) * 10
    +proportion_rounded = round(proportion, 1)
    +
    +
    +print(
    +    f"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques"
    +)
    +
    +
    +
    Aproximadamente 0.6 de cada 10 publicaciones que mencionan a @robdnavarro son ataques
    +
    +
    +
    +
    +

    Frecuencia de los ataques en función del número de seguidores

    +

    Proporción de ataques por seguidor = Número de ataques / Número de seguidores

    +
    +
    +Code +
    proportion_followers = (len(df_attacks) / 545782) * 1000
    +formatted_proportion = "{:.2f}".format(proportion_followers)
    +print(f"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}")
    +
    +
    +
    Por cada 1K seguidores, hubo 0.38 ataques para @robdnavarro
    +
    +
    +
    +
    +

    Ranking de tipos de ataques

    +
    +
    +Code +
    conditions = [
    +    "women",
    +    "politics",
    +    "appearance",
    +    "racism",
    +    "class",
    +    "lgbti",
    +    "criminal",
    +    "calls",
    +]
    +attacks_count = df_attacks[conditions].sum()
    +attacks_count = attacks_count.sort_values(ascending=False)
    +attacks_count
    +
    +
    +
    politics      84
    +appearance    56
    +women         39
    +racism        15
    +class         13
    +lgbti          4
    +criminal       4
    +calls          4
    +dtype: int64
    +
    +
    +
    +
    +

    Número de ataques por tipo de evento

    +
    +
    +Code +
    df_attacks["event"].value_counts()
    +
    +
    +
    event
    +elecciones balotaje     69
    +1er debate              48
    +debate balotaje         42
    +elecciones generales    29
    +2do debate              21
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Publicaciones por evento

    +
    +
    +Code +
    journalist_posts = df.loc[df["from_journalist"].isin([USERNAME])]
    +journalist_posts = journalist_posts.dropna(subset=["from_journalist"])
    +
    +eventos = [
    +    "1er debate",
    +    "2do debate",
    +    "elecciones generales",
    +    "debate balotaje",
    +    "elecciones balotaje",
    +]
    +colors = ["green", "purple", "orange", "red", "blue"]
    +eventos_count = {}
    +
    +fig = px.line()
    +
    +for i, evento in enumerate(eventos):
    +    evento_data = journalist_posts.loc[journalist_posts["event"].isin([evento])]
    +    evento_count = evento_data.groupby("dt_date").size().reset_index(name="count")
    +    eventos_count[evento] = evento_count
    +    fig.add_scatter(
    +        x=evento_count["dt_date"],
    +        y=evento_count["count"],
    +        name=evento,
    +        line=dict(color=colors[i]),
    +        hovertemplate="posts: %{y}",
    +    )
    +
    +fig.update_layout(title=f"Publicaciones de {USERNAME}", width=1000)
    +fig.update_xaxes(type="category")
    +fig.update_yaxes(range=[0, 100])
    +fig.show()
    +
    +
    + +
    +
    +
    +
    +
    +

    Hashtags

    +
    +
    +Code +
    df_attacks["hashtags"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"#\w+", x)) == 0
    +        else re.findall(r"#\w+", x)
    +    )
    +)
    +
    +df_attacks["hashtags"] = df_attacks["hashtags"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +hashtags = df_attacks["hashtags"].unique()
    +
    +# remove nan items from list
    +hashtags = [x for x in hashtags if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +hashtags = [x.split(",") for x in hashtags]
    +
    +# flatten list of lists
    +hashtags = [item for sublist in hashtags for item in sublist]
    +
    +# remove whitespaces
    +hashtags = list(map(lambda x: x.replace(" ", ""), hashtags))
    +
    +# count items on list
    +hashtags_count = pd.Series(hashtags).value_counts()
    +
    +hashtags_count
    +
    +
    +
    #Paliza                      1
    +#SeVan                       1
    +#yonovoto                    1
    +#MASSAQUISTAS                1
    +#BastaDeMafiaKirchnerista    1
    +#TeatroColon                 1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Menciones

    +
    +
    +Code +
    df_attacks["mentions"] = df_attacks["text"].apply(
    +    lambda x: (
    +        np.nan
    +        if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r"@(\w+)", x)) == 0
    +        else re.findall(r"@(\w+)", x)
    +    )
    +)
    +
    +df_attacks["mentions"] = df_attacks["mentions"].apply(
    +    lambda x: ", ".join(x) if isinstance(x, list) else x
    +)
    +
    +# convert dataframe column to list
    +mentions = df_attacks["mentions"].unique()
    +
    +# remove nan items from list
    +mentions = [x for x in mentions if not pd.isna(x)]
    +
    +# split items into a list based on a delimiter
    +mentions = [x.split(",") for x in mentions]
    +
    +# flatten list of lists
    +mentions = [item for sublist in mentions for item in sublist]
    +
    +# remove whitespaces
    +mentions = list(map(lambda x: x.replace(" ", ""), mentions))
    +
    +# count items on list
    +mentions_count = pd.Series(mentions).value_counts()
    +
    +mentions_count
    +
    +
    +
    robdnavarro      1
    +robnavarro       1
    +JMilei           1
    +Chimi89606580    1
    +edugbonorino     1
    +Name: count, dtype: int64
    +
    +
    +
    +
    +

    Tokens

    +
    +
    +Code +
    # load the spacy model for Spanish
    +nlp = spacy.load("es_core_news_sm")
    +
    +# load stop words for Spanish
    +STOP_WORDS = nlp.Defaults.stop_words
    +
    +
    +# Function to filter stop words
    +def filter_stopwords(text):
    +    # lower text
    +    doc = nlp(text.lower())
    +    # filter tokens
    +    tokens = [
    +        token.text
    +        for token in doc
    +        if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha
    +    ]
    +    return " ".join(tokens)
    +
    +
    +# apply function to dataframe column
    +df_attacks["text_pre"] = df_attacks["text"].apply(filter_stopwords)
    +
    +# count items on column
    +token_counts = df_attacks["text_pre"].str.split(expand=True).stack().value_counts()[:20]
    +
    +token_counts
    +
    +
    +
    vos           19
    +viejo         18
    +sos           14
    +milei         12
    +peronchos     11
    +k              9
    +scioli         9
    +culo           8
    +asco           8
    +orto           7
    +mierda         7
    +kk             7
    +ovacionado     7
    +ensobrado      6
    +ganó           6
    +kukas          6
    +anda           6
    +massa          6
    +navarro        6
    +vas            6
    +Name: count, dtype: int64
    +
    +
    + + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/docs/search.json b/docs/search.json index c04b198..fe40ae8 100644 --- a/docs/search.json +++ b/docs/search.json @@ -25,7 +25,7 @@ "href": "pages/1.@diegobranca.html", "title": "Análisis de tweets atacando a @diegobranca", "section": "", - "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 418\n\n\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 1.1 de cada 10 publicaciones que mencionan a @diegobranca son ataques\n\n\n\n\nranking de tipos de ataques\n\n\nCode\nconditions = ['women', 'politics', 'appearance', 'racism', 'class', 'lgbti', 'criminal', 'calls']\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nappearance 199\npolitics 127\nwomen 62\nlgbti 25\nclass 22\nracism 18\ncriminal 14\ncalls 5\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks['event'].value_counts()\n\n\nevent\nelecciones 229\n1er debate 102\n2do debate 87\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df['from_journalist'].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=['from_journalist'])\n\neventos = ['1er debate', '2do debate', 'elecciones']\ncolors = ['green', 'purple', 'orange']\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts['event'].isin([evento])]\n evento_count = evento_data.groupby('dt_date').size().reset_index(name='count')\n eventos_count[evento] = evento_count\n fig.add_scatter(x=evento_count['dt_date'], y=evento_count['count'], name=evento, line=dict(color=colors[i]), hovertemplate='posts: %{y}')\n\nfig.update_layout(title=f'Publicaciones de {USERNAME}', width=600)\nfig.update_xaxes(type='category')\nfig.update_yaxes(range=[0, 100]) \nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks['hashtags'] = df_attacks['text'].apply(lambda x: np.nan if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r'#\\w+', x)) == 0 else re.findall(r'#\\w+', x))\n\ndf_attacks['hashtags'] = df_attacks['hashtags'].apply(lambda x: ', '.join(x) if isinstance(x, list) else x)\n\n# convert dataframe column to list\nhashtags = df_attacks['hashtags'].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(',') for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(' ', ''), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#KirchnerismoNuncaMas 2\n#ElPeorGobiernoDeLaHistoria 1\n#SeVanParaSiempre 1\n#tugo 1\n#Afip 1\n#NoAl5toGobiernoK 1\n#NoVasASerPresidente 1\n#EsAhoraYParaSiempre 1\n#MileiPresidente 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks['mentions'] = df_attacks['text'].apply(lambda x: np.nan if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r'@(\\w+)', x)) == 0 else re.findall(r'@(\\w+)', x))\n\ndf_attacks['mentions'] = df_attacks['mentions'].apply(lambda x: ', '.join(x) if isinstance(x, list) else x)\n\n# convert dataframe column to list\nmentions = df_attacks['mentions'].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(',') for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(' ', ''), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nSergioMassa 2\nSergioChouza 1\nminsaurralde 1\nT 1\nJMilei 1\nherlombardi 1\ns 1\ndiegobranca 1\nMunicipioPilar 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [token.text for token in doc if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha]\n return ' '.join(tokens)\n\n# apply function to dataframe column\ndf_attacks['text_pre'] = df_attacks['text'].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\ngordo 113\nvos 85\nsos 59\nq 35\ngordito 22\nk 20\nvas 19\nmierda 19\ntenes 18\nmassa 16\nlaburar 15\nperonchos 15\nbranca 15\nculo 15\nanda 14\nmilei 13\ngente 13\nmufa 13\npelotudo 13\nensobrado 12\nName: count, dtype: int64" + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 712\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 1.0 de cada 10 publicaciones que mencionan a @diegobranca son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 401737) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 1.77 ataques para @diegobranca\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nappearance 309\npolitics 222\nwomen 110\nclass 44\nlgbti 44\nracism 25\ncriminal 24\ncalls 6\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones generales 265\nelecciones balotaje 229\n1er debate 102\ndebate balotaje 87\n2do debate 29\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#ElPeorGobiernoDeLaHistoria 2\n#KirchnerismoNuncaMas 2\n#SeVannnnnn 1\n#EsAhoraYParaSiempre 1\n#NoVasASerPresidente 1\n#NoAl5toGobiernoK 1\n#elsi 1\n#Sellamaperiodista 1\n#Milita60depobrezaydolara1200 1\n#Noquierequeseterminelapauta 1\n#Nolepaganconladeellos 1\n#RataInmunda 1\n#SeVanParaSiempre 1\n#Repugnante 1\n#PatriciaBullrichPresidente2023 1\n#Chaukukas 1\n#pelotudo 1\n#gobiernodevagosycorruptos 1\n#Afip 1\n#tugo 1\n#MileiPresidente 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nSergioMassa 2\nSergioChouza 1\nminsaurralde 1\nT 1\nPatoBullrich 1\ndiegobranca 1\nrd 1\ns 1\nJMilei 1\nherlombardi 1\nMunicipioPilar 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\ngordo 172\nvos 144\nsos 98\nq 71\nvas 39\ngordito 35\nk 32\nmierda 32\nmassa 27\npelotudo 26\ngente 24\ntenes 24\nperonchos 23\nbranca 21\nculo 21\nlaburar 19\nensobrado 17\nanda 17\nenano 17\norto 17\nName: count, dtype: int64" }, { "objectID": "pages/4.@Cris_noticias.html", @@ -60,7 +60,7 @@ "href": "pages/0.analisis_general.html", "title": "Análisis de tweets durante las elecciones generales 2023 en Argentina", "section": "", - "text": "Datos\n\n\nCode\n# Print the number of tweets analyzed\nprint(f\"Número de tweets analizados: {len(df)}\")\n\n\nNúmero de tweets analizados: 52476\n\n\n\n\nEventos monitoreados\nCantidad de tweets para cada uno de los eventos monitoreados:\n\n\nCode\n# Get the value counts of the \"event\" column in the dataframe \"df\"\ndf[\"event\"].value_counts()\n\n\nevent\nelecciones 27448\n1er debate 12588\n2do debate 12440\nName: count, dtype: int64\n\n\n\n\nFechas de eventos\nPeriodo cubierto para cada evento\n\n\nCode\n# Define a function to get the date range of a given event\ndef get_date_range(df, event):\n event_data = df.loc[df[\"event\"] == event]\n return event_data[\"dt_date\"].min(), event_data[\"dt_date\"].max()\n\n\n# Get the date ranges for each event\ndebate1_min, debate1_max = get_date_range(df, \"1er debate\")\ndebate2_min, debate2_max = get_date_range(df, \"2do debate\")\nelecciones_min, elecciones_max = get_date_range(df, \"elecciones\")\n\n# Print the date ranges\nprint(f\"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}\")\nprint(f\"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}\")\nprint(f\"Elecciones contempla tweets desde {elecciones_min} hasta {elecciones_max}\")\n\n\nEl primer debate contempla tweets desde 2023-09-30 hasta 2023-10-02\nEl segundo debate contempla tweets desde 2023-11-11 hasta 2023-11-13\nElecciones contempla tweets desde 2023-11-16 hasta 2023-11-20\n\n\n\n\nAtaques identificados\n\nNOTA: Un tweet puede tener diversas etiquetas\n\n\n\nCode\n# Subset of dataframe `df` containing only rows with non-null values in \"label\" and \"to_journalist\" columns\nattacks = df.dropna(subset=[\"label\", \"to_journalist\"])\n\n# Print the number of rows in `attacks` dataframe\nprint(\n f\"En los datos se identificaron {len(attacks)} publicaciones etiquetadas como ataques.\"\n)\n\n\nEn los datos se identificaron 2950 publicaciones etiquetadas como ataques.\n\n\n\n\nRanking the periodistas más atacados\n\n\nCode\nattacks[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@diegobranca 418\n@JonatanViale 373\n@Angelalerena 326\n@Cris_noticias 266\n@odonnellmaria 256\n@edufeiok 244\n@rialjorge 175\n@robdnavarro 159\n@guadavazquez 136\n@luisnovaresio 99\n@vivicanosaok 81\n@majulluis 78\n@mjolivan 62\n@rominamanguel 57\n@NANCYPAZOS 55\n@nbg__ 44\n@Gatosylvestre 34\n@ischargro 26\n@anaecorrea 14\n@cyngarciaradio 11\n@hindelita 7\n@aleberco 7\n@juliamengo 6\n@ertenembaum 5\n@Sietecase 2\n@soyingridbeck 2\n@wwnicolas 2\n@MercedesFunes 2\n@Marcelitaojeda 1\n@negropolisok 1\n@maclorena 1\nName: count, dtype: int64\n\n\n\n\nRanking de periodistas atacados por género\n\nNOTA: Clasificación binaria\n\n\n\nCode\nattacks[\"journalist_genre\"].value_counts()\n\n\njournalist_genre\nH 1622\nM 1328\nName: count, dtype: int64\n\n\n\n\nHombres periodistas más atacados\n\n\nCode\nattacks_men = attacks.loc[attacks[\"journalist_genre\"].isin([\"H\"])]\nattacks_men[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@diegobranca 418\n@JonatanViale 373\n@edufeiok 244\n@rialjorge 175\n@robdnavarro 159\n@luisnovaresio 99\n@majulluis 78\n@Gatosylvestre 34\n@ischargro 26\n@aleberco 7\n@ertenembaum 5\n@wwnicolas 2\n@Sietecase 2\nName: count, dtype: int64\n\n\n\n\nMujeres periodistas más atacadas\n\n\nCode\nattacks_women = attacks.loc[attacks[\"journalist_genre\"].isin([\"M\"])]\nattacks_women[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@Angelalerena 326\n@Cris_noticias 266\n@odonnellmaria 256\n@guadavazquez 136\n@vivicanosaok 81\n@mjolivan 62\n@rominamanguel 57\n@NANCYPAZOS 55\n@nbg__ 44\n@anaecorrea 14\n@cyngarciaradio 11\n@hindelita 7\n@juliamengo 6\n@soyingridbeck 2\n@MercedesFunes 2\n@Marcelitaojeda 1\n@negropolisok 1\n@maclorena 1\nName: count, dtype: int64\n\n\n\n\nranking de tipos de ataques para hombres\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_men_count = attacks_men[conditions].sum()\nattacks_men_count\n\n\nwomen 370\npolitics 450\nappearance 646\nracism 83\nclass 57\nlgbti 57\ncriminal 31\ncalls 21\ndtype: int64\n\n\n\n\nranking de tipos de ataques para mujeres\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_women_count = attacks_women[conditions].sum()\nattacks_women_count\n\n\nwomen 607\npolitics 424\nappearance 226\nracism 63\nclass 69\nlgbti 19\ncriminal 8\ncalls 10\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\nattacks[\"event\"].value_counts()\n\n\nevent\nelecciones 1584\n1er debate 698\n2do debate 668\nName: count, dtype: int64\n\n\n\n\nActividad de los periodistas en Twitter por género\n\n\nCode\njournalist_posts = df.dropna(subset=[\"from_journalist\"])\nmen_journalist_posts = journalist_posts.loc[\n journalist_posts[\"journalist_genre\"].isin([\"M\"])\n]\nwomen_journalist_posts = journalist_posts.loc[\n journalist_posts[\"journalist_genre\"].isin([\"H\"])\n]\n\nprint(\n f\"\"\"Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}\"\"\"\n)\n\n\nTweets publicados por periodistas hombres: 640\nTweets publicados por periodistas mujeres: 292\n\n\n\n\nRanking de periodistas más activos\n\n\nCode\njournalist_activity = df[\"from_journalist\"].value_counts()\njournalist_activity\n\n\nfrom_journalist\n@anaecorrea 105\n@rominamanguel 61\n@rialjorge 61\n@diegobranca 60\n@guadavazquez 55\n@odonnellmaria 45\n@Cris_noticias 42\n@SilvinaMolina 36\n@NANCYPAZOS 35\n@hindelita 35\n@majulluis 32\n@soyingridbeck 31\n@Marcelitaojeda 27\n@nbg__ 25\n@Gatosylvestre 25\n@edufeiok 24\n@luisnovaresio 24\n@monigps 23\n@robdnavarro 23\n@Angelalerena 22\n@mjolivan 20\n@MercedesFunes 18\n@maclorena 13\n@vivicanosaok 12\n@aleberco 11\n@silviafbarrio 9\n@juliamengo 9\n@cyngarciaradio 9\n@JonatanViale 8\n@Sietecase 7\n@SANTIAGODELMORO 7\n@ischargro 7\n@mafito11 5\n@wwnicolas 2\n@FlorHalfon 2\n@ertenembaum 1\n@deboraplager 1\nName: count, dtype: int64\n\n\n\n\nPublicaciones de periodistas por evento\n\n\nCode\nmen_debate1 = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"1er debate\"])\n]\nmen_count = men_debate1.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_debate1 = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"1er debate\"])\n]\nwomen_count = women_debate1.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante el 1er debate\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\ndef count_posts_by_gender(df, event):\n \"\"\"\n This function takes in a DataFrame of journalist posts and an event string,\n and returns a new DataFrame with the count of posts by date for that event\n and gender.\n \"\"\"\n debate_posts = df[df[\"event\"].eq(event)] # filter posts by event\n return (\n debate_posts.groupby(\"dt_date\").size().reset_index(name=\"count\")\n ) # group by date and count\n\n\n# get posts for the 2nd debate for male and female journalists\nmen_debate2 = count_posts_by_gender(men_journalist_posts, \"2do debate\")\nwomen_debate2 = count_posts_by_gender(women_journalist_posts, \"2do debate\")\n\n# create a line plot of post counts by date for male and female journalists\nfig = px.line()\nfig.add_scatter(\n x=men_debate2[\"dt_date\"],\n y=men_debate2[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_debate2[\"dt_date\"],\n y=women_debate2[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante el 2do debate\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\nmen_debate2 = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"2do debate\"])\n]\nmen_count = men_debate2.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_debate2 = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"2do debate\"])\n]\nwomen_count = women_debate2.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante el 2do debate\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\nmen_elecciones = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"elecciones\"])\n]\nmen_count = men_elecciones.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_elecciones = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"elecciones\"])\n]\nwomen_count = women_elecciones.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante las eleciones\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nRanking de eventos con más ataques para hombres\n\n\nCode\nattacks_men[\"event\"].value_counts()\n\n\nevent\nelecciones 806\n2do debate 435\n1er debate 381\nName: count, dtype: int64\n\n\n\n\nRanking de eventos con más ataques para mujeres\n\n\nCode\nattacks_women[\"event\"].value_counts()\n\n\nevent\nelecciones 778\n1er debate 317\n2do debate 233\nName: count, dtype: int64\n\n\n\n\nHashtags\n20 hashtags más utilizados en los ataques:\n\n\nCode\nattacks[\"hashtags\"] = attacks[\"text\"].apply(\n lambda x: np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n)\n\nattacks[\"hashtags\"] = attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\n# return first n rows in descending order\ntop_hashtags = hashtags_count.nlargest(20)\n\ntop_hashtags\n\n\n#SeVanParaSiempre 3\n#KirchnerismoNuncaMas 2\n#MassaPresidente2023 2\n#Milei2023EnPrimeraVuelta 1\n#Tenemos 1\n#GORDITOLECHOSO 1\n#NoAl5toGobiernoK 1\n#NoVasASerPresidente 1\n#nuncamas 1\n#PalestinaLibre 1\n#YoVotoAMassa 1\n#NuncaMilei 1\n#NuncaMas 1\n#MileiNo 1\n#LameTujesK 1\n#MileiBasuraVosSosLaDictadura 1\n#ElPuebloEnDefensaPropia 1\n#viv 1\n#BrancatelliPelotudo 1\n#MileiPresidente 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n20 usuarios más mencionados en los ataques:\n\n\nCode\nattacks[\"mentions\"] = attacks[\"text\"].apply(\n lambda x: np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n)\n\nattacks[\"mentions\"] = attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\n# return first n rows in descending order\ntop_mentions = mentions_count.nlargest(20)\n\ntop_mentions\n\n\nPatoBullrich 4\nSergioMassa 4\nJMilei 3\nminsaurralde 3\nvivicanosaok 2\nCris_noticias 2\nrialjorge 2\nKicillofok 2\nguadavazquez 1\nherlombardi 1\ndiegobranca 1\nluispetri 1\nJorgeTelerman 1\nhoraciorlarreta 1\nAngelalerena 1\nEsmeraldaMitre 1\nertenembaum 1\nmajulluis 1\nLuisNovaresio1 1\nQuintelaRicardo 1\nName: count, dtype: int64\n\n\n\n\nTokens\nLista del top 20 de palabras más comunes y su frecuencia:\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\nattacks[\"text_pre\"] = attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 374\nsos 311\nq 244\ngordo 195\nvas 135\nlechoso 126\ngordito 114\nmierda 104\nmilei 99\nzurda 84\nasco 81\nmassa 78\ngente 77\ntenes 74\nviejo 71\nanda 66\ncara 66\nzurdos 64\ngato 62\norto 60\nName: count, dtype: int64\n\n\n\n\nTópicos\nTécnica de modelado de tópicos con transformers y TF-IDF:\n\n\nCode\n# remove urls, mentions, hashtags and numbers\np.set_options(p.OPT.URL, p.OPT.MENTION, p.OPT.NUMBER)\nattacks[\"text_pre\"] = attacks[\"text_pre\"].apply(lambda x: p.clean(x))\n\n\n# filter column\ndocs = attacks[\"text_pre\"]\n\n# calculate topics and probabilities\ntopic_model = BERTopic(\n language=\"multilingual\", calculate_probabilities=True, verbose=True\n)\n\n# training\ntopics, probs = topic_model.fit_transform(docs)\n\n# visualize topics\ntopic_model.visualize_topics()\n\n\n\n \n\n\n\n\nReducción de tópicos\nMapa con 20 tópicos del contenido de los tweets:\n\n\nCode\n# reduce the number of topics\ntopic_model.reduce_topics(docs, nr_topics=20)\n\n# visualize topics\ntopic_model.visualize_topics()\n\n\n\n \n\n\n\n\nTérminos por tópico\n\n\nCode\ntopic_model.visualize_barchart(top_n_topics=20)\n\n\n\n \n\n\n\n\nTópicos en el tiempo\n\n\nCode\n# convert column to list\ntweets = attacks[\"text_pre\"].to_list()\ntimestamps = attacks[\"dt_date\"].to_list()\n\ntopics_over_time = topic_model.topics_over_time(\n docs=tweets,\n timestamps=timestamps,\n global_tuning=True,\n evolution_tuning=True,\n nr_bins=20,\n)\n\ntopic_model.visualize_topics_over_time(topics_over_time, top_n_topics=20)" + "text": "Datos\n\n\nCode\n# Print the number of tweets analyzed\nprint(f\"Número de tweets analizados: {len(df)}\")\n\n\nNúmero de tweets analizados: 79887\n\n\n\n\nEventos monitoreados\nCantidad de tweets para cada uno de los eventos monitoreados:\n\n\nCode\n# Get the value counts of the \"event\" column in the dataframe \"df\"\ndf[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 27448\nelecciones generales 19970\n1er debate 12588\ndebate balotaje 12440\n2do debate 7441\nName: count, dtype: int64\n\n\n\n\nFechas de eventos\nPeriodo cubierto para cada evento\n\n\nCode\n# Define a function to get the date range of a given event\ndef get_date_range(df, event):\n event_data = df.loc[df[\"event\"] == event]\n return event_data[\"dt_date\"].min(), event_data[\"dt_date\"].max()\n\n\n# Get the date ranges for each event\ndebate1_min, debate1_max = get_date_range(df, \"1er debate\")\ndebate2_min, debate2_max = get_date_range(df, \"2do debate\")\nelecciones_gen_min, elecciones_gen_max = get_date_range(df, \"elecciones generales\")\ndebate_balotaje_min, debate_balotaje_max = get_date_range(df, \"debate balotaje\")\nelecciones_balotaje_min, elecciones_balotaje_max = get_date_range(\n df, \"elecciones balotaje\"\n)\n\n# Print the date ranges\nprint(f\"El primer debate contempla tweets desde {debate1_min} hasta {debate1_max}\")\nprint(f\"El segundo debate contempla tweets desde {debate2_min} hasta {debate2_max}\")\nprint(\n f\"Elecciones generales contempla tweets desde {elecciones_gen_min} hasta {elecciones_gen_max}\"\n)\nprint(\n f\"El debate del balotaje contempla tweets desde {debate_balotaje_min} hasta {debate_balotaje_max}\"\n)\nprint(\n f\"Elecciones del balotaje contempla tweets desde {elecciones_balotaje_min} hasta {elecciones_balotaje_max}\"\n)\n\n\nEl primer debate contempla tweets desde 2023-09-30 hasta 2023-10-02\nEl segundo debate contempla tweets desde 2023-10-07 hasta 2023-10-09\nElecciones generales contempla tweets desde 2023-10-19 hasta 2023-10-23\nEl debate del balotaje contempla tweets desde 2023-11-11 hasta 2023-11-13\nElecciones del balotaje contempla tweets desde 2023-11-16 hasta 2023-11-20\n\n\n\n\nAtaques identificados\n\nNOTA: Un tweet puede tener diversas etiquetas\n\n\n\nCode\n# Subset of dataframe `df` containing only rows with non-null values in \"label\" and \"to_journalist\" columns\nattacks = df.dropna(subset=[\"label\", \"to_journalist\"])\n\n# Print the number of rows in `attacks` dataframe\nprint(\n f\"En los datos se identificaron {len(attacks)} publicaciones etiquetadas como ataques.\"\n)\n\n\nEn los datos se identificaron 4319 publicaciones etiquetadas como ataques.\n\n\n\n\nRanking the periodistas más atacados\n\n\nCode\nattacks[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@diegobranca 712\n@Cris_noticias 427\n@JonatanViale 421\n@Angelalerena 409\n@edufeiok 399\n@rialjorge 261\n@odonnellmaria 258\n@guadavazquez 216\n@robdnavarro 209\n@vivicanosaok 159\n@luisnovaresio 154\n@cyngarciaradio 152\n@rominamanguel 95\n@majulluis 85\n@mjolivan 72\n@Gatosylvestre 66\n@nbg__ 59\n@NANCYPAZOS 58\n@ischargro 27\n@anaecorrea 21\n@ertenembaum 11\n@hindelita 10\n@juliamengo 7\n@aleberco 7\n@alfleuco 4\n@maclorena 4\n@Marcelitaojeda 3\n@MercedesFunes 3\n@Sietecase 3\n@negropolisok 2\n@wwnicolas 2\n@soyingridbeck 2\n@monigps 1\nName: count, dtype: int64\n\n\n\n\nRanking de periodistas atacados por género\n\nNOTA: Clasificación binaria\n\n\n\nCode\nattacks[\"journalist_genre\"].value_counts()\n\n\njournalist_genre\nH 2361\nM 1958\nName: count, dtype: int64\n\n\n\n\nHombres periodistas más atacados\n\n\nCode\nattacks_men = attacks.loc[attacks[\"journalist_genre\"].isin([\"H\"])]\nattacks_men[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@diegobranca 712\n@JonatanViale 421\n@edufeiok 399\n@rialjorge 261\n@robdnavarro 209\n@luisnovaresio 154\n@majulluis 85\n@Gatosylvestre 66\n@ischargro 27\n@ertenembaum 11\n@aleberco 7\n@alfleuco 4\n@Sietecase 3\n@wwnicolas 2\nName: count, dtype: int64\n\n\n\n\nMujeres periodistas más atacadas\n\n\nCode\nattacks_women = attacks.loc[attacks[\"journalist_genre\"].isin([\"M\"])]\nattacks_women[\"to_journalist\"].value_counts()\n\n\nto_journalist\n@Cris_noticias 427\n@Angelalerena 409\n@odonnellmaria 258\n@guadavazquez 216\n@vivicanosaok 159\n@cyngarciaradio 152\n@rominamanguel 95\n@mjolivan 72\n@nbg__ 59\n@NANCYPAZOS 58\n@anaecorrea 21\n@hindelita 10\n@juliamengo 7\n@maclorena 4\n@MercedesFunes 3\n@Marcelitaojeda 3\n@negropolisok 2\n@soyingridbeck 2\n@monigps 1\nName: count, dtype: int64\n\n\n\n\nRanking the tipos de ataques para hombres\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_men_count = attacks_men[conditions].sum()\nattacks_men_count\n\n\nwomen 524\npolitics 658\nappearance 910\nracism 151\nclass 92\nlgbti 92\ncriminal 49\ncalls 33\ndtype: int64\n\n\n\n\nRanking the tipos de ataques para mujeres\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_women_count = attacks_women[conditions].sum()\nattacks_women_count\n\n\nwomen 888\npolitics 569\nappearance 377\nracism 117\nclass 104\nlgbti 29\ncriminal 14\ncalls 19\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\nattacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 1584\nelecciones generales 987\n1er debate 698\ndebate balotaje 668\n2do debate 382\nName: count, dtype: int64\n\n\n\n\nProporción de ataques por tipo de evento\nPorcentaje de ataques por tweets recolectados para cada evento\n\n\nCode\ncount_1er_debate = df[df[\"event\"] == \"1er debate\"].shape[0]\ncount_2do_debate = df[df[\"event\"] == \"2do debate\"].shape[0]\ncount_elecciones_gen = df[df[\"event\"] == \"elecciones generales\"].shape[0]\ncount_debate_balotaje = df[df[\"event\"] == \"debate balotaje\"].shape[0]\ncount_elecciones_balotaje = df[df[\"event\"] == \"elecciones balotaje\"].shape[0]\n\n\ncount_attacks_1er_debate = attacks[attacks[\"event\"] == \"1er debate\"].shape[0]\ncount_attacks_2do_debate = attacks[attacks[\"event\"] == \"2do debate\"].shape[0]\ncount_attacks_elecciones_gen = attacks[\n attacks[\"event\"] == \"elecciones generales\"\n].shape[0]\ncount_attacks_debate_balotaje = attacks[attacks[\"event\"] == \"debate balotaje\"].shape[0]\ncount_attacks_elecciones_balotaje = attacks[\n attacks[\"event\"] == \"elecciones balotaje\"\n].shape[0]\n\nprint(\n \"El\",\n round((count_attacks_1er_debate / count_1er_debate) * 100),\n \"% del total de los tweets del 1er debate fueron ataques\",\n)\nprint(\n \"El\",\n round((count_attacks_2do_debate / count_2do_debate) * 100),\n \"% del total de los tweets del 2do debate fueron ataques\",\n)\nprint(\n \"El\",\n round((count_attacks_elecciones_gen / count_elecciones_gen) * 100),\n \"% del total de los tweets de las elecciones generales fueron ataques\",\n)\nprint(\n \"El\",\n round((count_attacks_debate_balotaje / count_debate_balotaje) * 100),\n \"% del total de los tweets del debate del balotaje fueron ataques\",\n)\nprint(\n \"El\",\n round((count_attacks_elecciones_balotaje / count_elecciones_balotaje) * 100),\n \"% del total de los tweets de las elecciones del balotaje fueron ataques\",\n)\n\n\nEl 6 % del total de los tweets del 1er debate fueron ataques\nEl 5 % del total de los tweets del 2do debate fueron ataques\nEl 5 % del total de los tweets de las elecciones generales fueron ataques\nEl 5 % del total de los tweets del debate del balotaje fueron ataques\nEl 6 % del total de los tweets de las elecciones del balotaje fueron ataques\n\n\n\n\nFrecuencia de los ataques en función del número de menciones\n\n\nCode\nmj_proportion_mentions = (1 + 1.6 + 0.9 + 0.8 + 0.6 + 0.8) / 6\nformatted_mj = \"{:.2f}\".format(mj_proportion_mentions)\n\nwj_proportion_mentions = (0.9 + 1.1 + 0.8 + 0.6 + 0.6) / 5\nformatted_wj = \"{:.2f}\".format(wj_proportion_mentions)\n\n\n\n\nCode\nprint(\n f\"Por cada 10 menciones, los periodistas hombres recibieron {formatted_mj} ataques\"\n)\nprint(\n f\"Por cada 10 menciones, las periodistas mujeres recibieron {formatted_wj} ataques\"\n)\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\n\n\nCode\nmj_proportion_followers = (1.77 + 0.38 + 0.34 + 0.08 + 0.38 + 0.15) / 6\nformatted_mj = \"{:.2f}\".format(mj_proportion_followers)\n\nwj_proportion_followers = (0.44 + 1.37 + 0.67 + 0.79 + 0.21) / 5\nformatted_wj = \"{:.2f}\".format(wj_proportion_followers)\n\n\n\n\nCode\nprint(\n f\"Por cada 1K seguidores, los periodistas hombres recibieron {formatted_mj} ataques\"\n)\nprint(\n f\"Por cada 1K seguidores, las periodistas mujeres recibieron {formatted_wj} ataques\"\n)\n\n\nPor cada 1K seguidores, los periodistas hombres recibieron 0.52 ataques\nPor cada 1K seguidores, las periodistas mujeres recibieron 0.70 ataques\n\n\n\n\nActividad de los periodistas en Twitter por género\n\n\nCode\njournalist_posts = df.dropna(subset=[\"from_journalist\"])\nmen_journalist_posts = journalist_posts.loc[\n journalist_posts[\"journalist_genre\"].isin([\"M\"])\n]\nwomen_journalist_posts = journalist_posts.loc[\n journalist_posts[\"journalist_genre\"].isin([\"H\"])\n]\n\nprint(\n f\"\"\"Tweets publicados por periodistas hombres: {len(men_journalist_posts)}\\nTweets publicados por periodistas mujeres: {len(women_journalist_posts)}\"\"\"\n)\n\n\nTweets publicados por periodistas hombres: 1223\nTweets publicados por periodistas mujeres: 489\n\n\n\n\nRanking de periodistas más activos\n\n\nCode\njournalist_activity = df[\"from_journalist\"].value_counts()\njournalist_activity\n\n\nfrom_journalist\n@anaecorrea 206\n@guadavazquez 127\n@rialjorge 99\n@diegobranca 86\n@SilvinaMolina 83\n@rominamanguel 80\n@Angelalerena 80\n@nbg__ 71\n@NANCYPAZOS 70\n@hindelita 66\n@Cris_noticias 64\n@Marcelitaojeda 53\n@odonnellmaria 49\n@Gatosylvestre 49\n@soyingridbeck 48\n@luisnovaresio 47\n@edufeiok 46\n@monigps 44\n@mjolivan 39\n@majulluis 37\n@robdnavarro 31\n@vivicanosaok 20\n@cyngarciaradio 20\n@MercedesFunes 20\n@JonatanViale 20\n@maclorena 18\n@ertenembaum 16\n@aleberco 15\n@SANTIAGODELMORO 13\n@ischargro 13\n@juliamengo 13\n@mafito11 12\n@FlorHalfon 11\n@SoleVallejos 11\n@Sietecase 11\n@silviafbarrio 9\n@alfleuco 3\n@gabycociffi 3\n@negropolisok 2\n@wwnicolas 2\n@gabipellegrini3 1\n@GabrielaWeller 1\n@lucianageuna 1\n@barilirodolfo 1\n@deboraplager 1\nName: count, dtype: int64\n\n\n\n\nPublicaciones de periodistas por evento\n\n\nCode\nmen_debate1 = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"1er debate\"])\n]\nmen_count = men_debate1.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_debate1 = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"1er debate\"])\n]\nwomen_count = women_debate1.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante el 1er debate\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\ndef count_posts_by_gender(df, event):\n \"\"\"\n This function takes in a DataFrame of journalist posts and an event string,\n and returns a new DataFrame with the count of posts by date for that event\n and gender.\n \"\"\"\n debate_posts = df[df[\"event\"].eq(event)] # filter posts by event\n return (\n debate_posts.groupby(\"dt_date\").size().reset_index(name=\"count\")\n ) # group by date and count\n\n\n# get posts for the 2nd debate for male and female journalists\nmen_debate2 = count_posts_by_gender(men_journalist_posts, \"2do debate\")\nwomen_debate2 = count_posts_by_gender(women_journalist_posts, \"2do debate\")\n\n# create a line plot of post counts by date for male and female journalists\nfig = px.line()\nfig.add_scatter(\n x=men_debate2[\"dt_date\"],\n y=men_debate2[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_debate2[\"dt_date\"],\n y=women_debate2[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(title=\"Publicaciones de periodistas durante el 2do debate\", width=600)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\nmen_elecciones_gen = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"elecciones generales\"])\n]\nmen_count = men_elecciones_gen.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_elecciones_gen = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"elecciones generales\"])\n]\nwomen_count = women_elecciones_gen.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(\n title=\"Publicaciones de periodistas durante las elecciones generales\", width=600\n)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\nmen_debate_balotaje = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"debate balotaje\"])\n]\nmen_count = men_debate_balotaje.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_debate_balotaje = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"debate balotaje\"])\n]\nwomen_count = women_debate_balotaje.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(\n title=\"Publicaciones de periodistas durante el debate del balotaje\", width=600\n)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nCode\nmen_elecciones_balotaje = men_journalist_posts.loc[\n men_journalist_posts[\"event\"].isin([\"elecciones balotaje\"])\n]\nmen_count = men_elecciones_balotaje.groupby(\"dt_date\").size().reset_index(name=\"count\")\n\nwomen_elecciones_balotaje = women_journalist_posts.loc[\n women_journalist_posts[\"event\"].isin([\"elecciones balotaje\"])\n]\nwomen_count = (\n women_elecciones_balotaje.groupby(\"dt_date\").size().reset_index(name=\"count\")\n)\n\nfig = px.line()\nfig.add_scatter(\n x=men_count[\"dt_date\"],\n y=men_count[\"count\"],\n name=\"Hombres\",\n line=dict(color=\"orange\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.add_scatter(\n x=women_count[\"dt_date\"],\n y=women_count[\"count\"],\n name=\"Mujeres\",\n line=dict(color=\"purple\"),\n hovertemplate=\"posts: %{y}\",\n)\nfig.update_layout(\n title=\"Publicaciones de periodistas durante las elecciones del balotaje\", width=600\n)\nfig.update_xaxes(type=\"category\")\nfig.show()\n\n\n\n \n\n\n\n\nRanking de eventos con más ataques para hombres\n\n\nCode\nattacks_men[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 806\nelecciones generales 517\ndebate balotaje 435\n1er debate 381\n2do debate 222\nName: count, dtype: int64\n\n\n\n\nRanking de eventos con más ataques para mujeres\n\n\nCode\nattacks_women[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 778\nelecciones generales 470\n1er debate 317\ndebate balotaje 233\n2do debate 160\nName: count, dtype: int64\n\n\n\n\nHashtags\n20 hashtags más utilizados en los ataques:\n\n\nCode\nattacks[\"hashtags\"] = attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\nattacks[\"hashtags\"] = attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\n# return first n rows in descending order\ntop_hashtags = hashtags_count.nlargest(20)\n\ntop_hashtags\n\n\n#SeVanParaSiempre 3\n#Milei 3\n#MassaPresidente2023 2\n#ElPeorGobiernoDeLaHistoria 2\n#Bullrich 2\n#MassaPresidente 2\n#KirchnerismoNuncaMas 2\n#elsi 1\n#VotoContraMassa 1\n#argentina 1\n#Son30Mil 1\n#PalestinaLibre 1\n#Sellamaperiodista 1\n#NoAMilei 1\n#Milita60depobrezaydolara1200 1\n#GORDITOLECHOSO 1\n#Noquierequeseterminelapauta 1\n#Nolepaganconladeellos 1\n#NoAl5toGobiernoK 1\n#SeVannnnnn 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n20 usuarios más mencionados en los ataques:\n\n\nCode\nattacks[\"mentions\"] = attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\nattacks[\"mentions\"] = attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\n# return first n rows in descending order\ntop_mentions = mentions_count.nlargest(20)\n\ntop_mentions\n\n\nPatoBullrich 5\nSergioMassa 4\nvivicanosaok 3\nminsaurralde 3\nJMilei 3\nJonatanViale 2\nCris_noticias 2\nKicillofok 2\nrialjorge 2\nQuintelaRicardo 1\nursuvargues 1\nPRossiOficial 1\nedugbonorino 1\nCarlosMaslaton 1\nluisnovaresio 1\nLANACION 1\nc0o0ni 1\nmajulluis 1\nrobnavarro 1\nherlombardi 1\nName: count, dtype: int64\n\n\n\n\nTokens\nLista del top 20 de palabras más comunes y su frecuencia:\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\nattacks[\"text_pre\"] = attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 544\nsos 440\nq 368\ngordo 268\nvas 189\nmierda 163\nmilei 144\nlechoso 140\ngordito 138\nmassa 125\ngente 115\nzurda 114\nviejo 108\ncara 105\nvieja 103\ntenes 102\nasco 102\norto 93\nzurdos 90\nputa 87\nName: count, dtype: int64\n\n\n\n\nTópicos\nTécnica de modelado de tópicos con transformers y TF-IDF:\n\n\nCode\n# remove urls, mentions, hashtags and numbers\np.set_options(p.OPT.URL, p.OPT.MENTION, p.OPT.NUMBER)\nattacks[\"text_pre\"] = attacks[\"text_pre\"].apply(lambda x: p.clean(x))\n\n\n# filter column\ndocs = attacks[\"text_pre\"]\n\n# calculate topics and probabilities\ntopic_model = BERTopic(\n language=\"multilingual\", calculate_probabilities=True, verbose=True\n)\n\n# training\ntopics, probs = topic_model.fit_transform(docs)\n\n# visualize topics\ntopic_model.visualize_topics()\n\n\n\n \n\n\n\n\nReducción de tópicos\nMapa con 20 tópicos del contenido de los tweets:\n\n\nCode\n# reduce the number of topics\ntopic_model.reduce_topics(docs, nr_topics=20)\n\n# visualize topics\ntopic_model.visualize_topics()\n\n\n\n \n\n\n\n\nTérminos por tópico\n\n\nCode\ntopic_model.visualize_barchart(top_n_topics=20)\n\n\n\n \n\n\n\n\nTópicos en el tiempo\n\n\nCode\n# convert column to list\ntweets = attacks[\"text_pre\"].to_list()\ntimestamps = attacks[\"dt_date\"].to_list()\n\ntopics_over_time = topic_model.topics_over_time(\n docs=tweets,\n timestamps=timestamps,\n global_tuning=True,\n evolution_tuning=True,\n nr_bins=20,\n)\n\ntopic_model.visualize_topics_over_time(topics_over_time, top_n_topics=20)" }, { "objectID": "pages/9.@guadavazquez.html", @@ -88,13 +88,83 @@ "href": "index.html", "title": "Análisis de tweets durante las elecciones generales 2023 en Argentina", "section": "", - "text": "Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 20-11-2023.\nLos textos de los tweets fueron clasificados programáticamente utilizando un modelo de machine learning con la librería de Python transformers para generar etiquetas con tipos de discursos de odio.\nEl modelo utilizado para este etiquetado lleva por nombre beto-contextualized-hate-speech en Hugging Face y fue elegido ya que está entrenado con datos recolectados en el contexto de Argentina.\nEste modelo tiene 9 clasificaciones distintas:\n\n\n\nEtiqueta\nDescripción\n\n\n\n\nWOMEN\nEn contra de mujeres\n\n\nLGBTI\nEn contra LGBTI\n\n\nRACISM\nRacista\n\n\nCLASS\nClasista\n\n\nPOLITICS\nDebido a política\n\n\nDISABLED\nAbleista\n\n\nAPPEARANCE\nEn contra debido a su apariencia\n\n\nCRIMINAL\nEn contra de criminales\n\n\nCALLS\nLlamado a la violencia\n\n\n\n\nJupyter Notebooks creados por Fernanda Aguirre" + "text": "Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 2023-11-20.\nLos textos de los tweets fueron clasificados programáticamente utilizando un modelo de machine learning con la librería de Python transformers para generar etiquetas con tipos de discursos de odio.\nEl modelo utilizado para este etiquetado lleva por nombre beto-contextualized-hate-speech en Hugging Face y fue elegido ya que está entrenado con datos recolectados en el contexto de Argentina.\nEste modelo tiene 9 clasificaciones distintas:\n\n\n\nEtiqueta\nDescripción\n\n\n\n\nWOMEN\nEn contra de mujeres\n\n\nLGBTI\nEn contra LGBTI\n\n\nRACISM\nRacista\n\n\nCLASS\nClasista\n\n\nPOLITICS\nDebido a política\n\n\nDISABLED\nAbleista\n\n\nAPPEARANCE\nEn contra debido a su apariencia\n\n\nCRIMINAL\nEn contra de criminales\n\n\nCALLS\nLlamado a la violencia\n\n\n\n\nJupyter Notebooks creados por Fernanda Aguirre" }, { "objectID": "index.html#metodología", "href": "index.html#metodología", "title": "Análisis de tweets durante las elecciones generales 2023 en Argentina", "section": "", - "text": "Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 20-11-2023.\nLos textos de los tweets fueron clasificados programáticamente utilizando un modelo de machine learning con la librería de Python transformers para generar etiquetas con tipos de discursos de odio.\nEl modelo utilizado para este etiquetado lleva por nombre beto-contextualized-hate-speech en Hugging Face y fue elegido ya que está entrenado con datos recolectados en el contexto de Argentina.\nEste modelo tiene 9 clasificaciones distintas:\n\n\n\nEtiqueta\nDescripción\n\n\n\n\nWOMEN\nEn contra de mujeres\n\n\nLGBTI\nEn contra LGBTI\n\n\nRACISM\nRacista\n\n\nCLASS\nClasista\n\n\nPOLITICS\nDebido a política\n\n\nDISABLED\nAbleista\n\n\nAPPEARANCE\nEn contra debido a su apariencia\n\n\nCRIMINAL\nEn contra de criminales\n\n\nCALLS\nLlamado a la violencia\n\n\n\n\nJupyter Notebooks creados por Fernanda Aguirre" + "text": "Para llevar acabo este análisis de datos, Data Crítica analizó los datos recolectados por Chequeado. El periodo de los tweets recolectados abarca desde 30-09-2023 hasta 2023-11-20.\nLos textos de los tweets fueron clasificados programáticamente utilizando un modelo de machine learning con la librería de Python transformers para generar etiquetas con tipos de discursos de odio.\nEl modelo utilizado para este etiquetado lleva por nombre beto-contextualized-hate-speech en Hugging Face y fue elegido ya que está entrenado con datos recolectados en el contexto de Argentina.\nEste modelo tiene 9 clasificaciones distintas:\n\n\n\nEtiqueta\nDescripción\n\n\n\n\nWOMEN\nEn contra de mujeres\n\n\nLGBTI\nEn contra LGBTI\n\n\nRACISM\nRacista\n\n\nCLASS\nClasista\n\n\nPOLITICS\nDebido a política\n\n\nDISABLED\nAbleista\n\n\nAPPEARANCE\nEn contra debido a su apariencia\n\n\nCRIMINAL\nEn contra de criminales\n\n\nCALLS\nLlamado a la violencia\n\n\n\n\nJupyter Notebooks creados por Fernanda Aguirre" + }, + { + "objectID": "pages/7.@odonnellmaria.html", + "href": "pages/7.@odonnellmaria.html", + "title": "Análisis de tweets atacando a @odonnellmaria", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 258\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.8 de cada 10 publicaciones que mencionan a @odonnellmaria son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 383772) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.67 ataques para @odonnellmaria\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\npolitics 116\nwomen 107\nappearance 51\nclass 13\nracism 8\nlgbti 0\ncriminal 0\ncalls 0\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\n1er debate 113\ndebate balotaje 90\nelecciones balotaje 53\nelecciones generales 2\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#Milei2023EnPrimeraVuelta 1\n#coreadelcentro 1\n#LameTujesK 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nodonellmaria 1\nodonnellmaria 1\nSergioMassa 1\nertenembaum 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 44\nsos 41\nzurda 39\nq 20\nmaría 13\nensobrada 11\nanda 9\npauta 8\nmilei 8\nderecho 8\nkuka 8\nk 8\ngente 7\nputa 7\nvieja 7\nzurdos 7\nmujer 7\nvagos 7\norto 6\nnota 6\nName: count, dtype: int64" + }, + { + "objectID": "pages/9.@robdnavarro.html", + "href": "pages/9.@robdnavarro.html", + "title": "Análisis de tweets atacando a @robdnavarro", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 209\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.6 de cada 10 publicaciones que mencionan a @robdnavarro son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 545782) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.38 ataques para @robdnavarro\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\npolitics 84\nappearance 56\nwomen 39\nracism 15\nclass 13\nlgbti 4\ncriminal 4\ncalls 4\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 69\n1er debate 48\ndebate balotaje 42\nelecciones generales 29\n2do debate 21\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#Paliza 1\n#SeVan 1\n#yonovoto 1\n#MASSAQUISTAS 1\n#BastaDeMafiaKirchnerista 1\n#TeatroColon 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nrobdnavarro 1\nrobnavarro 1\nJMilei 1\nChimi89606580 1\nedugbonorino 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 19\nviejo 18\nsos 14\nmilei 12\nperonchos 11\nk 9\nscioli 9\nculo 8\nasco 8\norto 7\nmierda 7\nkk 7\novacionado 7\nensobrado 6\nganó 6\nkukas 6\nanda 6\nmassa 6\nnavarro 6\nvas 6\nName: count, dtype: int64" + }, + { + "objectID": "pages/3.@JonatanViale.html", + "href": "pages/3.@JonatanViale.html", + "title": "Análisis de tweets atacando a @JonatanViale", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 421\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 1.6 de cada 10 publicaciones que mencionan a @JonatanViale son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 1096113) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.38 ataques para @JonatanViale\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nappearance 258\nwomen 97\npolitics 41\nracism 22\nclass 7\ncriminal 7\nlgbti 6\ncalls 4\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\ndebate balotaje 176\nelecciones balotaje 130\n1er debate 67\n2do debate 48\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#SeVanParaSiempre 1\n#MemoriaAlVotar 1\n#EsCorrupciónOJusticia 1\n#MassaPresidente 1\n#LaLibertadTransa 1\n#MassaPresidente2023 1\n#NoAMilei 1\n#GORDITOLECHOSO 1\n#Gorditolechoso 1\n#Periodistaensobrado 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nvivicanosaok 1\nPatoBullrich 1\nJonatanViale 1\nMalenaGalmarini 1\nedufeiok 1\nKicillofok 1\nminsaurralde 1\nLANACION 1\nJMilei 1\nc0o0ni 1\nPontifex_es 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nlechoso 136\ngordito 90\ngordo 68\nvos 53\nsos 46\nvas 45\nq 30\nleche 22\nrodilleras 16\npija 15\nensobrado 15\nmilei 15\npelotudo 15\nviejo 14\nmacri 12\ncara 12\nchupa 11\nmierda 10\nputa 9\ntomar 9\nName: count, dtype: int64" + }, + { + "objectID": "pages/5.@edufeiok.html", + "href": "pages/5.@edufeiok.html", + "title": "Análisis de tweets atacando a @edufeiok", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 399\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.9 de cada 10 publicaciones que mencionan a @edufeiok son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 1172661) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.34 ataques para @edufeiok\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nappearance 115\nwomen 112\npolitics 108\nracism 48\nlgbti 9\ncalls 9\ncriminal 8\nclass 7\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 190\nelecciones generales 115\n2do debate 40\ndebate balotaje 35\n1er debate 19\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#PatoBullrichPresidente2023 1\n#PatoPresidente 1\n#PatriciaBullrich 1\n#ZurdosHijosDePuta 1\n#Colombia 1\n#NegroFuturo 1\n#bipolaridad 1\n#argentina 1\n#Son30Mil 1\n#fraude 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nedufeiok 1\nmyriambregman 1\nr 1\nJonatanViale 1\nCarlosMaslaton 1\nQuintelaRicardo 1\nursuvargues 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 48\nq 45\nenano 32\nsos 28\nedu 24\nasco 22\ntrompas 20\nligó 17\nfacho 14\npaís 14\nmierda 14\nviejo 14\nmassa 13\ndas 12\nmilei 12\nvas 11\naños 10\nargentina 10\nvotar 9\nmujer 9\nName: count, dtype: int64" + }, + { + "objectID": "pages/4.@Angelalerena.html", + "href": "pages/4.@Angelalerena.html", + "title": "Análisis de tweets atacando a @Angelalerena", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 409\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 1.1 de cada 10 publicaciones que mencionan a @Angelalerena son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 297964) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 1.37 ataques para @Angelalerena\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nwomen 191\npolitics 132\nappearance 69\nclass 54\nracism 14\nlgbti 9\ncriminal 4\ncalls 2\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 308\nelecciones generales 83\n1er debate 10\ndebate balotaje 8\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#viv 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nAngelalerena 1\ndiegobranca 1\nMalenaGalmarini 1\nJMilei 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nsos 42\nvos 42\nq 36\nlaburo 31\nmierda 28\nvas 27\namor 20\nlaburar 19\norto 19\nbuscar 18\ncurro 16\nanda 16\nzurda 15\nputa 15\naños 14\nkuka 14\ngente 14\nvoto 14\ncara 13\ntrabajo 12\nName: count, dtype: int64" + }, + { + "objectID": "pages/6.@rialjorge.html", + "href": "pages/6.@rialjorge.html", + "title": "Análisis de tweets atacando a @rialjorge", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 261\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.8 de cada 10 publicaciones que mencionan a @rialjorge son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 3342769) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.08 ataques para @rialjorge\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nappearance 95\nwomen 78\npolitics 68\nracism 14\nclass 9\nlgbti 5\ncriminal 2\ncalls 1\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 108\nelecciones generales 70\ndebate balotaje 39\n1er debate 28\n2do debate 16\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#BrancatelliPelotudo 1\n#MileiPresidente 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nrialjorge 2\nSergioMassa 1\nJMilei 1\ndo 1\nJonatanViale 1\nPRossiOficial 1\nLuisNovaresio1 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 39\nq 35\nviejo 34\nsos 27\nhuevo 14\nvas 13\ngente 11\nvieja 11\ntenes 9\nrial 9\nduro 9\nasco 9\nzurdos 9\ncara 9\nbajate 8\nhuevos 7\nsorete 7\nojalá 7\nbájate 7\npaís 7\nName: count, dtype: int64" + }, + { + "objectID": "pages/11.@luisnovaresio.html", + "href": "pages/11.@luisnovaresio.html", + "title": "Análisis de tweets atacando a @luisnovaresio", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 154\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.8 de cada 10 publicaciones que mencionan a @luisnovaresio son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 1019016) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.15 ataques para @luisnovaresio\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\npolitics 68\nwomen 31\nappearance 28\nracism 20\nlgbti 16\nclass 5\ncalls 4\ncriminal 1\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\n1er debate 64\n2do debate 51\nelecciones balotaje 26\ndebate balotaje 9\nelecciones generales 4\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#Pato2023 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nPatoBullrich 1\nJMilei 1\nluisnovaresio 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 27\nsos 26\nzurda 14\ngorila 14\nq 11\nasco 7\nestás 7\nluis 6\naños 5\nmierda 5\npaís 5\ntrolo 5\nzurdo 5\nisrael 5\nd 5\ntenes 5\nmilei 4\nzurdos 4\nderechos 4\nbregman 4\nName: count, dtype: int64" + }, + { + "objectID": "pages/2.@Cris_noticias.html", + "href": "pages/2.@Cris_noticias.html", + "title": "Análisis de tweets atacando a @Cris_noticias", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 427\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.9 de cada 10 publicaciones que mencionan a @Cris_noticias son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 979948) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.44 ataques para @Cris_noticias\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nwomen 218\npolitics 115\nappearance 80\nracism 21\nclass 13\nlgbti 3\ncalls 2\ncriminal 0\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones balotaje 214\nelecciones generales 115\ndebate balotaje 52\n2do debate 46\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#nuncamas 1\n#PalestinaLibre 1\n#YoVotoAMassa 1\n#Milei 1\n#NuncaMilei 1\n#MassaPresidente2023 1\n#NuncaMas 1\n#MileiNo 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nCris_noticias 2\nmyriambregman 1\nSergioMassa 1\nJMilei 1\nPatoBullrich 1\nluispetri 1\nJorgeTelerman 1\nhoraciorlarreta 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nvos 43\nsos 38\ngorila 34\nq 32\nmarido 30\nnovio 25\nbotox 23\nvieja 19\nmierda 19\ncara 17\nmilei 16\ngente 16\nvas 15\nzurdos 15\ntenes 14\ndictadura 10\nx 10\norto 10\nanda 9\nmassa 9\nName: count, dtype: int64" + }, + { + "objectID": "pages/8.@guadavazquez.html", + "href": "pages/8.@guadavazquez.html", + "title": "Análisis de tweets atacando a @guadavazquez", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 216\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.6 de cada 10 publicaciones que mencionan a @guadavazquez son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 272752) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.79 ataques para @guadavazquez\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nwomen 91\npolitics 46\nappearance 23\nracism 13\ncalls 7\nclass 6\nlgbti 6\ncriminal 2\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\n1er debate 63\nelecciones balotaje 53\nelecciones generales 42\n2do debate 38\ndebate balotaje 20\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#Tenemos 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nvivicanosaok 1\nguadavazquez 1\nedufeiok 1\nEsmeraldaMitre 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\ngato 25\nguada 17\nq 14\njajaja 13\nvos 10\nzurdos 8\nsos 8\ncara 7\nmilei 7\nmedicado 6\nabrazo 6\nperonchos 6\nentiendo 5\ngatos 5\nre 5\nfamilia 5\nacá 5\nbregman 5\nzurda 5\nasco 5\nName: count, dtype: int64" + }, + { + "objectID": "pages/10.@vivicanosaok.html", + "href": "pages/10.@vivicanosaok.html", + "title": "Análisis de tweets atacando a @vivicanosaok", + "section": "", + "text": "Datos\n\n\nCode\ndf_attacks = attacks.loc[attacks[\"to_journalist\"].isin([USERNAME])]\nprint(f\"Número de ataques: {len(df_attacks)}\")\n\n\nNúmero de ataques: 159\n\n\n\n\nFrecuencia de ataques\nProporción de ataques = (Número de ataques / Número de menciones) * 100\n\n\nCode\njournalist_mentions = len(df.loc[df[\"to_journalist\"].isin([USERNAME])])\njournalist_attacks = len(df_attacks)\n\npercentage_attacks = (journalist_attacks / journalist_mentions) * 100\n\nproportion = (percentage_attacks / 100) * 10\nproportion_rounded = round(proportion, 1)\n\n\nprint(\n f\"Aproximadamente {proportion_rounded} de cada 10 publicaciones que mencionan a {USERNAME} son ataques\"\n)\n\n\nAproximadamente 0.6 de cada 10 publicaciones que mencionan a @vivicanosaok son ataques\n\n\n\n\nFrecuencia de los ataques en función del número de seguidores\nProporción de ataques por seguidor = Número de ataques / Número de seguidores\n\n\nCode\nproportion_followers = (len(df_attacks) / 742466) * 1000\nformatted_proportion = \"{:.2f}\".format(proportion_followers)\nprint(f\"Por cada 1K seguidores, hubo {formatted_proportion} ataques para {USERNAME}\")\n\n\nPor cada 1K seguidores, hubo 0.21 ataques para @vivicanosaok\n\n\n\n\nRanking de tipos de ataques\n\n\nCode\nconditions = [\n \"women\",\n \"politics\",\n \"appearance\",\n \"racism\",\n \"class\",\n \"lgbti\",\n \"criminal\",\n \"calls\",\n]\nattacks_count = df_attacks[conditions].sum()\nattacks_count = attacks_count.sort_values(ascending=False)\nattacks_count\n\n\nwomen 91\nappearance 50\npolitics 14\nracism 4\nclass 4\nlgbti 2\ncriminal 1\ncalls 0\ndtype: int64\n\n\n\n\nNúmero de ataques por tipo de evento\n\n\nCode\ndf_attacks[\"event\"].value_counts()\n\n\nevent\nelecciones generales 46\n1er debate 45\n2do debate 32\ndebate balotaje 21\nelecciones balotaje 15\nName: count, dtype: int64\n\n\n\n\nPublicaciones por evento\n\n\nCode\njournalist_posts = df.loc[df[\"from_journalist\"].isin([USERNAME])]\njournalist_posts = journalist_posts.dropna(subset=[\"from_journalist\"])\n\neventos = [\n \"1er debate\",\n \"2do debate\",\n \"elecciones generales\",\n \"debate balotaje\",\n \"elecciones balotaje\",\n]\ncolors = [\"green\", \"purple\", \"orange\", \"red\", \"blue\"]\neventos_count = {}\n\nfig = px.line()\n\nfor i, evento in enumerate(eventos):\n evento_data = journalist_posts.loc[journalist_posts[\"event\"].isin([evento])]\n evento_count = evento_data.groupby(\"dt_date\").size().reset_index(name=\"count\")\n eventos_count[evento] = evento_count\n fig.add_scatter(\n x=evento_count[\"dt_date\"],\n y=evento_count[\"count\"],\n name=evento,\n line=dict(color=colors[i]),\n hovertemplate=\"posts: %{y}\",\n )\n\nfig.update_layout(title=f\"Publicaciones de {USERNAME}\", width=1000)\nfig.update_xaxes(type=\"category\")\nfig.update_yaxes(range=[0, 100])\nfig.show()\n\n\n\n \n\n\n\n\nHashtags\n\n\nCode\ndf_attacks[\"hashtags\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"#\\w+\", x)) == 0\n else re.findall(r\"#\\w+\", x)\n )\n)\n\ndf_attacks[\"hashtags\"] = df_attacks[\"hashtags\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nhashtags = df_attacks[\"hashtags\"].unique()\n\n# remove nan items from list\nhashtags = [x for x in hashtags if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nhashtags = [x.split(\",\") for x in hashtags]\n\n# flatten list of lists\nhashtags = [item for sublist in hashtags for item in sublist]\n\n# remove whitespaces\nhashtags = list(map(lambda x: x.replace(\" \", \"\"), hashtags))\n\n# count items on list\nhashtags_count = pd.Series(hashtags).value_counts()\n\nhashtags_count\n\n\n#Milei 1\n#VotoContraMassa 1\n#SeVanParaSiempre 1\nName: count, dtype: int64\n\n\n\n\nMenciones\n\n\nCode\ndf_attacks[\"mentions\"] = df_attacks[\"text\"].apply(\n lambda x: (\n np.nan\n if pd.isnull(x) or not isinstance(x, str) or len(re.findall(r\"@(\\w+)\", x)) == 0\n else re.findall(r\"@(\\w+)\", x)\n )\n)\n\ndf_attacks[\"mentions\"] = df_attacks[\"mentions\"].apply(\n lambda x: \", \".join(x) if isinstance(x, list) else x\n)\n\n# convert dataframe column to list\nmentions = df_attacks[\"mentions\"].unique()\n\n# remove nan items from list\nmentions = [x for x in mentions if not pd.isna(x)]\n\n# split items into a list based on a delimiter\nmentions = [x.split(\",\") for x in mentions]\n\n# flatten list of lists\nmentions = [item for sublist in mentions for item in sublist]\n\n# remove whitespaces\nmentions = list(map(lambda x: x.replace(\" \", \"\"), mentions))\n\n# count items on list\nmentions_count = pd.Series(mentions).value_counts()\n\nmentions_count\n\n\nvivicanosaok 2\nPatoBullrich 1\nJonatanViale 1\nJMilei 1\nName: count, dtype: int64\n\n\n\n\nTokens\n\n\nCode\n# load the spacy model for Spanish\nnlp = spacy.load(\"es_core_news_sm\")\n\n# load stop words for Spanish\nSTOP_WORDS = nlp.Defaults.stop_words\n\n\n# Function to filter stop words\ndef filter_stopwords(text):\n # lower text\n doc = nlp(text.lower())\n # filter tokens\n tokens = [\n token.text\n for token in doc\n if not token.is_stop and token.text not in STOP_WORDS and token.is_alpha\n ]\n return \" \".join(tokens)\n\n\n# apply function to dataframe column\ndf_attacks[\"text_pre\"] = df_attacks[\"text\"].apply(filter_stopwords)\n\n# count items on column\ntoken_counts = df_attacks[\"text_pre\"].str.split(expand=True).stack().value_counts()[:20]\n\ntoken_counts\n\n\nmassa 24\nmilei 20\nvieja 18\nsos 15\nq 15\npautosa 11\nviviana 10\nmeada 10\ncanosa 8\nvos 8\njajaja 7\nvas 7\nviejo 7\nensobrada 6\ndas 6\ngordo 6\nanda 6\nborracha 5\ndebate 5\nasco 5\nName: count, dtype: int64" } ] \ No newline at end of file diff --git a/docs/site_libs/bootstrap/bootstrap.min.css b/docs/site_libs/bootstrap/bootstrap.min.css index 938e939..789b2e9 100644 --- a/docs/site_libs/bootstrap/bootstrap.min.css +++ b/docs/site_libs/bootstrap/bootstrap.min.css @@ -3,8 +3,8 @@ * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap";:root{--bs-blue: #3459e6;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #da292e;--bs-orange: #f8765f;--bs-yellow: #f4bd61;--bs-green: #2fb380;--bs-teal: #20c997;--bs-cyan: #287bb5;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #fff;--bs-primary: #3459e6;--bs-secondary: #fff;--bs-success: #2fb380;--bs-info: #287bb5;--bs-warning: #f4bd61;--bs-danger: #da292e;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 255, 255, 255;--bs-primary-rgb: 52, 89, 230;--bs-secondary-rgb: 255, 255, 255;--bs-success-rgb: 47, 179, 128;--bs-info-rgb: 40, 123, 181;--bs-warning-rgb: 244, 189, 97;--bs-danger-rgb: 218, 41, 46;--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: 73, 80, 87;--bs-body-bg-rgb: 255, 255, 255;--bs-font-sans-serif: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #495057;--bs-body-bg: #fff}*,*::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;color:#212529}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:purple;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#2a47b8}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:#f8f8f8;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:#f8f8f8;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:1rem;padding-bottom:1rem;color:#6c757d;text-align:left}th{font-weight:500;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;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #495057;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #495057;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #495057;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#495057;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:1rem 1rem;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 #cbd0d4}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.5rem .5rem}.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: #d6defa;--bs-table-striped-bg: #cbd3ee;--bs-table-striped-color: #000;--bs-table-active-bg: #c1c8e1;--bs-table-active-color: #fff;--bs-table-hover-bg: #c6cde7;--bs-table-hover-color: #000;color:#000;border-color:#c1c8e1}.table-secondary{--bs-table-bg: white;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-success{--bs-table-bg: #d5f0e6;--bs-table-striped-bg: #cae4db;--bs-table-striped-color: #000;--bs-table-active-bg: #c0d8cf;--bs-table-active-color: #000;--bs-table-hover-bg: #c5ded5;--bs-table-hover-color: #000;color:#000;border-color:#c0d8cf}.table-info{--bs-table-bg: #d4e5f0;--bs-table-striped-bg: #c9dae4;--bs-table-striped-color: #000;--bs-table-active-bg: #bfced8;--bs-table-active-color: #000;--bs-table-hover-bg: #c4d4de;--bs-table-hover-color: #000;color:#000;border-color:#bfced8}.table-warning{--bs-table-bg: #fdf2df;--bs-table-striped-bg: #f0e6d4;--bs-table-striped-color: #000;--bs-table-active-bg: #e4dac9;--bs-table-active-color: #000;--bs-table-hover-bg: #eae0ce;--bs-table-hover-color: #000;color:#000;border-color:#e4dac9}.table-danger{--bs-table-bg: #f8d4d5;--bs-table-striped-bg: #ecc9ca;--bs-table-striped-color: #000;--bs-table-active-bg: #dfbfc0;--bs-table-active-color: #fff;--bs-table-hover-bg: #e5c4c5;--bs-table-hover-color: #000;color:#000;border-color:#dfbfc0}.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: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;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;font-weight:500}.col-form-label{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;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:.5rem 1rem;font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;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;box-shadow:0 1px 2px rgba(0,0,0,.05);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:#495057;background-color:#fff;border-color:#9aacf3;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(52,89,230,.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:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem;color:#495057;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#ecedee}.form-control::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem;color:#495057;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#ecedee}.form-control-plaintext{display:block;width:100%;padding:.5rem 0;margin-bottom:0;line-height:1.5;color:#495057;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 1rem + 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:.5rem}.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:.5rem 3rem .5rem 1rem;-moz-padding-start:calc(1rem - 3px);font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;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 1rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#9aacf3;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(52,89,230,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:1rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #495057}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#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:#9aacf3;outline:0;box-shadow:0 0 0 .25rem rgba(52,89,230,.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:#3459e6;border-color:#3459e6}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#3459e6;border-color:#3459e6;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239aacf3'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(52,89,230,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(52,89,230,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#3459e6;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c2cdf8}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#3459e6;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c2cdf8}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem 1rem;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 1rem}.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:.5rem 1rem;font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#f8f9fa;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:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4rem}.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:#2fb380}.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(47,179,128,.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:#2fb380;padding-right:calc(1.5em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232fb380' 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.25rem) center;background-size:calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#2fb380;box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1rem);background-position:top calc(0.375em + 0.25rem) right calc(0.375em + 0.25rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#2fb380}.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:5.5rem;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='%232fb380' 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 1rem center,center right 3rem;background-size:16px 12px,calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#2fb380;box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#2fb380}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#2fb380}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#2fb380}.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:#da292e}.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(218,41,46,.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:#da292e;padding-right:calc(1.5em + 1rem);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='%23da292e'%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='%23da292e' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.25rem) center;background-size:calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#da292e;box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 1rem);background-position:top calc(0.375em + 0.25rem) right calc(0.375em + 0.25rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#da292e}.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:5.5rem;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='%23da292e'%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='%23da292e' stroke='none'/%3e%3c/svg%3e");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#da292e;box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#da292e}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#da292e}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#da292e}.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:500;line-height:1.5;color:#495057;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:.5rem 1rem;font-size:0.875rem;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:#495057}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active{box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.05)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65;box-shadow:none}.btn-default{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-primary{color:#fff;background-color:#3459e6;border-color:#3459e6;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-primary:hover{color:#fff;background-color:#2c4cc4;border-color:#2a47b8}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#2c4cc4;border-color:#2a47b8;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(82,114,234,.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:#2a47b8;border-color:#2743ad}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(82,114,234,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#3459e6;border-color:#3459e6}.btn-secondary{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-success{color:#fff;background-color:#2fb380;border-color:#2fb380;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-success:hover{color:#fff;background-color:#28986d;border-color:#268f66}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#28986d;border-color:#268f66;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(78,190,147,.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:#268f66;border-color:#238660}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(78,190,147,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#2fb380;border-color:#2fb380}.btn-info{color:#fff;background-color:#287bb5;border-color:#287bb5;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-info:hover{color:#fff;background-color:#22699a;border-color:#206291}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#22699a;border-color:#206291;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(72,143,192,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#206291;border-color:#1e5c88}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(72,143,192,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#287bb5;border-color:#287bb5}.btn-warning{color:#fff;background-color:#f4bd61;border-color:#f4bd61;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-warning:hover{color:#fff;background-color:#cfa152;border-color:#c3974e}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#cfa152;border-color:#c3974e;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(246,199,121,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#c3974e;border-color:#b78e49}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(246,199,121,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.btn-danger{color:#fff;background-color:#da292e;border-color:#da292e;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-danger:hover{color:#fff;background-color:#b92327;border-color:#ae2125}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#b92327;border-color:#ae2125;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(224,73,77,.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:#ae2125;border-color:#a41f23}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(224,73,77,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#da292e;border-color:#da292e}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#3459e6;border-color:#3459e6;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#3459e6;border-color:#3459e6}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(52,89,230,.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:#3459e6;border-color:#3459e6}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(52,89,230,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#3459e6;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#2fb380;border-color:#2fb380;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#2fb380;border-color:#2fb380}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(47,179,128,.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:#2fb380;border-color:#2fb380}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(47,179,128,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#2fb380;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#287bb5;border-color:#287bb5;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#287bb5;border-color:#287bb5}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(40,123,181,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#287bb5;border-color:#287bb5}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(40,123,181,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#287bb5;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#f4bd61;border-color:#f4bd61;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(244,189,97,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(244,189,97,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#f4bd61;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#da292e;border-color:#da292e;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#da292e;border-color:#da292e}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(218,41,46,.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:#da292e;border-color:#da292e}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(218,41,46,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#da292e;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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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:#3459e6;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#2a47b8}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:0.875rem;color:#495057;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 #e9ecef}.dropdown-item{display:block;width:100%;padding:.5rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#fff;background-color:#3459e6}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3459e6}.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:.5rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:#dee2e6}.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:#3459e6}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:#e9ecef}.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:.75rem;padding-left:.75rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#495057;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:#495057}.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:0;border-top-right-radius:0}.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:#3459e6;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:#3459e6}.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:.85rem;padding-bottom:.85rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:#2fb380}.navbar-light .navbar-brand{color:#06150f}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#091029}.navbar-light .navbar-nav .nav-link{color:#06150f}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(9,16,41,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(6,21,15,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#091029}.navbar-light .navbar-toggler{color:#06150f;border-color:rgba(6,21,15,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='%2306150f' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#06150f}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#091029}.navbar-dark{background-color:#2fb380}.navbar-dark .navbar-brand{color:#06150f}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#091029}.navbar-dark .navbar-nav .nav-link{color:#06150f}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(9,16,41,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(6,21,15,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#091029}.navbar-dark .navbar-toggler{color:#06150f;border-color:rgba(6,21,15,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='%2306150f' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#06150f}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#091029}.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 1.5rem}.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:1.5rem}.card-header{padding:1rem 1.5rem;margin-bottom:0;background-color:#adb5bd;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:1rem 1.5rem;background-color:#adb5bd;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.75rem;margin-bottom:-1rem;margin-left:-0.75rem;border-bottom:0}.card-header-pills{margin-right:-0.75rem;margin-left:-0.75rem}.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:#495057;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:#2f50cf;background-color:#ebeefd;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='%232f50cf'%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='%23495057'%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:#9aacf3;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1rem;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:#495057;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:#495057;background-color:#f8f9fa;border-color:#dee2e6}.page-link:focus{z-index:3;color:#495057;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(52,89,230,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#3459e6;border-color:#3459e6}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.5rem 1rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#999;background-color:#fff;border-color:#fff}.alert-default .alert-link{color:#7a7a7a}.alert-primary{color:#1f358a;background-color:#d6defa;border-color:#c2cdf8}.alert-primary .alert-link{color:#192a6e}.alert-secondary{color:#999;background-color:#fff;border-color:#fff}.alert-secondary .alert-link{color:#7a7a7a}.alert-success{color:#1c6b4d;background-color:#d5f0e6;border-color:#c1e8d9}.alert-success .alert-link{color:#16563e}.alert-info{color:#184a6d;background-color:#d4e5f0;border-color:#bfd7e9}.alert-info .alert-link{color:#133b57}.alert-warning{color:#92713a;background-color:#fdf2df;border-color:#fcebd0}.alert-warning .alert-link{color:#755a2e}.alert-danger{color:#83191c;background-color:#f8d4d5;border-color:#f4bfc0}.alert-danger .alert-link{color:#691416}.alert-light{color:#959596;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#777778}.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;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#3459e6;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:#495057;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:1rem 1.5rem;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:#3459e6;border-color:#3459e6}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#999;background-color:#fff}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-primary{color:#1f358a;background-color:#d6defa}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#1f358a;background-color:#c1c8e1}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1f358a;border-color:#1f358a}.list-group-item-secondary{color:#999;background-color:#fff}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-success{color:#1c6b4d;background-color:#d5f0e6}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#1c6b4d;background-color:#c0d8cf}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b4d;border-color:#1c6b4d}.list-group-item-info{color:#184a6d;background-color:#d4e5f0}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#184a6d;background-color:#bfced8}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#184a6d;border-color:#184a6d}.list-group-item-warning{color:#92713a;background-color:#fdf2df}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#92713a;background-color:#e4dac9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#92713a;border-color:#92713a}.list-group-item-danger{color:#83191c;background-color:#f8d4d5}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#83191c;background-color:#dfbfc0}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#83191c;border-color:#83191c}.list-group-item-light{color:#959596;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#959596;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#959596;border-color:#959596}.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(52,89,230,.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 1px 2px rgba(0,0,0,.05);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:#212529;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 #dee2e6;border-radius:.3rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:0 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:0 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-content{box-shadow:0 1px 2px rgba(0,0,0,.05)}.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;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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;color:#212529;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:#495057}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid #dee2e6;transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid #dee2e6;transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid #dee2e6;transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid #dee2e6;transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#fff}.link-default:hover,.link-default:focus{color:#fff}.link-primary{color:#3459e6}.link-primary:hover,.link-primary:focus{color:#2a47b8}.link-secondary{color:#fff}.link-secondary:hover,.link-secondary:focus{color:#fff}.link-success{color:#2fb380}.link-success:hover,.link-success:focus{color:#268f66}.link-info{color:#287bb5}.link-info:hover,.link-info:focus{color:#206291}.link-warning{color:#f4bd61}.link-warning:hover,.link-warning:focus{color:#c3974e}.link-danger{color:#da292e}.link-danger:hover,.link-danger:focus{color:#ae2125}.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 1px 2px rgba(0,0,0,.05) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#fff !important}.border-primary{border-color:#3459e6 !important}.border-secondary{border-color:#fff !important}.border-success{border-color:#2fb380 !important}.border-info{border-color:#287bb5 !important}.border-warning{border-color:#f4bd61 !important}.border-danger{border-color:#da292e !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:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#000}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#06150f}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#091029}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid #4ecc9a 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#595959}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#595959;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(73,80,87,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8c8c8c}div.sidebar-item-container{color:#595959}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(73,80,87,.8)}div.sidebar-item-container.disabled{color:rgba(89,89,89,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#495057}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#fff}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#fff;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#2a47b8}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#2a47b8}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:76px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#06150f;border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#595959;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#06150f;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#06150f;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(52,89,230,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#495057;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#495057;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#495057;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#495057;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #ced4da 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#3459e6}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#3459e6}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#5877ea}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#495057}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#f3f5fd}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#495057}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#ced4da;color:#495057}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #ced4da}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#06150f}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#595959}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(206,212,218,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #ced4da;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#495057;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(52,89,230,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(73,80,87,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#495057;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#495057;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:var(--bs-font-sans-serif);flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:purple}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:purple}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:purple}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:purple}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:purple}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#495057;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:#495057}.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}/*! + */@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap";:root{--bs-blue: #3459e6;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #da292e;--bs-orange: #f8765f;--bs-yellow: #f4bd61;--bs-green: #2fb380;--bs-teal: #20c997;--bs-cyan: #287bb5;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #fff;--bs-primary: #3459e6;--bs-secondary: #fff;--bs-success: #2fb380;--bs-info: #287bb5;--bs-warning: #f4bd61;--bs-danger: #da292e;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-default-rgb: 255, 255, 255;--bs-primary-rgb: 52, 89, 230;--bs-secondary-rgb: 255, 255, 255;--bs-success-rgb: 47, 179, 128;--bs-info-rgb: 40, 123, 181;--bs-warning-rgb: 244, 189, 97;--bs-danger-rgb: 218, 41, 46;--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: 73, 80, 87;--bs-body-bg-rgb: 255, 255, 255;--bs-font-sans-serif: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #495057;--bs-body-bg: #fff}*,*::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;color:#212529}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:blue;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{color:#2a47b8}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:#f8f8f8;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:#f8f8f8;border-radius:.25rem;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#212529;border-radius:.2em}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:1rem;padding-bottom:1rem;color:#6c757d;text-align:left}th{font-weight:500;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;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:#6c757d}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-bg: transparent;--bs-table-accent-bg: transparent;--bs-table-striped-color: #495057;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #495057;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #495057;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#495057;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:1rem 1rem;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 #cbd0d4}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.5rem .5rem}.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: #d6defa;--bs-table-striped-bg: #cbd3ee;--bs-table-striped-color: #000;--bs-table-active-bg: #c1c8e1;--bs-table-active-color: #fff;--bs-table-hover-bg: #c6cde7;--bs-table-hover-color: #000;color:#000;border-color:#c1c8e1}.table-secondary{--bs-table-bg: white;--bs-table-striped-bg: #f2f2f2;--bs-table-striped-color: #000;--bs-table-active-bg: #e6e6e6;--bs-table-active-color: #000;--bs-table-hover-bg: #ececec;--bs-table-hover-color: #000;color:#000;border-color:#e6e6e6}.table-success{--bs-table-bg: #d5f0e6;--bs-table-striped-bg: #cae4db;--bs-table-striped-color: #000;--bs-table-active-bg: #c0d8cf;--bs-table-active-color: #000;--bs-table-hover-bg: #c5ded5;--bs-table-hover-color: #000;color:#000;border-color:#c0d8cf}.table-info{--bs-table-bg: #d4e5f0;--bs-table-striped-bg: #c9dae4;--bs-table-striped-color: #000;--bs-table-active-bg: #bfced8;--bs-table-active-color: #000;--bs-table-hover-bg: #c4d4de;--bs-table-hover-color: #000;color:#000;border-color:#bfced8}.table-warning{--bs-table-bg: #fdf2df;--bs-table-striped-bg: #f0e6d4;--bs-table-striped-color: #000;--bs-table-active-bg: #e4dac9;--bs-table-active-color: #000;--bs-table-hover-bg: #eae0ce;--bs-table-hover-color: #000;color:#000;border-color:#e4dac9}.table-danger{--bs-table-bg: #f8d4d5;--bs-table-striped-bg: #ecc9ca;--bs-table-striped-color: #000;--bs-table-active-bg: #dfbfc0;--bs-table-active-color: #fff;--bs-table-hover-bg: #e5c4c5;--bs-table-hover-color: #000;color:#000;border-color:#dfbfc0}.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: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;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;font-weight:500}.col-form-label{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);margin-bottom:0;font-size:inherit;font-weight:500;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:.5rem 1rem;font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;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;box-shadow:0 1px 2px rgba(0,0,0,.05);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:#495057;background-color:#fff;border-color:#9aacf3;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(52,89,230,.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:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem;color:#495057;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#ecedee}.form-control::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem;color:#495057;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#ecedee}.form-control-plaintext{display:block;width:100%;padding:.5rem 0;margin-bottom:0;line-height:1.5;color:#495057;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + 2px);padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 1rem + 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:.5rem}.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:.5rem 3rem .5rem 1rem;-moz-padding-start:calc(1rem - 3px);font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;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 1rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#9aacf3;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 0 .25rem rgba(52,89,230,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:1rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #495057}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:.2em}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#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:#9aacf3;outline:0;box-shadow:0 0 0 .25rem rgba(52,89,230,.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:#3459e6;border-color:#3459e6}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#3459e6;border-color:#3459e6;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239aacf3'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline,.shiny-input-container .checkbox-inline,.shiny-input-container .radio-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:rgba(0,0,0,0);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(52,89,230,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(52,89,230,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;background-color:#3459e6;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c2cdf8}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#3459e6;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c2cdf8}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#dee2e6;border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem 1rem;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 1rem}.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:.5rem 1rem;font-size:0.875rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#f8f9fa;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:.2em}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:4rem}.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:#2fb380}.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(47,179,128,.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:#2fb380;padding-right:calc(1.5em + 1rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232fb380' 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.25rem) center;background-size:calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#2fb380;box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1rem);background-position:top calc(0.375em + 0.25rem) right calc(0.375em + 0.25rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#2fb380}.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:5.5rem;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='%232fb380' 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 1rem center,center right 3rem;background-size:16px 12px,calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#2fb380;box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#2fb380}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#2fb380}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(47,179,128,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#2fb380}.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:#da292e}.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(218,41,46,.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:#da292e;padding-right:calc(1.5em + 1rem);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='%23da292e'%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='%23da292e' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.25rem) center;background-size:calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#da292e;box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 1rem);background-position:top calc(0.375em + 0.25rem) right calc(0.375em + 0.25rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#da292e}.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:5.5rem;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='%23da292e'%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='%23da292e' stroke='none'/%3e%3c/svg%3e");background-position:right 1rem center,center right 3rem;background-size:16px 12px,calc(0.75em + 0.5rem) calc(0.75em + 0.5rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#da292e;box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#da292e}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#da292e}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(218,41,46,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#da292e}.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:500;line-height:1.5;color:#495057;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:.5rem 1rem;font-size:0.875rem;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:#495057}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active{box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.05)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65;box-shadow:none}.btn-default{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-default,.btn-default:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-default,.btn-check:active+.btn-default,.btn-default:active,.btn-default.active,.show>.btn-default.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-default:focus,.btn-check:active+.btn-default:focus,.btn-default:active:focus,.btn-default.active:focus,.show>.btn-default.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-default:disabled,.btn-default.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-primary{color:#fff;background-color:#3459e6;border-color:#3459e6;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-primary:hover{color:#fff;background-color:#2c4cc4;border-color:#2a47b8}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#2c4cc4;border-color:#2a47b8;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(82,114,234,.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:#2a47b8;border-color:#2743ad}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(82,114,234,.5)}.btn-primary:disabled,.btn-primary.disabled{color:#fff;background-color:#3459e6;border-color:#3459e6}.btn-secondary{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.show>.btn-secondary.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(217,217,217,.5)}.btn-secondary:disabled,.btn-secondary.disabled{color:#000;background-color:#fff;border-color:#fff}.btn-success{color:#fff;background-color:#2fb380;border-color:#2fb380;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-success:hover{color:#fff;background-color:#28986d;border-color:#268f66}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#28986d;border-color:#268f66;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(78,190,147,.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:#268f66;border-color:#238660}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(78,190,147,.5)}.btn-success:disabled,.btn-success.disabled{color:#fff;background-color:#2fb380;border-color:#2fb380}.btn-info{color:#fff;background-color:#287bb5;border-color:#287bb5;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-info:hover{color:#fff;background-color:#22699a;border-color:#206291}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#22699a;border-color:#206291;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(72,143,192,.5)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#206291;border-color:#1e5c88}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(72,143,192,.5)}.btn-info:disabled,.btn-info.disabled{color:#fff;background-color:#287bb5;border-color:#287bb5}.btn-warning{color:#fff;background-color:#f4bd61;border-color:#f4bd61;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-warning:hover{color:#fff;background-color:#cfa152;border-color:#c3974e}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#fff;background-color:#cfa152;border-color:#c3974e;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(246,199,121,.5)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#c3974e;border-color:#b78e49}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(246,199,121,.5)}.btn-warning:disabled,.btn-warning.disabled{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.btn-danger{color:#fff;background-color:#da292e;border-color:#da292e;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-danger:hover{color:#fff;background-color:#b92327;border-color:#ae2125}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#b92327;border-color:#ae2125;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(224,73,77,.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:#ae2125;border-color:#a41f23}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(224,73,77,.5)}.btn-danger:disabled,.btn-danger.disabled{color:#fff;background-color:#da292e;border-color:#da292e}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-default:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-default,.btn-outline-default:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-default,.btn-check:active+.btn-outline-default,.btn-outline-default:active,.btn-outline-default.active,.btn-outline-default.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-default:focus,.btn-check:active+.btn-outline-default:focus,.btn-outline-default:active:focus,.btn-outline-default.active:focus,.btn-outline-default.dropdown-toggle.show:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-default:disabled,.btn-outline-default.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-primary{color:#3459e6;border-color:#3459e6;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover{color:#fff;background-color:#3459e6;border-color:#3459e6}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(52,89,230,.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:#3459e6;border-color:#3459e6}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(52,89,230,.5)}.btn-outline-primary:disabled,.btn-outline-primary.disabled{color:#3459e6;background-color:rgba(0,0,0,0)}.btn-outline-secondary{color:#fff;border-color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled{color:#fff;background-color:rgba(0,0,0,0)}.btn-outline-success{color:#2fb380;border-color:#2fb380;background-color:rgba(0,0,0,0)}.btn-outline-success:hover{color:#fff;background-color:#2fb380;border-color:#2fb380}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(47,179,128,.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:#2fb380;border-color:#2fb380}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(47,179,128,.5)}.btn-outline-success:disabled,.btn-outline-success.disabled{color:#2fb380;background-color:rgba(0,0,0,0)}.btn-outline-info{color:#287bb5;border-color:#287bb5;background-color:rgba(0,0,0,0)}.btn-outline-info:hover{color:#fff;background-color:#287bb5;border-color:#287bb5}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(40,123,181,.5)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show{color:#fff;background-color:#287bb5;border-color:#287bb5}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(40,123,181,.5)}.btn-outline-info:disabled,.btn-outline-info.disabled{color:#287bb5;background-color:rgba(0,0,0,0)}.btn-outline-warning{color:#f4bd61;border-color:#f4bd61;background-color:rgba(0,0,0,0)}.btn-outline-warning:hover{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(244,189,97,.5)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show{color:#fff;background-color:#f4bd61;border-color:#f4bd61}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(244,189,97,.5)}.btn-outline-warning:disabled,.btn-outline-warning.disabled{color:#f4bd61;background-color:rgba(0,0,0,0)}.btn-outline-danger{color:#da292e;border-color:#da292e;background-color:rgba(0,0,0,0)}.btn-outline-danger:hover{color:#fff;background-color:#da292e;border-color:#da292e}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(218,41,46,.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:#da292e;border-color:#da292e}.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 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(218,41,46,.5)}.btn-outline-danger:disabled,.btn-outline-danger.disabled{color:#da292e;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 1px 2px rgba(0,0,0,.05),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 1px 2px rgba(0,0,0,.05),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:#3459e6;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:hover{color:#2a47b8}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:0.875rem;color:#495057;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 #e9ecef}.dropdown-item{display:block;width:100%;padding:.5rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:#fff;background-color:#3459e6}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3459e6}.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:.5rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:#dee2e6}.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:#3459e6}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:#e9ecef}.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:.75rem;padding-left:.75rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group.show .dropdown-toggle{box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#495057;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:#495057}.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:0;border-top-right-radius:0}.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:#3459e6;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:#3459e6}.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:.85rem;padding-bottom:.85rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:.75rem;padding-left:.75rem}.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:#2fb380}.navbar-light .navbar-brand{color:#06150f}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:#091029}.navbar-light .navbar-nav .nav-link{color:#06150f}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(9,16,41,.8)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(6,21,15,.75)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .nav-link.active{color:#091029}.navbar-light .navbar-toggler{color:#06150f;border-color:rgba(6,21,15,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='%2306150f' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:#06150f}.navbar-light .navbar-text a,.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:#091029}.navbar-dark{background-color:#2fb380}.navbar-dark .navbar-brand{color:#06150f}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#091029}.navbar-dark .navbar-nav .nav-link{color:#06150f}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(9,16,41,.8)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(6,21,15,.75)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active{color:#091029}.navbar-dark .navbar-toggler{color:#06150f;border-color:rgba(6,21,15,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='%2306150f' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:#06150f}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#091029}.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 1.5rem}.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:1.5rem}.card-header{padding:1rem 1.5rem;margin-bottom:0;background-color:#adb5bd;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:1rem 1.5rem;background-color:#adb5bd;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.75rem;margin-bottom:-1rem;margin-left:-0.75rem;border-bottom:0}.card-header-pills{margin-right:-0.75rem;margin-left:-0.75rem}.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:#495057;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:#2f50cf;background-color:#ebeefd;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='%232f50cf'%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='%23495057'%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:#9aacf3;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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 1rem;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:#495057;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:#495057;background-color:#f8f9fa;border-color:#dee2e6}.page-link:focus{z-index:3;color:#495057;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(52,89,230,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#3459e6;border-color:#3459e6}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.5rem 1rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:0.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2em;border-bottom-left-radius:.2em}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2em;border-bottom-right-radius:.2em}.badge{display:inline-block;padding:.35em .65em;font-size:0.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid rgba(0,0,0,0);border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{color:#999;background-color:#fff;border-color:#fff}.alert-default .alert-link{color:#7a7a7a}.alert-primary{color:#1f358a;background-color:#d6defa;border-color:#c2cdf8}.alert-primary .alert-link{color:#192a6e}.alert-secondary{color:#999;background-color:#fff;border-color:#fff}.alert-secondary .alert-link{color:#7a7a7a}.alert-success{color:#1c6b4d;background-color:#d5f0e6;border-color:#c1e8d9}.alert-success .alert-link{color:#16563e}.alert-info{color:#184a6d;background-color:#d4e5f0;border-color:#bfd7e9}.alert-info .alert-link{color:#133b57}.alert-warning{color:#92713a;background-color:#fdf2df;border-color:#fcebd0}.alert-warning .alert-link{color:#755a2e}.alert-danger{color:#83191c;background-color:#f8d4d5;border-color:#f4bfc0}.alert-danger .alert-link{color:#691416}.alert-light{color:#959596;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#777778}.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;box-shadow:inset 0 1px 2px rgba(0,0,0,.075)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#3459e6;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:#495057;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:1rem 1.5rem;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:#3459e6;border-color:#3459e6}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{color:#999;background-color:#fff}.list-group-item-default.list-group-item-action:hover,.list-group-item-default.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-default.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-primary{color:#1f358a;background-color:#d6defa}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#1f358a;background-color:#c1c8e1}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1f358a;border-color:#1f358a}.list-group-item-secondary{color:#999;background-color:#fff}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#999;background-color:#e6e6e6}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-success{color:#1c6b4d;background-color:#d5f0e6}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#1c6b4d;background-color:#c0d8cf}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1c6b4d;border-color:#1c6b4d}.list-group-item-info{color:#184a6d;background-color:#d4e5f0}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#184a6d;background-color:#bfced8}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#184a6d;border-color:#184a6d}.list-group-item-warning{color:#92713a;background-color:#fdf2df}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#92713a;background-color:#e4dac9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#92713a;border-color:#92713a}.list-group-item-danger{color:#83191c;background-color:#f8d4d5}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#83191c;background-color:#dfbfc0}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#83191c;border-color:#83191c}.list-group-item-light{color:#959596;background-color:#fefefe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#959596;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#959596;border-color:#959596}.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(52,89,230,.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 1px 2px rgba(0,0,0,.05);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:#212529;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 #dee2e6;border-radius:.3rem;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem;border-bottom:0 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:0 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-content{box-shadow:0 1px 2px rgba(0,0,0,.05)}.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;box-shadow:0 1px 2px rgba(0,0,0,.05)}.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;color:#212529;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:#495057}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;border:.25em solid currentColor;border-right-color:rgba(0,0,0,0);border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-0.125em;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{animation-duration:1.5s;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:transform .3s ease-in-out}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-0.5rem;margin-right:-0.5rem;margin-bottom:-0.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid #dee2e6;transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid #dee2e6;transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid #dee2e6;transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid #dee2e6;transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-default{color:#fff}.link-default:hover,.link-default:focus{color:#fff}.link-primary{color:#3459e6}.link-primary:hover,.link-primary:focus{color:#2a47b8}.link-secondary{color:#fff}.link-secondary:hover,.link-secondary:focus{color:#fff}.link-success{color:#2fb380}.link-success:hover,.link-success:focus{color:#268f66}.link-info{color:#287bb5}.link-info:hover,.link-info:focus{color:#206291}.link-warning{color:#f4bd61}.link-warning:hover,.link-warning:focus{color:#c3974e}.link-danger{color:#da292e}.link-danger:hover,.link-danger:focus{color:#ae2125}.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 1px 2px rgba(0,0,0,.05) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06) !important}.shadow-none{box-shadow:none !important}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:1px solid #dee2e6 !important}.border-0{border:0 !important}.border-top{border-top:1px solid #dee2e6 !important}.border-top-0{border-top:0 !important}.border-end{border-right:1px solid #dee2e6 !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:1px solid #dee2e6 !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:1px solid #dee2e6 !important}.border-start-0{border-left:0 !important}.border-default{border-color:#fff !important}.border-primary{border-color:#3459e6 !important}.border-secondary{border-color:#fff !important}.border-success{border-color:#2fb380 !important}.border-info{border-color:#287bb5 !important}.border-warning{border-color:#f4bd61 !important}.border-danger{border-color:#da292e !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:.2em !important}.rounded-2{border-radius:.25rem !important}.rounded-3{border-radius:.3rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:50rem !important}.rounded-top{border-top-left-radius:.25rem !important;border-top-right-radius:.25rem !important}.rounded-end{border-top-right-radius:.25rem !important;border-bottom-right-radius:.25rem !important}.rounded-bottom{border-bottom-right-radius:.25rem !important;border-bottom-left-radius:.25rem !important}.rounded-start{border-bottom-left-radius:.25rem !important;border-top-left-radius:.25rem !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#000}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.quarto-container{min-height:calc(100vh - 132px)}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}nav[role=doc-toc]{padding-left:.5em}#quarto-content>*{padding-top:14px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-toggler{order:-1;margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#06150f}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#091029}@media(max-width: 991.98px){.navbar .quarto-navbar-tools{margin-top:.25em;padding-top:.75em;display:block;color:solid #4ecc9a 1px;text-align:center;vertical-align:middle;margin-right:auto}}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em}.sidebar-section{margin-top:.2em;padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-secondary-nav .quarto-btn-toggle{color:#595959}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.quarto-secondary-nav-title{margin-top:.3em;color:#595959;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(73,80,87,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8c8c8c}div.sidebar-item-container{color:#595959}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(73,80,87,.8)}div.sidebar-item-container.disabled{color:rgba(89,89,89,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#495057}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#fff}.sidebar.sidebar-navigation:not(.rollup){border-right:1px solid #dee2e6 !important}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#fff;border-bottom:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#2a47b8}.toc-actions{display:flex}.toc-actions p{margin-block-start:0;margin-block-end:0}.toc-actions a{text-decoration:none;color:inherit;font-weight:400}.toc-actions a:hover{color:#2a47b8}.toc-actions .action-links{margin-left:4px}.sidebar nav[role=doc-toc] .toc-actions .bi{margin-left:-4px;font-size:.7rem;color:#6c757d}.sidebar nav[role=doc-toc] .toc-actions .bi:before{padding-top:3px}#quarto-margin-sidebar .toc-actions .bi:before{margin-top:.3rem;font-size:.7rem;color:#6c757d;vertical-align:top}.sidebar nav[role=doc-toc] .toc-actions>div:first-of-type{margin-top:-3px}#quarto-margin-sidebar .toc-actions p,.sidebar nav[role=doc-toc] .toc-actions p{font-size:.875rem}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions :first-child{margin-left:auto}.nav-footer .toc-actions :last-child{margin-right:auto}.nav-footer .toc-actions .action-links{display:flex}.nav-footer .toc-actions .action-links p{padding-right:1.5em}.nav-footer .toc-actions .action-links p:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:76px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#06150f;border-radius:3px}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#595959;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#06150f;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#06150f;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;color:#495057;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(52,89,230,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#495057;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#495057;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#495057;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#495057;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#495057;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #ced4da 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#3459e6}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#3459e6}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#5877ea}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#495057}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#f3f5fd}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#495057}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#ced4da;color:#495057}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:44px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #ced4da}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#06150f}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#595959}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(206,212,218,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #ced4da;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#495057;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(52,89,230,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(73,80,87,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#495057;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:#adb5bd;flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post a{color:#495057;display:flex;flex-direction:column;text-decoration:none}div.quarto-post a div.description{flex-shrink:0}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:var(--bs-font-sans-serif);flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:blue}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:blue}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:blue}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:blue}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#78838e;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:blue}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#495057;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:#495057}.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: #fff;--quarto-body-color: #495057;--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: #fff;--mermaid-edge-color: #fff;--mermaid-node-fg-color: #495057;--mermaid-fg-color: #495057;--mermaid-fg-color--lighter: #606a73;--mermaid-fg-color--lightest: #78838e;--mermaid-font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #3459e6;--mermaid-node-bg-color: rgba(52, 89, 230, 0.1);--mermaid-node-fg-color: #495057}@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:#869099}.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:#869099}.table-caption,caption{color:#495057}.quarto-layout-cell[data-ref-parent] caption{color:#869099}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#869099;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#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:#869099}.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:#f8f8f8;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:purple}.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:purple}.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 #3459e6;color:#3459e6 !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#3459e6 !important}kbd,.kbd{color:#495057;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 #cbd0d4}.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:#3459e6}div.callout-note.callout-style-default>.callout-header{background-color:#ebeefd}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:#2fb380}div.callout-tip.callout-style-default>.callout-header{background-color:#eaf7f2}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:#f4bd61}div.callout-warning.callout-style-default>.callout-header{background-color:#fef8ef}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:#f8765f}div.callout-caution.callout-style-default>.callout-header{background-color:#fef1ef}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:#da292e}div.callout-important.callout-style-default>.callout-header{background-color:#fbeaea}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:#495057}.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:#595959;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#595959;background-color:#fff;border-color:#fff}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#595959;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(230,230,230,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(230,230,230,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#000;background-color:#fff;border-color:#fff}nav.quarto-secondary-nav.color-navbar{background-color:#2fb380;color:#06150f}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#06150f}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#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:#606a73;border:solid #606a73 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:#fff;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #cbd0d4;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#cbd0d4}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:#06150f;background:#2fb380}.quarto-title-banner .code-tools-button{color:#1d6448}.quarto-title-banner .code-tools-button:hover{color:#06150f}.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:#495057}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}.navbar{font-size:.875rem;font-weight:500}.navbar .nav-item{margin-left:.5rem;margin-right:.5rem}.navbar .navbar-nav .nav-link{border-radius:.25rem}.navbar-dark .navbar-nav .nav-link:hover{background-color:rgba(255,255,255,.1)}.navbar-dark .navbar-nav .nav-link.active{background-color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:hover{background-color:rgba(0,0,0,.03)}.navbar-light .navbar-nav .nav-link.active{background-color:rgba(0,0,0,.05)}.btn-secondary,.btn-light,.btn-outline-secondary,.btn-outline-light{color:#212529}.btn-secondary:disabled,.btn-secondary.disabled,.btn-light:disabled,.btn-light.disabled,.btn-outline-secondary:disabled,.btn-outline-secondary.disabled,.btn-outline-light:disabled,.btn-outline-light.disabled{border:1px solid #e6e6e6}.btn-secondary,.btn-outline-secondary{border-color:#e6e6e6}.btn-secondary:hover,.btn-secondary:active,.btn-outline-secondary:hover,.btn-outline-secondary:active{background-color:#e6e6e6;border-color:#e6e6e6}.btn-light,.btn-outline-light{border-color:#dfe0e1}.btn-light:hover,.btn-light:active,.btn-outline-light:hover,.btn-outline-light:active{background-color:#dfe0e1;border-color:#dfe0e1}.table{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);font-size:.875rem}thead th{text-transform:uppercase;font-size:.875rem}.input-group-text{box-shadow:0 1px 2px rgba(0,0,0,.05)}.nav-tabs{font-weight:500}.nav-tabs .nav-link{padding-top:1rem;padding-bottom:1rem;border-width:0 0 1px}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{box-shadow:inset 0 -2px 0 #3459e6}.nav-pills{font-weight:500}.pagination{font-size:.875rem;font-weight:500}.pagination .page-link{box-shadow:0 1px 2px rgba(0,0,0,.05)}.breadcrumb{border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.05);font-size:.875rem;font-weight:500}.breadcrumb-item{padding:1rem .5rem 1rem 0}.breadcrumb-item+.breadcrumb-item::before{padding-right:1rem}.alert .btn-close{color:inherit}.badge.bg-secondary,.badge.bg-light{color:#212529}.list-group{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.card{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.card-title{color:inherit}.modal-footer{background-color:#f8f9fa}.modal-content{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}/*# sourceMappingURL=9161419e6f82ea4435380a70856fa72b.css.map */ +*/.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: #fff;--quarto-body-color: #495057;--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: #fff;--mermaid-edge-color: #fff;--mermaid-node-fg-color: #495057;--mermaid-fg-color: #495057;--mermaid-fg-color--lighter: #606a73;--mermaid-fg-color--lightest: #78838e;--mermaid-font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #3459e6;--mermaid-node-bg-color: rgba(52, 89, 230, 0.1);--mermaid-node-fg-color: #495057}@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:#869099}.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:#869099}.table-caption,caption{color:#495057}.quarto-layout-cell[data-ref-parent] caption{color:#869099}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#869099;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#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:#869099}.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:#f8f8f8;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:blue}.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:blue}.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 #3459e6;color:#3459e6 !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#3459e6 !important}kbd,.kbd{color:#495057;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 #cbd0d4}.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:#3459e6}div.callout-note.callout-style-default>.callout-header{background-color:#ebeefd}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:#2fb380}div.callout-tip.callout-style-default>.callout-header{background-color:#eaf7f2}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:#f4bd61}div.callout-warning.callout-style-default>.callout-header{background-color:#fef8ef}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:#f8765f}div.callout-caution.callout-style-default>.callout-header{background-color:#fef1ef}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:#da292e}div.callout-important.callout-style-default>.callout-header{background-color:#fbeaea}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:#495057}.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:#595959;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn.btn-quarto:hover,div.cell-output-display .btn-quarto:hover{color:#595959;background-color:#fff;border-color:#fff}.btn-check:focus+.btn.btn-quarto,.btn.btn-quarto:focus,.btn-check:focus+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:focus{color:#595959;background-color:#fff;border-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(230,230,230,.5)}.btn-check:checked+.btn.btn-quarto,.btn-check:active+.btn.btn-quarto,.btn.btn-quarto:active,.btn.btn-quarto.active,.show>.btn.btn-quarto.dropdown-toggle,.btn-check:checked+div.cell-output-display .btn-quarto,.btn-check:active+div.cell-output-display .btn-quarto,div.cell-output-display .btn-quarto:active,div.cell-output-display .btn-quarto.active,.show>div.cell-output-display .btn-quarto.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:checked+.btn.btn-quarto:focus,.btn-check:active+.btn.btn-quarto:focus,.btn.btn-quarto:active:focus,.btn.btn-quarto.active:focus,.show>.btn.btn-quarto.dropdown-toggle:focus,.btn-check:checked+div.cell-output-display .btn-quarto:focus,.btn-check:active+div.cell-output-display .btn-quarto:focus,div.cell-output-display .btn-quarto:active:focus,div.cell-output-display .btn-quarto.active:focus,.show>div.cell-output-display .btn-quarto.dropdown-toggle:focus{box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 .25rem rgba(230,230,230,.5)}.btn.btn-quarto:disabled,.btn.btn-quarto.disabled,div.cell-output-display .btn-quarto:disabled,div.cell-output-display .btn-quarto.disabled{color:#000;background-color:#fff;border-color:#fff}nav.quarto-secondary-nav.color-navbar{background-color:#2fb380;color:#06150f}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#06150f}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:0}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#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:#606a73;border:solid #606a73 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:#fff;border-bottom-style:solid;border-bottom-width:1px}.table>:not(:first-child){border-top:1px solid #cbd0d4;border-bottom:1px solid inherit}.table tbody{border-bottom-color:#cbd0d4}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:#06150f;background:#2fb380}.quarto-title-banner .code-tools-button{color:#1d6448}.quarto-title-banner .code-tools-button:hover{color:#06150f}.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:#495057}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.7em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .description .abstract-title,#title-block-header.quarto-title-block.default .abstract .abstract-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:1fr 1fr}.quarto-title-tools-only{display:flex;justify-content:right}.navbar{font-size:.875rem;font-weight:500}.navbar .nav-item{margin-left:.5rem;margin-right:.5rem}.navbar .navbar-nav .nav-link{border-radius:.25rem}.navbar-dark .navbar-nav .nav-link:hover{background-color:rgba(255,255,255,.1)}.navbar-dark .navbar-nav .nav-link.active{background-color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:hover{background-color:rgba(0,0,0,.03)}.navbar-light .navbar-nav .nav-link.active{background-color:rgba(0,0,0,.05)}.btn-secondary,.btn-light,.btn-outline-secondary,.btn-outline-light{color:#212529}.btn-secondary:disabled,.btn-secondary.disabled,.btn-light:disabled,.btn-light.disabled,.btn-outline-secondary:disabled,.btn-outline-secondary.disabled,.btn-outline-light:disabled,.btn-outline-light.disabled{border:1px solid #e6e6e6}.btn-secondary,.btn-outline-secondary{border-color:#e6e6e6}.btn-secondary:hover,.btn-secondary:active,.btn-outline-secondary:hover,.btn-outline-secondary:active{background-color:#e6e6e6;border-color:#e6e6e6}.btn-light,.btn-outline-light{border-color:#dfe0e1}.btn-light:hover,.btn-light:active,.btn-outline-light:hover,.btn-outline-light:active{background-color:#dfe0e1;border-color:#dfe0e1}.table{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);font-size:.875rem}thead th{text-transform:uppercase;font-size:.875rem}.input-group-text{box-shadow:0 1px 2px rgba(0,0,0,.05)}.nav-tabs{font-weight:500}.nav-tabs .nav-link{padding-top:1rem;padding-bottom:1rem;border-width:0 0 1px}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{box-shadow:inset 0 -2px 0 #3459e6}.nav-pills{font-weight:500}.pagination{font-size:.875rem;font-weight:500}.pagination .page-link{box-shadow:0 1px 2px rgba(0,0,0,.05)}.breadcrumb{border:1px solid #dee2e6;border-radius:.25rem;box-shadow:0 1px 2px rgba(0,0,0,.05);font-size:.875rem;font-weight:500}.breadcrumb-item{padding:1rem .5rem 1rem 0}.breadcrumb-item+.breadcrumb-item::before{padding-right:1rem}.alert .btn-close{color:inherit}.badge.bg-secondary,.badge.bg-light{color:#212529}.list-group{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.card{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.card-title{color:inherit}.modal-footer{background-color:#f8f9fa}.modal-content{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}/*# sourceMappingURL=9161419e6f82ea4435380a70856fa72b.css.map */ diff --git a/pages/0.analisis_general.ipynb b/pages/0.analisis_general.ipynb index bb533ca..0acb6ed 100644 --- a/pages/0.analisis_general.ipynb +++ b/pages/0.analisis_general.ipynb @@ -529,6 +529,163 @@ "attacks[\"event\"].value_counts()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Proporción de ataques por tipo de evento\n", + "\n", + "Porcentaje de ataques por tweets recolectados para cada evento" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "El 6 % del total de los tweets del 1er debate fueron ataques\n", + "El 5 % del total de los tweets del 2do debate fueron ataques\n", + "El 5 % del total de los tweets de las elecciones generales fueron ataques\n", + "El 5 % del total de los tweets del debate del balotaje fueron ataques\n", + "El 6 % del total de los tweets de las elecciones del balotaje fueron ataques\n" + ] + } + ], + "source": [ + "count_1er_debate = df[df[\"event\"] == \"1er debate\"].shape[0]\n", + "count_2do_debate = df[df[\"event\"] == \"2do debate\"].shape[0]\n", + "count_elecciones_gen = df[df[\"event\"] == \"elecciones generales\"].shape[0]\n", + "count_debate_balotaje = df[df[\"event\"] == \"debate balotaje\"].shape[0]\n", + "count_elecciones_balotaje = df[df[\"event\"] == \"elecciones balotaje\"].shape[0]\n", + "\n", + "\n", + "count_attacks_1er_debate = attacks[attacks[\"event\"] == \"1er debate\"].shape[0]\n", + "count_attacks_2do_debate = attacks[attacks[\"event\"] == \"2do debate\"].shape[0]\n", + "count_attacks_elecciones_gen = attacks[\n", + " attacks[\"event\"] == \"elecciones generales\"\n", + "].shape[0]\n", + "count_attacks_debate_balotaje = attacks[attacks[\"event\"] == \"debate balotaje\"].shape[0]\n", + "count_attacks_elecciones_balotaje = attacks[\n", + " attacks[\"event\"] == \"elecciones balotaje\"\n", + "].shape[0]\n", + "\n", + "print(\n", + " \"El\",\n", + " round((count_attacks_1er_debate / count_1er_debate) * 100),\n", + " \"% del total de los tweets del 1er debate fueron ataques\",\n", + ")\n", + "print(\n", + " \"El\",\n", + " round((count_attacks_2do_debate / count_2do_debate) * 100),\n", + " \"% del total de los tweets del 2do debate fueron ataques\",\n", + ")\n", + "print(\n", + " \"El\",\n", + " round((count_attacks_elecciones_gen / count_elecciones_gen) * 100),\n", + " \"% del total de los tweets de las elecciones generales fueron ataques\",\n", + ")\n", + "print(\n", + " \"El\",\n", + " round((count_attacks_debate_balotaje / count_debate_balotaje) * 100),\n", + " \"% del total de los tweets del debate del balotaje fueron ataques\",\n", + ")\n", + "print(\n", + " \"El\",\n", + " round((count_attacks_elecciones_balotaje / count_elecciones_balotaje) * 100),\n", + " \"% del total de los tweets de las elecciones del balotaje fueron ataques\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Frecuencia de los ataques en función del número de menciones" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "mj_proportion_mentions = (1 + 1.6 + 0.9 + 0.8 + 0.6 + 0.8) / 6\n", + "formatted_mj = \"{:.2f}\".format(mj_proportion_mentions)\n", + "\n", + "wj_proportion_mentions = (0.9 + 1.1 + 0.8 + 0.6 + 0.6) / 5\n", + "formatted_wj = \"{:.2f}\".format(wj_proportion_mentions)" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Por cada 10 menciones, los periodistas hombres recibieron 0.95 ataques\n", + "Por cada 10 menciones, las periodistas mujeres recibieron 0.80 ataques\n" + ] + } + ], + "source": [ + "print(\n", + " f\"Por cada 10 menciones, los periodistas hombres recibieron {formatted_mj} ataques\"\n", + ")\n", + "print(\n", + " f\"Por cada 10 menciones, las periodistas mujeres recibieron {formatted_wj} ataques\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Frecuencia de los ataques en función del número de seguidores" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "mj_proportion_followers = (1.77 + 0.38 + 0.34 + 0.08 + 0.38 + 0.15) / 6\n", + "formatted_mj = \"{:.2f}\".format(mj_proportion_followers)\n", + "\n", + "wj_proportion_followers = (0.44 + 1.37 + 0.67 + 0.79 + 0.21) / 5\n", + "formatted_wj = \"{:.2f}\".format(wj_proportion_followers)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Por cada 1K seguidores, los periodistas hombres recibieron 0.52 ataques\n", + "Por cada 1K seguidores, las periodistas mujeres recibieron 0.70 ataques\n" + ] + } + ], + "source": [ + "print(\n", + " f\"Por cada 1K seguidores, los periodistas hombres recibieron {formatted_mj} ataques\"\n", + ")\n", + "print(\n", + " f\"Por cada 1K seguidores, las periodistas mujeres recibieron {formatted_wj} ataques\"\n", + ")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -4499,7 +4656,7 @@ } }, "title": { - "text": "Publicaciones de periodistas durante el debate de balotaje" + "text": "Publicaciones de periodistas durante el debate del balotaje" }, "width": 600, "xaxis": { @@ -4520,7 +4677,7 @@ } }, "text/html": [ - "