diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml new file mode 100644 index 0000000..a7276e8 --- /dev/null +++ b/.github/workflows/pkgdown.yaml @@ -0,0 +1,48 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + release: + types: [published] + workflow_dispatch: + +name: pkgdown + +jobs: + pkgdown: + runs-on: ubuntu-latest + # Only restrict concurrency for non-PR jobs + concurrency: + group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }} + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::pkgdown, local::. + needs: website + + - name: Build site + run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) + shell: Rscript {0} + + - name: Deploy to GitHub pages πŸš€ + if: github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4.5.0 + with: + clean: false + branch: gh-pages + folder: docs diff --git a/_pkgdown.yml b/_pkgdown.yml index 47aac7f..71c56d7 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -11,7 +11,6 @@ authors: template: bootstrap: 5 - package: tidytemplate development: mode: auto diff --git a/docs/404.html b/docs/404.html index 549845a..92e7b92 100644 --- a/docs/404.html +++ b/docs/404.html @@ -8,9 +8,7 @@ Page not found (404) β€’ fido - - - + - Skip to content + Skip to contents -
-
- - + +
+ + + + + + diff --git a/docs/articles/index.html b/docs/articles/index.html index 17d6829..cb71c04 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -1,12 +1,12 @@ -Articles β€’ fidoArticles β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/articles/introduction-to-fido.html b/docs/articles/introduction-to-fido.html index f9e18fc..f8649b0 100644 --- a/docs/articles/introduction-to-fido.html +++ b/docs/articles/introduction-to-fido.html @@ -9,9 +9,7 @@ Introduction to fido::Pibble β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -
@@ -202,20 +200,20 @@

Example analysis of microbiome data data("RISK_CCFA") # drop low abundant taxa and samples -dat <- RISK_CCFA %>% +dat <- RISK_CCFA %>% subset_samples(disease_stat!="missing", - immunosup!="missing") %>% - subset_samples(diagnosis %in% c("no", "CD")) %>% - subset_samples(steroids=="false") %>% - subset_samples(antibiotics=="false") %>% - subset_samples(biologics=="false") %>% - subset_samples(biopsy_location=="Terminal ileum") %>% - tax_glom("Family") %>% - prune_samples(sample_sums(.) >= 5000,.) %>% + immunosup!="missing") %>% + subset_samples(diagnosis %in% c("no", "CD")) %>% + subset_samples(steroids=="false") %>% + subset_samples(antibiotics=="false") %>% + subset_samples(biologics=="false") %>% + subset_samples(biopsy_location=="Terminal ileum") %>% + tax_glom("Family") %>% + prune_samples(sample_sums(.) >= 5000,.) %>% filter_taxa(function(x) sum(x > 3) > 0.10*length(x), TRUE)

Create Design Matrix and OTU Table

-sample_dat <- as.data.frame(as(sample_data(dat),"matrix")) %>% 
+sample_dat <- as.data.frame(as(sample_data(dat),"matrix")) %>% 
   mutate(age = as.numeric(as.character(age)),
          diagnosis = relevel(factor(diagnosis, ordered = FALSE), ref="no"), 
          disease_stat = relevel(factor(disease_stat, ordered = FALSE), ref="non-inflamed"))
@@ -351,7 +349,7 @@ 

Example analysis of microbiome data p <- plot(priors, par="Lambda") #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. -p + ggplot2::xlim(c(-10, 10))

+p + ggplot2::xlim(c(-10, 10))

This looks fairly reasonable to me. So I am going to go ahead and fit the model with data. fido provides a helper method called @@ -384,7 +382,7 @@

Example analysis of microbiome data predictive distribution if Y is null in the object as in our <code>priors</code> object</p>">3.

-ppc(posterior) + ggplot2::coord_cartesian(ylim=c(0, 30000))
+ppc(posterior) + ggplot2::coord_cartesian(ylim=c(0, 30000))

There are a few things to note about this plot. First, when zoomed out like this it looks it is hard to make much of it. This is a fairly @@ -410,7 +408,7 @@

Example analysis of microbiome data to the ppc function. Note: these two posterior predictive checks have different meanings, one is not better than the other.

-ppc(posterior, from_scratch=TRUE) +ggplot2::coord_cartesian(ylim=c(0, 30000))
+ppc(posterior, from_scratch=TRUE) +ggplot2::coord_cartesian(ylim=c(0, 30000))

 ppc_summary(posterior, from_scratch=TRUE)
@@ -565,9 +563,7 @@ 

References - -

- + + + + + + + + diff --git a/docs/articles/mitigating-pcrbias.html b/docs/articles/mitigating-pcrbias.html index 09d2a3b..8237750 100644 --- a/docs/articles/mitigating-pcrbias.html +++ b/docs/articles/mitigating-pcrbias.html @@ -9,9 +9,7 @@ Example of using Fido for measuring and mitigating PCR Bias β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -
@@ -219,8 +217,8 @@

An Example# Also to make the plot fit nicely, I just flip the orientation of the plot plot(fit, par="Lambda", focus.cov=focus.covariate, focus.coord=focus.coord) + - theme(strip.text.y=element_text(angle=0, hjust=1)) + - facet_grid(.data$covariate~.) + theme(strip.text.y=element_text(angle=0, hjust=1)) + + facet_grid(.data$covariate~.) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale.

@@ -242,16 +240,16 @@

An Example # First transform the data into CLR coordinates (requires pseudo-count to deal with # zeros). Then will convert to tidy format for ggplot -tidy_calibration <- clr_array(Y+0.5, 1) %>% # transform to CLR - as.data.frame() %>% - select(starts_with("cycle")) %>% # select only samples from the calibration - t() %>% +tidy_calibration <- clr_array(Y+0.5, 1) %>% # transform to CLR + as.data.frame() %>% + select(starts_with("cycle")) %>% # select only samples from the calibration + t() %>% as.data.frame() tidy_calibration$sample_name <- rownames(tidy_calibration) -tidy_calibration <- tidy_calibration %>% - gather(coord, val, -sample_name) %>% - mutate(coord = as.numeric(substr(coord, 2, 4))) %>% - left_join(metadata, by="sample_name") %>% +tidy_calibration <- tidy_calibration %>% + gather(coord, val, -sample_name) %>% + mutate(coord = as.numeric(substr(coord, 2, 4))) %>% + left_join(metadata, by="sample_name") %>% mutate(coord = names_coords(fit)[coord]) @@ -280,19 +278,19 @@

An Example# for the plot # Now predict the fitted regression line for cycle_num using X.tmp -predicted <- predict(fit, newdata=X.tmp, summary=TRUE) %>% +predicted <- predict(fit, newdata=X.tmp, summary=TRUE) %>% mutate(cycle_num = c(0, 35)[sample]) # now plot -predicted %>% - ggplot(aes(x=cycle_num)) + - geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill="darkgrey") + - geom_line(aes(y=mean)) + - geom_point(data=tidy_calibration, aes(y=val)) + - facet_grid(coord~.) + - theme_bw() + - theme(strip.text.y=element_text(angle=0)) + - ylab("CLR Coordinates") +predicted %>% + ggplot(aes(x=cycle_num)) + + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill="darkgrey") + + geom_line(aes(y=mean)) + + geom_point(data=tidy_calibration, aes(y=val)) + + facet_grid(coord~.) + + theme_bw() + + theme(strip.text.y=element_text(angle=0)) + + ylab("CLR Coordinates")

There are two things I look for in these plots. First, the data should look linear in this space. If the data does not look linear then @@ -343,9 +341,7 @@

Using Ma - - - + + + + + + + + diff --git a/docs/articles/non-linear-models.html b/docs/articles/non-linear-models.html index e0f26d8..89dc43b 100644 --- a/docs/articles/non-linear-models.html +++ b/docs/articles/non-linear-models.html @@ -9,9 +9,7 @@ Non-linear models with fido::basset β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -
@@ -220,29 +218,29 @@

Non-linear time-series modeling
 family_names <- as(mallard_family$tax_table$Family, "vector")
-Y_clr_tidy <- clr_array(Y+0.65, parts = 1) %>%
-  gather_array(mean, coord, sample) %>%
+Y_clr_tidy <- clr_array(Y+0.65, parts = 1) %>%
+  gather_array(mean, coord, sample) %>%
   mutate(time = X[1,sample],
          coord = paste0("CLR(", family_names[coord],")"))
 
-predicted_tidy <- gather_array(predicted, val, coord, sample, iter) %>%
-  mutate(time = X_predict[1,sample]) %>%
-  filter(!is.na(val)) %>%
-  group_by(time, coord) %>%
-  summarise_posterior(val, na.rm=TRUE) %>%
-  ungroup() %>%
+predicted_tidy <- gather_array(predicted, val, coord, sample, iter) %>%
+  mutate(time = X_predict[1,sample]) %>%
+  filter(!is.na(val)) %>%
+  group_by(time, coord) %>%
+  summarise_posterior(val, na.rm=TRUE) %>%
+  ungroup() %>%
   mutate(coord = paste0("CLR(", family_names[coord],")"))
 
-ggplot(predicted_tidy, aes(x = time, y=mean)) +
-  geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill="darkgrey", alpha=0.5) +
-  geom_ribbon(aes(ymin=p25, ymax=p75), fill="darkgrey", alpha=0.9)+
-  geom_line(color="blue") +
-  geom_point(data = Y_clr_tidy, alpha=0.5) +
-  facet_wrap(~coord, scales="free_y") +
-  theme_minimal()+
-  theme(axis.title.y = element_blank(),
-        axis.title.x = element_blank(),
-        axis.text.x = element_text(angle=45))
+ggplot(predicted_tidy, aes(x = time, y=mean)) + + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill="darkgrey", alpha=0.5) + + geom_ribbon(aes(ymin=p25, ymax=p75), fill="darkgrey", alpha=0.9)+ + geom_line(color="blue") + + geom_point(data = Y_clr_tidy, alpha=0.5) + + facet_wrap(~coord, scales="free_y") + + theme_minimal()+ + theme(axis.title.y = element_blank(), + axis.title.x = element_blank(), + axis.text.x = element_text(angle=45))

@@ -264,9 +262,7 @@

References - -

- + + + + + + + + diff --git a/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-3-1.png b/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-3-1.png index 32d6da0..4f45cea 100644 Binary files a/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-3-1.png and b/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-3-1.png differ diff --git a/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-5-1.png b/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-5-1.png index 30832f2..ab9cef2 100644 Binary files a/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-5-1.png and b/docs/articles/non-linear-models_files/figure-html/unnamed-chunk-5-1.png differ diff --git a/docs/articles/orthus.html b/docs/articles/orthus.html index 9dd6ed4..7aec67a 100644 --- a/docs/articles/orthus.html +++ b/docs/articles/orthus.html @@ -9,9 +9,7 @@ Joint Modeling (e.g., Multiomics) with fido::Orthus β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -
@@ -264,26 +262,26 @@

Investigate Model Results# weed down the list of things we have to look at by first pass # selecting only those taxa that have a large posterior mean for the covariance xcor.mean <- apply(xcor, c(1,2), mean) -to.analyze <- fido::gather_array(xcor.mean, cov, taxa, metabolite) %>% - arrange(-abs(cov)) %>% - .[1:1000,] %>% +to.analyze <- fido::gather_array(xcor.mean, cov, taxa, metabolite) %>% + arrange(-abs(cov)) %>% + .[1:1000,] %>% mutate(tm =paste0(taxa, "_", metabolite)) # Subset Covariance to those we are interested in and calculate posterior # confidence intervals. -xcor.summary <- fido::gather_array(xcor, cov, taxa, metabolite, iter) %>% - mutate(tm=paste0(taxa, "_", metabolite)) %>% - filter(tm %in% to.analyze$tm) %>% - mutate(taxa = rownames(Y)[taxa], metabolite = rownames(Z)[metabolite]) %>% - group_by(taxa, metabolite) %>% - fido:::summarise_posterior(cov) %>% - arrange(mean) %>% +xcor.summary <- fido::gather_array(xcor, cov, taxa, metabolite, iter) %>% + mutate(tm=paste0(taxa, "_", metabolite)) %>% + filter(tm %in% to.analyze$tm) %>% + mutate(taxa = rownames(Y)[taxa], metabolite = rownames(Z)[metabolite]) %>% + group_by(taxa, metabolite) %>% + fido:::summarise_posterior(cov) %>% + arrange(mean) %>% filter(taxa != 'other') # we don't care about these # Select those covariances where the model has high certainty (95%) that # the true covariance is not zero. -xcor.summary %>% - filter(sign(p2.5)==sign(p97.5)) %>% +xcor.summary %>% + filter(sign(p2.5)==sign(p97.5)) %>% filter(abs(mean) > 2) #> # A tibble: 218 x 8 #> # Groups: taxa [17] @@ -357,9 +355,7 @@

References - -

- + + + + + + + + diff --git a/docs/articles/picking_priors.html b/docs/articles/picking_priors.html index 79228ed..4e9b05b 100644 --- a/docs/articles/picking_priors.html +++ b/docs/articles/picking_priors.html @@ -9,9 +9,7 @@ Picking Priors β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -
@@ -453,9 +451,7 @@

How -

- - + + + + + + + + diff --git a/docs/authors.html b/docs/authors.html index e457dea..6f02392 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -1,12 +1,12 @@ -Authors and Citation β€’ fidoAuthors and Citation β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/deps/bootstrap-5.3.1/bootstrap.min.css b/docs/deps/bootstrap-5.3.1/bootstrap.min.css index b49705b..b174f93 100644 --- a/docs/deps/bootstrap-5.3.1/bootstrap.min.css +++ b/docs/deps/bootstrap-5.3.1/bootstrap.min.css @@ -2,4 +2,4 @@ * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root,[data-bs-theme="light"]{--bs-blue: #007bc2;--bs-indigo: #4b00c1;--bs-purple: #74149c;--bs-pink: #bf007f;--bs-red: #c10000;--bs-orange: #f45100;--bs-yellow: #f9b928;--bs-green: #00891a;--bs-teal: #00bf7f;--bs-cyan: #03c7e8;--bs-black: #172431;--bs-white: #FCFCFC;--bs-gray: #737A82;--bs-gray-dark: #454F5A;--bs-gray-100: #E5E6E8;--bs-gray-200: #CED1D3;--bs-gray-300: #B7BBBF;--bs-gray-400: #A0A6AB;--bs-gray-500: #8A9096;--bs-gray-600: #737A82;--bs-gray-700: #5C656E;--bs-gray-800: #454F5A;--bs-gray-900: #2E3A45;--bs-default: #B7BBBF;--bs-primary: #447099;--bs-secondary: #404040;--bs-success: #00891a;--bs-info: #03c7e8;--bs-warning: #f9b928;--bs-danger: #c10000;--bs-light: #E5E6E8;--bs-dark: #202020;--bs-default-rgb: 183,187,191;--bs-primary-rgb: 68,112,153;--bs-secondary-rgb: 64,64,64;--bs-success-rgb: 0,137,26;--bs-info-rgb: 3,199,232;--bs-warning-rgb: 249,185,40;--bs-danger-rgb: 193,0,0;--bs-light-rgb: 229,230,232;--bs-dark-rgb: 32,32,32;--bs-primary-text-emphasis: #1b2d3d;--bs-secondary-text-emphasis: #1a1a1a;--bs-success-text-emphasis: #00370a;--bs-info-text-emphasis: #01505d;--bs-warning-text-emphasis: #644a10;--bs-danger-text-emphasis: #4d0000;--bs-light-text-emphasis: #5C656E;--bs-dark-text-emphasis: #5C656E;--bs-primary-bg-subtle: #dae2eb;--bs-secondary-bg-subtle: #d9d9d9;--bs-success-bg-subtle: #cce7d1;--bs-info-bg-subtle: #cdf4fa;--bs-warning-bg-subtle: #fef1d4;--bs-danger-bg-subtle: #f3cccc;--bs-light-bg-subtle: #f1f1f2;--bs-dark-bg-subtle: #A0A6AB;--bs-primary-border-subtle: #b4c6d6;--bs-secondary-border-subtle: #b3b3b3;--bs-success-border-subtle: #99d0a3;--bs-info-border-subtle: #9ae9f6;--bs-warning-border-subtle: #fde3a9;--bs-danger-border-subtle: #e69999;--bs-light-border-subtle: #CED1D3;--bs-dark-border-subtle: #8A9096;--bs-white-rgb: 252,252,252;--bs-black-rgb: 23,36,49;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: "Source Code Pro";--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: "Source Sans Pro";--bs-body-font-size:1.2rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #2E3A45;--bs-body-color-rgb: 46,58,69;--bs-body-bg: #FCFCFC;--bs-body-bg-rgb: 252,252,252;--bs-emphasis-color: #172431;--bs-emphasis-color-rgb: 23,36,49;--bs-secondary-color: rgba(46,58,69,0.75);--bs-secondary-color-rgb: 46,58,69;--bs-secondary-bg: #CED1D3;--bs-secondary-bg-rgb: 206,209,211;--bs-tertiary-color: rgba(46,58,69,0.5);--bs-tertiary-color-rgb: 46,58,69;--bs-tertiary-bg: #E5E6E8;--bs-tertiary-bg-rgb: 229,230,232;--bs-heading-color: inherit;--bs-link-color: #447099;--bs-link-color-rgb: 68,112,153;--bs-link-decoration: underline;--bs-link-hover-color: #365a7a;--bs-link-hover-color-rgb: 54,90,122;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-highlight-bg: #fef1d4;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #B7BBBF;--bs-border-color-translucent: rgba(40,70,94,0.1);--bs-border-radius: 0;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-box-shadow-sm: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-box-shadow-lg: 0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17);--bs-box-shadow-inset: inset 0 1px 2px rgba(23,36,49,0.075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(68,112,153,0.25);--bs-form-valid-color: #00891a;--bs-form-valid-border-color: #00891a;--bs-form-invalid-color: #c10000;--bs-form-invalid-border-color: #c10000}[data-bs-theme="dark"]{color-scheme:dark;--bs-body-color: #B7BBBF;--bs-body-color-rgb: 183,187,191;--bs-body-bg: #2E3A45;--bs-body-bg-rgb: 46,58,69;--bs-emphasis-color: #FCFCFC;--bs-emphasis-color-rgb: 252,252,252;--bs-secondary-color: rgba(183,187,191,0.75);--bs-secondary-color-rgb: 183,187,191;--bs-secondary-bg: #454F5A;--bs-secondary-bg-rgb: 69,79,90;--bs-tertiary-color: rgba(183,187,191,0.5);--bs-tertiary-color-rgb: 183,187,191;--bs-tertiary-bg: #3a4550;--bs-tertiary-bg-rgb: 58,69,80;--bs-primary-text-emphasis: #8fa9c2;--bs-secondary-text-emphasis: #8c8c8c;--bs-success-text-emphasis: #66b876;--bs-info-text-emphasis: #68ddf1;--bs-warning-text-emphasis: #fbd57e;--bs-danger-text-emphasis: #da6666;--bs-light-text-emphasis: #E5E6E8;--bs-dark-text-emphasis: #B7BBBF;--bs-primary-bg-subtle: #0e161f;--bs-secondary-bg-subtle: #0d0d0d;--bs-success-bg-subtle: #001b05;--bs-info-bg-subtle: #01282e;--bs-warning-bg-subtle: #322508;--bs-danger-bg-subtle: #270000;--bs-light-bg-subtle: #454F5A;--bs-dark-bg-subtle: #2e3a46;--bs-primary-border-subtle: #29435c;--bs-secondary-border-subtle: #262626;--bs-success-border-subtle: #005210;--bs-info-border-subtle: #02778b;--bs-warning-border-subtle: #956f18;--bs-danger-border-subtle: #740000;--bs-light-border-subtle: #5C656E;--bs-dark-border-subtle: #454F5A;--bs-heading-color: inherit;--bs-link-color: #8fa9c2;--bs-link-hover-color: #a5bace;--bs-link-color-rgb: 143,169,194;--bs-link-hover-color-rgb: 165,186,206;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-border-color: #495057;--bs-border-color-translucent: rgba(255,255,255,0.1);--bs-form-valid-color: #66b876;--bs-form-valid-border-color: #66b876;--bs-form-invalid-color: #da6666;--bs-form-invalid-border-color: #da6666}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}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(23,36,49,0)}hr{margin:2rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.335rem + 1.02vw)}@media (min-width: 1200px){h1,.h1{font-size:2.1rem}}h2,.h2{font-size:calc(1.365rem + 1.38vw)}@media (min-width: 1200px){h2,.h2{font-size:2.4rem}}h3,.h3{font-size:calc(1.335rem + 1.02vw)}@media (min-width: 1200px){h3,.h3{font-size:2.1rem}}h4,.h4{font-size:calc(1.305rem + .66vw)}@media (min-width: 1200px){h4,.h4{font-size:1.8rem}}h5,.h5{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h5,.h5{font-size:1.5rem}}h6,.h6{font-size:1.2rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.75rem 1.5rem;border-left:.25rem solid #CED1D3}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;color:RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);padding:.5rem;border:1px solid var(--bs-border-color, #B7BBBF);border-radius:0}pre code{background-color:transparent;font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);border-radius:0;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:calc(1.275rem + .3vw);font-weight:300}@media (min-width: 1200px){.lead{font-size:1.5rem}}.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:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){.blockquote{font-size:1.5rem}}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#737A82}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 3rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 3rem;--bs-gutter-y: 0;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;-webkit-flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.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, 3rem)}.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}}.col{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(68,112,153,0.06);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(23,36,49,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(68,112,153,0.1);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #172431;--bs-table-bg: #dae2eb;--bs-table-border-color: #c7cfd8;--bs-table-striped-bg: #d0d9e2;--bs-table-striped-color: #172431;--bs-table-active-bg: #c7cfd8;--bs-table-active-color: #172431;--bs-table-hover-bg: #cbd4dd;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #172431;--bs-table-bg: #d9d9d9;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #cfd0d1;--bs-table-striped-color: #172431;--bs-table-active-bg: #c6c7c8;--bs-table-active-color: #172431;--bs-table-hover-bg: #cacbcc;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #172431;--bs-table-bg: #cce7d1;--bs-table-border-color: #bad4c1;--bs-table-striped-bg: #c3ddc9;--bs-table-striped-color: #172431;--bs-table-active-bg: #bad4c1;--bs-table-active-color: #172431;--bs-table-hover-bg: #bed8c5;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #172431;--bs-table-bg: #cdf4fa;--bs-table-border-color: #bbdfe6;--bs-table-striped-bg: #c4eaf0;--bs-table-striped-color: #172431;--bs-table-active-bg: #bbdfe6;--bs-table-active-color: #172431;--bs-table-hover-bg: #bfe4eb;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #172431;--bs-table-bg: #fef1d4;--bs-table-border-color: #e7ddc4;--bs-table-striped-bg: #f2e7cc;--bs-table-striped-color: #172431;--bs-table-active-bg: #e7ddc4;--bs-table-active-color: #172431;--bs-table-hover-bg: #ede2c8;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #172431;--bs-table-bg: #f3cccc;--bs-table-border-color: #ddbbbd;--bs-table-striped-bg: #e8c4c4;--bs-table-striped-color: #172431;--bs-table-active-bg: #ddbbbd;--bs-table-active-color: #172431;--bs-table-hover-bg: #e3bfc0;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #172431;--bs-table-bg: #E5E6E8;--bs-table-border-color: #d0d3d6;--bs-table-striped-bg: #dbdcdf;--bs-table-striped-color: #172431;--bs-table-active-bg: #d0d3d6;--bs-table-active-color: #172431;--bs-table-hover-bg: #d6d7da;--bs-table-hover-color: #172431;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #FCFCFC;--bs-table-bg: #202020;--bs-table-border-color: #363636;--bs-table-striped-bg: #2b2b2b;--bs-table-striped-color: #FCFCFC;--bs-table-active-bg: #363636;--bs-table-active-color: #FCFCFC;--bs-table-hover-bg: #313131;--bs-table-hover-color: #FCFCFC;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){.col-form-label-lg{font-size:1.5rem}}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:1.05rem}.form-text{margin-top:.25rem;font-size:.875em;color:#737A82}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid #8A9096;border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.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:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#a2b8cc;outline:0;box-shadow:0 0 0 .25rem rgba(68,112,153,0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:1.05rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:calc(1.275rem + .3vw);border-radius:var(--bs-border-radius-lg)}@media (min-width: 1200px){.form-control-lg{font-size:1.5rem}}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23454F5A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid #8A9096;border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#a2b8cc;outline:0;box-shadow:0 0 0 .25rem rgba(68,112,153,0.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:1.05rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:calc(1.275rem + .3vw);border-radius:var(--bs-border-radius-lg)}@media (min-width: 1200px){.form-select-lg{font-size:1.5rem}}[data-bs-theme="dark"] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23B7BBBF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.8rem;padding-left:0;margin-bottom:.25rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: var(--bs-body-bg);width:1.2em;height:1.2em;margin-top:.15em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);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:2px}.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:#a2b8cc;outline:0;box-shadow:0 0 0 .25rem rgba(68,112,153,0.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:#447099;border-color:#447099}.form-check-input:checked[type="checkbox"],.shiny-input-container .checkbox input:checked[type="checkbox"],.shiny-input-container .checkbox-inline input:checked[type="checkbox"],.shiny-input-container .radio input:checked[type="checkbox"],.shiny-input-container .radio-inline input:checked[type="checkbox"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FCFCFC' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type="radio"],.shiny-input-container .checkbox input:checked[type="radio"],.shiny-input-container .checkbox-inline input:checked[type="radio"],.shiny-input-container .radio input:checked[type="radio"],.shiny-input-container .radio-inline input:checked[type="radio"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23FCFCFC'/%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:#447099;border-color:#447099;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23FCFCFC' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%2823,36,49,0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23a2b8cc'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23FCFCFC'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28252,252,252,0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #FCFCFC,0 0 0 .25rem rgba(68,112,153,0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #FCFCFC,0 0 0 .25rem rgba(68,112,153,0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#447099;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c7d4e0}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#447099;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c7d4e0}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#737A82}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid #8A9096;border-radius:var(--bs-border-radius)}.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:calc(1.275rem + .3vw);border-radius:var(--bs-border-radius-lg)}@media (min-width: 1200px){.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{font-size:1.5rem}}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:1.05rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n + 3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n + 4),.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:1.05rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300891a' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300891a' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:1.05rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23c10000'%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='%23c10000' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23c10000'%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='%23c10000' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 2em;--bs-btn-padding-y: .75em;--bs-btn-font-family: ;--bs-btn-font-size:.9375rem;--bs-btn-font-weight: 500;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: 3px;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(252,252,252,0.15),0 1px 1px rgba(23,36,49,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #172431;--bs-btn-bg: #B7BBBF;--bs-btn-border-color: #B7BBBF;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #c2c5c9;--bs-btn-hover-border-color: #bec2c5;--bs-btn-focus-shadow-rgb: 159,164,170;--bs-btn-active-color: #172431;--bs-btn-active-bg: #c5c9cc;--bs-btn-active-border-color: #bec2c5;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #172431;--bs-btn-disabled-bg: #B7BBBF;--bs-btn-disabled-border-color: #B7BBBF}.btn-primary{--bs-btn-color: #FCFCFC;--bs-btn-bg: #447099;--bs-btn-border-color: #447099;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #3a5f82;--bs-btn-hover-border-color: #365a7a;--bs-btn-focus-shadow-rgb: 96,133,168;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #365a7a;--bs-btn-active-border-color: #335473;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #FCFCFC;--bs-btn-disabled-bg: #447099;--bs-btn-disabled-border-color: #447099}.btn-secondary{--bs-btn-color: #FCFCFC;--bs-btn-bg: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #363636;--bs-btn-hover-border-color: #333;--bs-btn-focus-shadow-rgb: 92,92,92;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #333;--bs-btn-active-border-color: #303030;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #FCFCFC;--bs-btn-disabled-bg: #404040;--bs-btn-disabled-border-color: #404040}.btn-success{--bs-btn-color: #FCFCFC;--bs-btn-bg: #00891a;--bs-btn-border-color: #00891a;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #007416;--bs-btn-hover-border-color: #006e15;--bs-btn-focus-shadow-rgb: 38,154,60;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #006e15;--bs-btn-active-border-color: #006714;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #FCFCFC;--bs-btn-disabled-bg: #00891a;--bs-btn-disabled-border-color: #00891a}.btn-info{--bs-btn-color: #172431;--bs-btn-bg: #03c7e8;--bs-btn-border-color: #03c7e8;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #29cfeb;--bs-btn-hover-border-color: #1ccdea;--bs-btn-focus-shadow-rgb: 6,175,205;--bs-btn-active-color: #172431;--bs-btn-active-bg: #35d2ed;--bs-btn-active-border-color: #1ccdea;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #172431;--bs-btn-disabled-bg: #03c7e8;--bs-btn-disabled-border-color: #03c7e8}.btn-warning{--bs-btn-color: #172431;--bs-btn-bg: #f9b928;--bs-btn-border-color: #f9b928;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #fac448;--bs-btn-hover-border-color: #fac03e;--bs-btn-focus-shadow-rgb: 215,163,41;--bs-btn-active-color: #172431;--bs-btn-active-bg: #fac753;--bs-btn-active-border-color: #fac03e;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #172431;--bs-btn-disabled-bg: #f9b928;--bs-btn-disabled-border-color: #f9b928}.btn-danger{--bs-btn-color: #FCFCFC;--bs-btn-bg: #c10000;--bs-btn-border-color: #c10000;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #a40000;--bs-btn-hover-border-color: #9a0000;--bs-btn-focus-shadow-rgb: 202,38,38;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #9a0000;--bs-btn-active-border-color: #910000;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #FCFCFC;--bs-btn-disabled-bg: #c10000;--bs-btn-disabled-border-color: #c10000}.btn-light{--bs-btn-color: #172431;--bs-btn-bg: #E5E6E8;--bs-btn-border-color: #E5E6E8;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #c3c4c5;--bs-btn-hover-border-color: #b7b8ba;--bs-btn-focus-shadow-rgb: 198,201,205;--bs-btn-active-color: #172431;--bs-btn-active-bg: #b7b8ba;--bs-btn-active-border-color: #acadae;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #172431;--bs-btn-disabled-bg: #E5E6E8;--bs-btn-disabled-border-color: #E5E6E8}.btn-dark{--bs-btn-color: #FCFCFC;--bs-btn-bg: #202020;--bs-btn-border-color: #202020;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #414141;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 65,65,65;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #4d4d4d;--bs-btn-active-border-color: #363636;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #FCFCFC;--bs-btn-disabled-bg: #202020;--bs-btn-disabled-border-color: #202020}.btn-outline-default{--bs-btn-color: #B7BBBF;--bs-btn-border-color: #B7BBBF;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #B7BBBF;--bs-btn-hover-border-color: #B7BBBF;--bs-btn-focus-shadow-rgb: 183,187,191;--bs-btn-active-color: #172431;--bs-btn-active-bg: #B7BBBF;--bs-btn-active-border-color: #B7BBBF;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #B7BBBF;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #B7BBBF;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #447099;--bs-btn-border-color: #447099;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #447099;--bs-btn-hover-border-color: #447099;--bs-btn-focus-shadow-rgb: 68,112,153;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #447099;--bs-btn-active-border-color: #447099;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #447099;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #447099;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #404040;--bs-btn-hover-border-color: #404040;--bs-btn-focus-shadow-rgb: 64,64,64;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #404040;--bs-btn-active-border-color: #404040;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #404040;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #404040;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #00891a;--bs-btn-border-color: #00891a;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #00891a;--bs-btn-hover-border-color: #00891a;--bs-btn-focus-shadow-rgb: 0,137,26;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #00891a;--bs-btn-active-border-color: #00891a;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #00891a;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #00891a;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #03c7e8;--bs-btn-border-color: #03c7e8;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #03c7e8;--bs-btn-hover-border-color: #03c7e8;--bs-btn-focus-shadow-rgb: 3,199,232;--bs-btn-active-color: #172431;--bs-btn-active-bg: #03c7e8;--bs-btn-active-border-color: #03c7e8;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #03c7e8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #03c7e8;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f9b928;--bs-btn-border-color: #f9b928;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #f9b928;--bs-btn-hover-border-color: #f9b928;--bs-btn-focus-shadow-rgb: 249,185,40;--bs-btn-active-color: #172431;--bs-btn-active-bg: #f9b928;--bs-btn-active-border-color: #f9b928;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #f9b928;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f9b928;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #c10000;--bs-btn-border-color: #c10000;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #c10000;--bs-btn-hover-border-color: #c10000;--bs-btn-focus-shadow-rgb: 193,0,0;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #c10000;--bs-btn-active-border-color: #c10000;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #c10000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c10000;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #E5E6E8;--bs-btn-border-color: #E5E6E8;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #E5E6E8;--bs-btn-hover-border-color: #E5E6E8;--bs-btn-focus-shadow-rgb: 229,230,232;--bs-btn-active-color: #172431;--bs-btn-active-bg: #E5E6E8;--bs-btn-active-border-color: #E5E6E8;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #E5E6E8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #E5E6E8;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #202020;--bs-btn-border-color: #202020;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #202020;--bs-btn-hover-border-color: #202020;--bs-btn-focus-shadow-rgb: 32,32,32;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #202020;--bs-btn-active-border-color: #202020;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #202020;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #202020;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #737A82;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 96,133,168;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:calc(1.275rem + .3vw);--bs-btn-border-radius: var(--bs-border-radius-lg)}@media (min-width: 1200px){.btn-lg,.btn-group-lg>.btn{--bs-btn-font-size:1.5rem}}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:1.05rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity 0.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 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size:1.2rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #FCFCFC;--bs-dropdown-link-active-bg: #447099;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #737A82;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:1.05rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #B7BBBF;--bs-dropdown-bg: #454F5A;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #B7BBBF;--bs-dropdown-link-hover-color: #FCFCFC;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(252,252,252,0.15);--bs-dropdown-link-active-color: #FCFCFC;--bs-dropdown-link-active-bg: #447099;--bs-dropdown-link-disabled-color: #8A9096;--bs-dropdown-header-color: #8A9096}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:3px}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n + 3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.5em;padding-left:1.5em}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(68,112,153,0.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #FCFCFC;--bs-nav-pills-link-active-bg: #447099}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: .66rem;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .275rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.5rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.5rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2846,58,69,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: 3px;--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme="dark"]{--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.55);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.75);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.25);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28252,252,252,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme="dark"] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28252,252,252,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: 8px;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(8px - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 1.5rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232E3A45'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231b2d3d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #a2b8cc;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(68,112,153,0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: ;--bs-accordion-active-bg: }.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1.2rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme="dark"] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%238fa9c2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%238fa9c2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1.2rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(68,112,153,0.25);--bs-pagination-active-color: #FCFCFC;--bs-pagination-active-bg: #447099;--bs-pagination-active-border-color: #447099;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size:calc(1.275rem + .3vw);--bs-pagination-border-radius: var(--bs-border-radius-lg)}@media (min-width: 1200px){.pagination-lg{--bs-pagination-font-size:1.5rem}}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size:1.05rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size:.75em;--bs-badge-font-weight: 700;--bs-badge-color: #FCFCFC;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:.9rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #FCFCFC;--bs-progress-bar-bg: #447099;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(252,252,252,0.15) 25%, transparent 25%, transparent 50%, rgba(252,252,252,0.15) 50%, rgba(252,252,252,0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #FCFCFC;--bs-list-group-active-bg: #447099;--bs-list-group-active-border-color: #447099;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #172431;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23172431'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(68,112,153,0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:0;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme="dark"] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 3rem;--bs-toast-max-width: 350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1.5rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: none;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: none;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #464646;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 10%;--bs-modal-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:1.05rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:"Source Sans Pro";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:1.05rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size:1.2rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:"Source Sans Pro";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#FCFCFC;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.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:#FCFCFC;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='%23FCFCFC'%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='%23FCFCFC'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#FCFCFC;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.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:#FCFCFC;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:#172431}.carousel-dark .carousel-caption{color:#172431}[data-bs-theme="dark"] .carousel .carousel-control-prev-icon,[data-bs-theme="dark"] .carousel .carousel-control-next-icon,[data-bs-theme="dark"].carousel .carousel-control-prev-icon,[data-bs-theme="dark"].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target],[data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target]{background-color:#172431}[data-bs-theme="dark"] .carousel .carousel-caption,[data-bs-theme="dark"].carousel .carousel-caption{color:#172431}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#464646}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #172431 55%, rgba(0,0,0,0.8) 75%, #172431 95%);-webkit-mask-image:linear-gradient(130deg, #172431 55%, rgba(0,0,0,0.8) 75%, #172431 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#172431 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#FCFCFC !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#FCFCFC !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#FCFCFC !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#172431 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#172431 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#FCFCFC !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#172431 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#FCFCFC !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(197,201,204, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(197,201,204, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(54,90,122, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(54,90,122, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(51,51,51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(51,51,51, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(0,110,21, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0,110,21, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(53,210,237, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(53,210,237, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(250,199,83, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(250,199,83, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(154,0,0, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154,0,0, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(234,235,237, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(234,235,237, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26,26,26, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26,26,26, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08) !important}.shadow-sm{box-shadow:0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16) !important}.shadow-lg{box-shadow:0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.335rem + 1.02vw) !important}.fs-2{font-size:calc(1.365rem + 1.38vw) !important}.fs-3{font-size:calc(1.335rem + 1.02vw) !important}.fs-4{font-size:calc(1.305rem + .66vw) !important}.fs-5{font-size:calc(1.275rem + .3vw) !important}.fs-6{font-size:1.2rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(23,36,49,0.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(252,252,252,0.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: .1}.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25{--bs-link-opacity: .25}.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50{--bs-link-opacity: .5}.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75{--bs-link-opacity: .75}.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: .1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25{--bs-link-underline-opacity: .25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50{--bs-link-underline-opacity: .5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75{--bs-link-underline-opacity: .75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#172431}.bg-primary{color:#FCFCFC}.bg-secondary{color:#FCFCFC}.bg-success{color:#FCFCFC}.bg-info{color:#172431}.bg-warning{color:#172431}.bg-danger{color:#FCFCFC}.bg-light{color:#172431}.bg-dark{color:#FCFCFC}@media (min-width: 1200px){.fs-1{font-size:2.1rem !important}.fs-2{font-size:2.4rem !important}.fs-3{font-size:2.1rem !important}.fs-4{font-size:1.8rem !important}.fs-5{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.table th[align=left]{text-align:left}.table th[align=right]{text-align:right}.table th[align=center]{text-align:center}:root{--bslib-spacer: 1.5rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre,.bslib-gap-spacing>.shiny-html-output>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-html-output>.form-group,.bslib-gap-spacing>.shiny-html-output>p,.bslib-gap-spacing>.shiny-html-output>pre,.bslib-gap-spacing>.shiny-panel-conditional>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-panel-conditional>.form-group,.bslib-gap-spacing>.shiny-panel-conditional>p,.bslib-gap-spacing>.shiny-panel-conditional>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #007bc2;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #007bc2;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #4b00c1;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #4b00c1;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #74149c;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #74149c;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #bf007f;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #bf007f;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #c10000;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #c10000;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #f45100;--bslib-color-fg: #172431;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #f45100;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f9b928;--bslib-color-fg: #172431;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f9b928;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00891a;--bslib-color-fg: #FCFCFC;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00891a;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #00bf7f;--bslib-color-fg: #172431;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #00bf7f;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #03c7e8;--bslib-color-fg: #172431;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #03c7e8;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #B7BBBF}.bg-default{--bslib-color-bg: #B7BBBF;--bslib-color-fg: #172431}.text-primary{--bslib-color-fg: #447099}.bg-primary{--bslib-color-bg: #447099;--bslib-color-fg: #FCFCFC}.text-secondary{--bslib-color-fg: #404040}.bg-secondary{--bslib-color-bg: #404040;--bslib-color-fg: #FCFCFC}.text-success{--bslib-color-fg: #00891a}.bg-success{--bslib-color-bg: #00891a;--bslib-color-fg: #FCFCFC}.text-info{--bslib-color-fg: #03c7e8}.bg-info{--bslib-color-bg: #03c7e8;--bslib-color-fg: #172431}.text-warning{--bslib-color-fg: #f9b928}.bg-warning{--bslib-color-bg: #f9b928;--bslib-color-fg: #172431}.text-danger{--bslib-color-fg: #c10000}.bg-danger{--bslib-color-bg: #c10000;--bslib-color-fg: #FCFCFC}.text-light{--bslib-color-fg: #E5E6E8}.bg-light{--bslib-color-bg: #E5E6E8;--bslib-color-fg: #172431}.text-dark{--bslib-color-fg: #202020}.bg-dark{--bslib-color-bg: #202020;--bslib-color-fg: #FCFCFC}.bg-gradient-blue-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #1e4ac2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e4ac2;color:#FCFCFC}.bg-gradient-blue-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2e52b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e52b3;color:#FCFCFC}.bg-gradient-blue-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4c4aa7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c4aa7;color:#FCFCFC}.bg-gradient-blue-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4d4a74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d4a74;color:#FCFCFC}.bg-gradient-blue-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #626a74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #626a74;color:#FCFCFC}.bg-gradient-blue-yellow{--bslib-color-fg: #172431;--bslib-color-bg: #649484;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #649484;color:#172431}.bg-gradient-blue-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #00817f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #00817f;color:#FCFCFC}.bg-gradient-blue-teal{--bslib-color-fg: #172431;--bslib-color-bg: #0096a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #0096a7;color:#172431}.bg-gradient-blue-cyan{--bslib-color-fg: #172431;--bslib-color-bg: #0199d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #0199d1;color:#172431}.bg-gradient-indigo-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2d31c1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #2d31c1;color:#FCFCFC}.bg-gradient-indigo-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #5b08b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #5b08b2;color:#FCFCFC}.bg-gradient-indigo-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #7900a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #7900a7;color:#FCFCFC}.bg-gradient-indigo-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #7a0074;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #7a0074;color:#FCFCFC}.bg-gradient-indigo-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #8f2074;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #8f2074;color:#FCFCFC}.bg-gradient-indigo-yellow{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #914a84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #914a84;color:#FCFCFC}.bg-gradient-indigo-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2d377e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #2d377e;color:#FCFCFC}.bg-gradient-indigo-teal{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2d4ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #2d4ca7;color:#FCFCFC}.bg-gradient-indigo-cyan{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2e50d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #2e50d1;color:#FCFCFC}.bg-gradient-purple-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #463dab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #463dab;color:#FCFCFC}.bg-gradient-purple-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #640cab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #640cab;color:#FCFCFC}.bg-gradient-purple-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #920c90;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #920c90;color:#FCFCFC}.bg-gradient-purple-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #930c5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #930c5e;color:#FCFCFC}.bg-gradient-purple-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #a72c5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #a72c5e;color:#FCFCFC}.bg-gradient-purple-yellow{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #a9566e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #a9566e;color:#FCFCFC}.bg-gradient-purple-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #464368;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #464368;color:#FCFCFC}.bg-gradient-purple-teal{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #465890;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #465890;color:#FCFCFC}.bg-gradient-purple-cyan{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #475cba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #475cba;color:#FCFCFC}.bg-gradient-pink-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #73319a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #73319a;color:#FCFCFC}.bg-gradient-pink-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #910099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #910099;color:#FCFCFC}.bg-gradient-pink-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #a1088b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #a1088b;color:#FCFCFC}.bg-gradient-pink-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #c0004c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #c0004c;color:#FCFCFC}.bg-gradient-pink-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #d4204c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #d4204c;color:#FCFCFC}.bg-gradient-pink-yellow{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #d64a5c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #d64a5c;color:#FCFCFC}.bg-gradient-pink-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #733757;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #733757;color:#FCFCFC}.bg-gradient-pink-teal{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #734c7f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #734c7f;color:#FCFCFC}.bg-gradient-pink-cyan{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #7450a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #7450a9;color:#FCFCFC}.bg-gradient-red-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #74314e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #74314e;color:#FCFCFC}.bg-gradient-red-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #92004d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #92004d;color:#FCFCFC}.bg-gradient-red-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #a2083e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #a2083e;color:#FCFCFC}.bg-gradient-red-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #c00033;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #c00033;color:#FCFCFC}.bg-gradient-red-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #d52000;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #d52000;color:#FCFCFC}.bg-gradient-red-yellow{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #d74a10;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #d74a10;color:#FCFCFC}.bg-gradient-red-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #74370a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #74370a;color:#FCFCFC}.bg-gradient-red-teal{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #744c33;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #744c33;color:#FCFCFC}.bg-gradient-red-cyan{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #75505d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #75505d;color:#FCFCFC}.bg-gradient-orange-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #92624e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #92624e;color:#FCFCFC}.bg-gradient-orange-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #b0314d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #b0314d;color:#FCFCFC}.bg-gradient-orange-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #c1393e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #c1393e;color:#FCFCFC}.bg-gradient-orange-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #df3133;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #df3133;color:#FCFCFC}.bg-gradient-orange-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #e03100;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #e03100;color:#FCFCFC}.bg-gradient-orange-yellow{--bslib-color-fg: #172431;--bslib-color-bg: #f67b10;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #f67b10;color:#172431}.bg-gradient-orange-green{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #92670a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #92670a;color:#FCFCFC}.bg-gradient-orange-teal{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #927d33;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #927d33;color:#FCFCFC}.bg-gradient-orange-cyan{--bslib-color-fg: #172431;--bslib-color-bg: #94805d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #94805d;color:#172431}.bg-gradient-yellow-blue{--bslib-color-fg: #172431;--bslib-color-bg: #95a066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #95a066;color:#172431}.bg-gradient-yellow-indigo{--bslib-color-fg: #172431;--bslib-color-bg: #b36f65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #b36f65;color:#172431}.bg-gradient-yellow-purple{--bslib-color-fg: #172431;--bslib-color-bg: #c47756;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #c47756;color:#172431}.bg-gradient-yellow-pink{--bslib-color-fg: #172431;--bslib-color-bg: #e26f4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #e26f4b;color:#172431}.bg-gradient-yellow-red{--bslib-color-fg: #172431;--bslib-color-bg: #e36f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #e36f18;color:#172431}.bg-gradient-yellow-orange{--bslib-color-fg: #172431;--bslib-color-bg: #f78f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #f78f18;color:#172431}.bg-gradient-yellow-green{--bslib-color-fg: #172431;--bslib-color-bg: #95a622;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #95a622;color:#172431}.bg-gradient-yellow-teal{--bslib-color-fg: #172431;--bslib-color-bg: #95bb4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #95bb4b;color:#172431}.bg-gradient-yellow-cyan{--bslib-color-fg: #172431;--bslib-color-bg: #97bf75;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #97bf75;color:#172431}.bg-gradient-green-blue{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #00835d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #00835d;color:#FCFCFC}.bg-gradient-green-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #1e525d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e525d;color:#FCFCFC}.bg-gradient-green-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2e5a4e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e5a4e;color:#FCFCFC}.bg-gradient-green-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4c5242;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c5242;color:#FCFCFC}.bg-gradient-green-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4d5210;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d5210;color:#FCFCFC}.bg-gradient-green-orange{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #627310;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #627310;color:#FCFCFC}.bg-gradient-green-yellow{--bslib-color-fg: #172431;--bslib-color-bg: #649c20;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #649c20;color:#172431}.bg-gradient-green-teal{--bslib-color-fg: #172431;--bslib-color-bg: #009f42;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #009f42;color:#172431}.bg-gradient-green-cyan{--bslib-color-fg: #172431;--bslib-color-bg: #01a26c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #01a26c;color:#172431}.bg-gradient-teal-blue{--bslib-color-fg: #172431;--bslib-color-bg: #00a49a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #00a49a;color:#172431}.bg-gradient-teal-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #1e7399;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e7399;color:#FCFCFC}.bg-gradient-teal-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2e7b8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e7b8b;color:#FCFCFC}.bg-gradient-teal-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4c737f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c737f;color:#FCFCFC}.bg-gradient-teal-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4d734c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d734c;color:#FCFCFC}.bg-gradient-teal-orange{--bslib-color-fg: #172431;--bslib-color-bg: #62934c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #62934c;color:#172431}.bg-gradient-teal-yellow{--bslib-color-fg: #172431;--bslib-color-bg: #64bd5c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #64bd5c;color:#172431}.bg-gradient-teal-green{--bslib-color-fg: #172431;--bslib-color-bg: #00a957;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #00a957;color:#172431}.bg-gradient-teal-cyan{--bslib-color-fg: #172431;--bslib-color-bg: #01c2a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #01c2a9;color:#172431}.bg-gradient-cyan-blue{--bslib-color-fg: #172431;--bslib-color-bg: #02a9d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #02a9d9;color:#172431}.bg-gradient-cyan-indigo{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #2077d8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #2077d8;color:#FCFCFC}.bg-gradient-cyan-purple{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #307fca;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #307fca;color:#FCFCFC}.bg-gradient-cyan-pink{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4e77be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4e77be;color:#FCFCFC}.bg-gradient-cyan-red{--bslib-color-fg: #FCFCFC;--bslib-color-bg: #4f778b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4f778b;color:#FCFCFC}.bg-gradient-cyan-orange{--bslib-color-fg: #172431;--bslib-color-bg: #63988b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #63988b;color:#172431}.bg-gradient-cyan-yellow{--bslib-color-fg: #172431;--bslib-color-bg: #65c19b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #65c19b;color:#172431}.bg-gradient-cyan-green{--bslib-color-fg: #172431;--bslib-color-bg: #02ae96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #02ae96;color:#172431}.bg-gradient-cyan-teal{--bslib-color-fg: #172431;--bslib-color-bg: #02c4be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #02c4be;color:#172431}.irs.irs--shiny{margin-top:3px}.irs.irs--shiny .irs-min,.irs.irs--shiny .irs-max,.irs.irs--shiny .irs-from,.irs.irs--shiny .irs-to,.irs.irs--shiny .irs-single{padding:3px 6px;top:-3px}.irs.irs--shiny .irs-handle{top:23px}.irs.irs--shiny .irs-bar{top:31px;height:3px;border:none}.irs.irs--shiny .irs-line{border-radius:8px}.irs.irs--shiny .irs-grid-pol{height:6px}.irs.irs--shiny .irs-grid-text{bottom:8px}.irs.irs--shiny .irs-handle:focus-visible,.irs.irs--shiny .irs-handle:active{color:#304e6b;background-color:#304e6b;border-color:#304e6b;outline:0;box-shadow:0 0 0 .25rem rgba(68,112,153,0.25)}.irs.irs--shiny~.slider-animate-container{text-align:left}.irs.irs--shiny~.slider-animate-container .slider-animate-button{opacity:1}.irs.irs--shiny.irs-with-grid~.slider-animate-container{margin-top:-5px}.irs.irs--shiny:not(.irs-with-grid)~.slider-animate-container{margin-top:5px}.table.dataTable{--dt-row-selected: var(--bs-primary-rgb, "0,123,194");--dt-row-selected-text: var(--bs-white-rgb, "255,255,255");--dt-row-selected-link: var(--bs-light-rgh, "248,248,248")}.table.dataTable.dataTable.table-striped>tbody>tr.odd:not(.selected)>*{box-shadow:none}.table.dataTable.dataTable.table-striped>tbody>tr.even:not(.selected)>*{box-shadow:inset 0 0 0 9999px var(--bs-table-striped-bg)}.table.dataTable.dataTable tbody td.active,.table.dataTable.dataTable tbody tr.active td{background-color:var(--bs-table-active-bg)}.table.dataTable.dataTable.table-hover>tbody>tr:hover:not(.selected)>*{box-shadow:inset 0 0 0 9999px var(--bs-table-hover-bg)}thead,tbody,tfoot,tr,td,th{border:none}.table>thead{border-bottom:1px solid var(--bs-table-color)}th{font-weight:600}.datatables .dataTables_wrapper div.dataTables_info{padding-top:1.65rem;font-size:.95rem}.datatables .dataTables_paginate{padding-top:1rem}.datatables .paginate_button a{font-size:.95rem}.datatables .dataTables_length,.datatables .dataTables_filter{padding-bottom:1rem}.datatables .dataTables_wrapper .dt-row{max-width:100%;overflow:auto}.datatables .dataTables_wrapper .dataTables_length select,.datatables .dataTables_wrapper .dataTables_filter input{border:none;border-bottom:1px solid var(--bs-body-color);border-radius:0}.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper{font-size:85%}.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_length,.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_filter,.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_paginate{display:none}:root{--bslib-box-shadow-color-rgb: 29,31,33}[data-bs-theme="dark"]{--bslib-box-shadow-color-rgb: 0,0,0}.checkbox input,.radio input{margin-right:.35em}.shiny-input-container-inline .shiny-options-group{display:flex;flex-wrap:wrap;flex-direction:row;column-gap:1em}.shiny-input-container-inline .shiny-options-group .checkbox-inline,.shiny-input-container-inline .shiny-options-group .radio-inline{position:relative;padding-left:calc(1.2em + .35em * 2)}.shiny-input-container-inline .shiny-options-group .checkbox-inline input,.shiny-input-container-inline .shiny-options-group .radio-inline input{position:absolute;margin-top:0;left:0;top:calc(.15em + var(--bs-border-width))}.shiny-date-range-input .input-daterange .input-group-addon{margin-right:-1px}.btn-outline-default,.btn-default:not(.btn-primary,.btn-secondary,.btn-info,.btn-success,.btn-danger,.btn-warning,.btn-light,.btn-dark,.btn-link,[class*="btn-outline-"]){--bs-btn-color: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #FCFCFC;--bs-btn-hover-bg: #404040;--bs-btn-hover-border-color: #404040;--bs-btn-focus-shadow-rgb: 64,64,64;--bs-btn-active-color: #FCFCFC;--bs-btn-active-bg: #404040;--bs-btn-active-border-color: #404040;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #404040;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #404040;--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-default,[data-bs-theme="dark"] .btn-default:not(.btn-primary,.btn-secondary,.btn-info,.btn-success,.btn-danger,.btn-warning,.btn-light,.btn-dark,.btn-link,[class*="btn-outline-"]){--bs-btn-color: #B7BBBF;--bs-btn-border-color: #B7BBBF;--bs-btn-hover-color: #172431;--bs-btn-hover-bg: #B7BBBF;--bs-btn-hover-border-color: #B7BBBF;--bs-btn-focus-shadow-rgb: 183,187,191;--bs-btn-active-color: #172431;--bs-btn-active-bg: #B7BBBF;--bs-btn-active-border-color: #B7BBBF;--bs-btn-active-shadow: inset 0 3px 5px rgba(23,36,49,0.125);--bs-btn-disabled-color: #B7BBBF;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #B7BBBF;--bs-btn-bg: transparent;--bs-gradient: none}.selectize-control.plugin-remove_button .item{align-items:flex-start !important}.selectize-control.plugin-remove_button .item .remove{border-left:none !important}.bslib-card{box-shadow:var(--bslib-card-box-shadow, 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16));border-color:var(--bslib-card-border-color, transparent)}.bslib-card.bslib-value-box.default{--bslib-value-box-border-color-default: var(--bslib-card-border-color, transparent)}.bslib-card .bslib-card{--bslib-card-box-shadow: ;--bslib-card-border-color: var(--bs-card-border-color)}.bslib-card .bslib-card.bslib-value-box.default{--bslib-value-box-border-color-default: var(--bs-card-border-color, var(--bs-border-color-translucent))}.bslib-card-box-shadow-sm{--bslib-card-box-shadow: var(--bslib-card-box-shadow-sm, 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16))}.bslib-card-box-shadow-md{--bslib-card-box-shadow: var(--bslib-card-box-shadow-md, 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08))}.bslib-card-box-shadow-lg{--bslib-card-box-shadow: var(--bslib-card-box-shadow-lg, 0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17))}.bslib-card-box-shadow-none{--bslib-card-box-shadow: none;--bslib-card-border-color: var(--bs-card-border-color)}.popover{--bs-popover-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);box-shadow:var(--bs-popover-shadow)}:root{--bslib-dashboard-sidebar-bg: var(--bs-body-bg);--bslib-dashboard-sidebar-main-bg: var(--bs-body-bg);--bslib-dashboard-main-bg: rgb(247, 247, 247);--bs-card-border-color: var(--bslib-dashboard-border-color-translucent, var(--bs-border-color-translucent));--bslib-dashboard-card-cap-bg: var(--bs-body-bg);--bslib-dashboard-card-header-font-weight: 600;--bslib-sidebar-bg: var(--bs-body-bg);--bslib-sidebar-fg: var(--bs-color)}[data-bs-theme="dark"]{--bslib-dashboard-main-bg: rgb(20, 20, 24)}.bslib-card{--bs-card-cap-bg: var(--bslib-dashboard-card-cap-bg)}.bslib-card .card-header,.bslib-card .card-footer{font-size:0.9rem}.bslib-card .card-header{font-weight:var(--bslib-dashboard-card-header-font-weight);line-height:1.375rem}.bslib-page-dashboard,.main:has(.tab-content>.bslib-page-dashboard.active){background-color:var(--bslib-dashboard-main-bg);--_main-bg: var(--bslib-dashboard-main-bg)}.bslib-page-navbar>.navbar,.bslib-page-dashboard>.navbar{--bslib-navbar-default-bg: var(--bs-body-bg);--bslib-navbar-inverse-bg: var(--bs-body-color)}.bslib-page-navbar>.navbar+div,.bslib-page-dashboard>.navbar+div{border-top:var(--bs-border-width) solid var(--bs-border-color-translucent)}.bslib-page-navbar>.navbar+div>.bslib-sidebar-layout,.bslib-page-navbar>.navbar+div>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout.html-fill-item,.bslib-page-dashboard>.navbar+div>.bslib-sidebar-layout,.bslib-page-dashboard>.navbar+div>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout.html-fill-item{border-top:none !important}.bslib-page-sidebar{--bslib-page-sidebar-title-bg: var(--bs-body-bg);--bslib-page-sidebar-title-color: var(--bs-body-color)}.bslib-page-sidebar .bslib-page-title{border-color:var(--bs-border-color-translucent)}.nav-underline{--bs-link-color: rgba(var(--bs-body-color-rgb), 0.65);--bs-link-hover-color: rgba(var(--bs-body-color-rgb), 0.8);--bs-nav-link-font-size: 0.875rem}.nav-underline .nav-link{padding-left:5px !important;padding-right:5px !important}.nav-underline .nav-link.active{font-weight:500}.navbar-collapse.show .nav-underline,.navbar-collapse.collapsing .nav-underline{--bs-nav-underline-border-width: 0;--bs-nav-underline-gap: 0}.navbar .nav-underline .nav-link{padding-bottom:calc(var(--bs-navbar-padding-y, .5rem) * 2);margin-bottom:calc(var(--bs-navbar-padding-y, .5rem) * -1)}.bslib-value-box.default .value-box-showcase>i.bi{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fa{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fas{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.far{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fab{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.material-icons{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>svg.bi{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fa{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fas{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.far{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fab{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.material-icons{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.text-info{color:#028097 !important}.bslib-value-box.text-info,.bslib-value-box.text-info.text-cyan{--bslib-color-fg: $cyan !important}.bslib-value-box.text-light{--bslib-color-fg: $gray-600 !important}.bslib-value-box.text-warning{color:#A87600 !important}.bslib-value-box.text-warning,.bslib-value-box.text-warning.text-yellow{--bslib-color-fg: $warning !important}.bslib-value-box.text-teal.text-teal{--bslib-color-fg: #008558}.modal-body,.modal-footer{padding:1.5rem}.modal-header .btn-close{align-self:start;display:flex}#shiny-modal-wrapper:has(~.modal-backdrop) .modal{backdrop-filter:blur(2px)}#shiny-notification-panel#shiny-notification-panel{position:fixed;bottom:calc(var(--bslib-spacer, 1rem) / 2);right:calc(var(--bslib-spacer, 1rem) / 2);width:450px;z-index:1090}.progress-message{margin-right:.6rem}.shiny-notification.shiny-notification{position:relative;opacity:0.96;padding:2rem;margin:var(--bslib-spacer, 1rem);border:1px solid var(--bs-border-color-translucent);border-radius:8px;box-shadow:0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08)}.shiny-notification.shiny-notification .shiny-notification-close{position:absolute;font-size:1.5em;width:2rem;height:2rem;top:0;right:0;bottom:unset;display:flex;align-items:center;justify-content:center;padding:0.25rem;cursor:pointer;font-weight:200;color:currentColor}.shiny-notification.shiny-notification .shiny-notification-close:hover{font-weight:normal}.shiny-notification.shiny-notification .shiny-notification-content-text :last-child{margin-bottom:0}.row>main{max-width:50rem}@media (min-width: 1200px) and (max-width: 1399.98px){.container .row{justify-content:space-evenly}}@media (min-width: 1400px){body{font-size:18px}.col-md-3{margin-left:5rem}}.navbar-nav .nav-item>.nav-link{border-radius:0;padding:0.5rem}.navbar>.container{align-items:baseline;-webkit-align-items:baseline}.navbar-light .navbar-nav .active>.nav-link{background:#CED1D3;color:#2E3A45}.navbar-dark .navbar-nav .active>.nav-link{background:#454F5A;color:#FCFCFC}.navbar-dark .navbar-nav .nav-item>.nav-link:hover,.navbar-light .navbar-nav .nav-item>.nav-link:hover{background:rgba(68,112,153,0.1)}.navbar-dark input[type="search"]{border-color:#737A82;background-color:#2E3A45;color:#CED1D3}input[type="search"]{border-color:#B7BBBF;width:12rem}.headroom{will-change:transform;transition:transform 400ms ease}.headroom--pinned{transform:translateY(0%)}.headroom--unpinned{transform:translateY(-100%)}.row>main,.row>aside{margin-top:78px}html,body{scroll-padding:78px}@media (min-width: 576px){#toc{position:sticky;top:78px;max-height:calc(100vh - 78px - 1rem);overflow-y:auto}}aside h2,aside .h2{margin-top:1.5rem;font-size:1.5rem}aside .roles{color:#57616a}aside .list-unstyled li{margin-bottom:0.5rem}aside .dev-status .list-unstyled li{margin-bottom:0.1rem}@media (max-width: 575.98px){aside{margin:0.5rem;width:calc(100vw - 1rem);background-color:#E5E6E8;border-color:#B7BBBF;border-radius:0}aside h2:first-child,aside .h2:first-child{margin-top:1rem}}body{position:relative}#toc>.nav{margin-bottom:1rem}#toc>.nav a.nav-link{color:inherit;padding:0.25rem 0.5rem;margin-bottom:2px;border-radius:0;border:0 solid #B7BBBF}#toc>.nav a.nav-link:hover,#toc>.nav a.nav-link:focus{background-color:rgba(68,112,153,0.1);color:#172431}#toc>.nav a.nav-link.active{background-color:#e7e9ea;color:#172431}#toc>.nav .nav a.nav-link{margin-left:0.5rem}#toc>.nav .nav{display:none !important}#toc>.nav a.active+.nav{display:flex !important}footer{margin:1rem 0 1rem 0;font-size:.875em;border-top:1px solid #B7BBBF;background:rgba(0,0,0,0);color:#57616a;display:flex;column-gap:1rem}@media (max-width: 575.98px){footer{flex-direction:column}}@media (min-width: 576px){footer .pkgdown-footer-right{text-align:right}}footer div{flex:1 1 auto}html,body{height:100%}body>.container{min-height:100%;display:flex;flex-direction:column}body>.container .row{flex:1 0 auto}::selection{background-color:#d7e0e8}main img{max-width:100%;height:auto}main table{display:block;overflow:auto}body{font-display:fallback}.page-header{border-bottom:1px solid #B7BBBF;padding-bottom:0.5rem;margin-bottom:0.5rem;margin-top:1.5rem}dd{margin-left:1.5rem}summary{margin-bottom:0.5rem}details{margin-bottom:1rem}.html-widget{margin-bottom:1rem}a.anchor{display:none;margin-left:5px;width:Min(0.9em, 20px);height:Min(0.9em, 20px);background-image:url(../../link.svg);background-repeat:no-repeat;background-size:Min(0.9em, 20px) Min(0.9em, 20px);background-position:center center}h2:hover .anchor,.h2:hover .anchor,h3:hover .anchor,.h3:hover .anchor,h4:hover .anchor,.h4:hover .anchor,h5:hover .anchor,.h5:hover .anchor,h6:hover .anchor,.h6:hover .anchor{display:inline-block}.orcid{color:#A6CE39;margin-right:4px}.fab{font-family:"Font Awesome 5 Brands" !important}img.logo{float:right;width:100px;margin-left:30px}.template-home img.logo{width:120px}@media (max-width: 575.98px){img.logo{width:80px}}@media (min-width: 576px){.page-header{min-height:88px}.template-home .page-header{min-height:104px}}.line-block{margin-bottom:1rem}.template-reference-index dt{font-weight:normal}.template-reference-index code{word-wrap:normal}.icon{float:right}.icon img{width:40px}a.footnote-ref{cursor:pointer}.popover{width:Min(100vw, 32rem);font-size:0.9rem;box-shadow:4px 4px 8px rgba(23,36,49,0.3)}.popover-body{padding:0.75rem}.popover-body p:last-child{margin-bottom:0}.tab-content{padding:1rem}.tabset-pills .tab-content{border:solid 1px #e5e5e5}.tab-content{display:flex}.tab-content>.tab-pane{display:block;visibility:hidden;margin-right:-100%;width:100%}.tab-content>.active{visibility:visible}div.csl-entry{clear:both}.hanging-indent div.csl-entry{margin-left:2em;text-indent:-2em}div.csl-left-margin{min-width:2em;float:left}div.csl-right-inline{margin-left:2em;padding-left:1em}div.csl-indent{margin-left:2em}pre,pre code{word-wrap:normal}code{overflow-wrap:break-word}.hasCopyButton{position:relative}.btn-copy-ex{position:absolute;right:5px;top:5px;visibility:hidden}.hasCopyButton:hover button.btn-copy-ex{visibility:visible}pre{padding:1rem 0.5rem}@media (max-width: 575.98px){div>div>pre{margin-left:calc(var(--bs-gutter-x) * -.5);margin-right:calc(var(--bs-gutter-x) * -.5);border-radius:0;padding-left:1rem;padding-right:1rem}.btn-copy-ex{right:calc(var(--bs-gutter-x) * -.5 + 5px)}}code a:any-link{color:inherit;text-decoration-color:#737A82}pre code{padding:0;background:transparent}pre code .error,pre code .warning{font-weight:bolder}pre .img img,pre .r-plt img{margin:5px 0;background-color:#fff}@media print{code a:link:after,code a:visited:after{content:""}}a.sourceLine:hover{text-decoration:none}mark,.mark{background:linear-gradient(-100deg, rgba(3,199,232,0.2), rgba(3,199,232,0.7) 95%, rgba(3,199,232,0.1))}.algolia-autocomplete .aa-hint{color:#2E3A45}.algolia-autocomplete .aa-dropdown-menu{width:Max(100%, 20rem);background-color:#FCFCFC;border:1px solid var(--bs-border-color);margin-top:2px;max-height:50vh;overflow-y:auto}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;padding:5px 4px;border-bottom:1px #CED1D3 solid;font-size:0.9rem;color:#2E3A45}.search-details{font-size:0.9rem;color:#447099;display:inline;font-weight:bolder}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor{background-color:#eaeef2}pre{background-color:#f1f3f5}pre code{color:#003B4F}pre code span.al{color:#AD0000}pre code span.an{color:#5E5E5E}pre code span.at{color:#657422}pre code span.bn{color:#AD0000}pre code span.cf{color:#003B4F}pre code span.ch{color:#20794D}pre code span.cn{color:#8f5902}pre code span.co{color:#5E5E5E}pre code span.cv{color:#5E5E5E;font-style:italic}pre code span.do{color:#5E5E5E;font-style:italic}pre code span.dt{color:#AD0000}pre code span.dv{color:#AD0000}pre code span.er{color:#AD0000}pre code span.fl{color:#AD0000}pre code span.fu{color:#4758AB}pre code span.im{color:#00769E}pre code span.in{color:#5E5E5E}pre code span.kw{color:#003B4F}pre code span.op{color:#5E5E5E}pre code span.ot{color:#003B4F}pre code span.pp{color:#AD0000}pre code span.sc{color:#5E5E5E}pre code span.ss{color:#20794D}pre code span.st{color:#20794D}pre code span.va{color:#111111}pre code span.vs{color:#20794D}pre code span.wa{color:#5E5E5E;font-style:italic}@media (min-width: 1400px){body{font-size:20px}}h2,.h2{font-size:calc(1.305rem + .66vw);margin-top:2.5rem}@media (min-width: 1200px){h2,.h2{font-size:1.8rem}}main .page-header+.section h2,main .page-header+.section .h2{margin-top:1rem}h3,.h3{font-size:calc(1.275rem + .3vw);margin-top:2rem}@media (min-width: 1200px){h3,.h3{font-size:1.5rem}}h4,.h4{font-size:1.2rem;font-weight:bold;margin-top:1.2rem}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{color:#303f4d}h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{margin-bottom:1rem}.page-header{border-bottom:none;min-height:0;margin-bottom:2rem}.page-header h1,.page-header .h1{margin-top:3rem}.template-home .page-header{display:flex;gap:1rem;align-items:center;min-height:0;margin:2rem 0;padding:2rem 0;border-bottom:1px solid #efefef}.template-home .page-header h1,.template-home .page-header .h1{margin-top:0rem}@media (max-width: 575.98px){.template-home .page-header{margin:0.5rem 0;padding:0.5rem 0}}.template-home img.logo{margin-left:0}@media (max-width: 575.98px){.template-home img.logo{width:100px}}nav.navbar{border-bottom:1px solid #efefef;background-color:#f9f9f9;padding:1rem 0}.navbar-light .navbar-nav .active>.nav-link{background:transparent;font-weight:600;color:#444}.navbar-light .navbar-nav .nav-item>.nav-link:hover{background:transparent;text-decoration:underline}.dropdown-menu{box-shadow:0 2px 5px 0 rgba(120,120,120,0.1)}.dropdown-item:hover,.dropdown-item:focus{background:#FCFCFC;text-decoration:underline}@media (min-width: 576px){#toc{top:calc(78px + 2rem)}}.row>aside{margin-top:calc(2rem + 78px)}aside{border-left:1px solid #efefef;margin-bottom:2rem;line-height:1.4}aside h2,aside .h2{font-size:1rem;text-transform:uppercase;margin-bottom:0.75rem;margin-top:2rem;font-weight:bold;letter-spacing:0.15rem;color:#454F5A}aside div:first-child h2,aside div:first-child .h2{margin-top:0}aside nav:first-child h2,aside nav:first-child .h2{margin-top:0}aside .list-unstyled li{margin-bottom:0.5rem}@media (max-width: 575.98px){aside{margin:1rem 0 0 0;padding:2rem 1rem 1rem 1rem;background-color:#f9f9f9;width:100vw;border-top:1px solid #efefef}}#toc .nav a.nav-link{color:inherit;padding:0.25rem 0}#toc .nav a.nav-link:hover,#toc .nav a.nav-link:focus{text-decoration:underline}#toc .nav a.nav-link.active{color:#444;font-weight:600}#toc .nav a.nav-link:hover,#toc .nav a.nav-link:focus,#toc .nav a.nav-link.active{background-color:#FCFCFC}footer{margin-top:auto;margin-bottom:0;border-top:1px solid #efefef;padding:2rem 0}footer p{margin-bottom:0}footer .container{display:flex}@media (max-width: 575.98px){footer .container{flex-direction:column;row-gap:1rem}}main{margin-bottom:5rem}@media (max-width: 575.98px){main{margin-bottom:0}}body{min-height:0;height:100%;display:flex;flex-direction:column}body>.container{min-height:0;flex-shrink:0}pre,code{border:none;background-image:linear-gradient(-160deg, #f8f8f8 0, #f1f1f1 100%)}pre code{background:transparent}pre{font-size:0.81em}h1 code,.h1 code,h2 code,.h2 code,h3 code,.h3 code,h4 code,.h4 code,h5 code,.h5 code,h6 code,.h6 code{background:transparent;padding:0}code{border-radius:3px}ol,ul{padding-left:1.5rem}ul{list-style-type:disc}main li{margin-bottom:0.25rem}main li li{margin-bottom:0}main ul ul,main ol ol,main ul ol,main ol ul{margin:0.5rem 0}mark,.mark{background:linear-gradient(-135deg, rgba(197,210,222,0.2), rgba(197,210,222,0.7) 95%, rgba(197,210,222,0.1))} + */:root,[data-bs-theme="light"]{--bs-blue: #007bc2;--bs-indigo: #4b00c1;--bs-purple: #74149c;--bs-pink: #bf007f;--bs-red: #c10000;--bs-orange: #f45100;--bs-yellow: #f9b928;--bs-green: #00891a;--bs-teal: #00bf7f;--bs-cyan: #03c7e8;--bs-black: #000;--bs-white: #fff;--bs-gray: #707782;--bs-gray-dark: #343A46;--bs-gray-100: #f8f8f8;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #cdd4da;--bs-gray-500: #8D959E;--bs-gray-600: #707782;--bs-gray-700: #48505F;--bs-gray-800: #343A46;--bs-gray-900: #1D1F21;--bs-default: #dee2e6;--bs-primary: #007bc2;--bs-secondary: #404040;--bs-success: #00891a;--bs-info: #03c7e8;--bs-warning: #f9b928;--bs-danger: #c10000;--bs-light: #f8f8f8;--bs-dark: #202020;--bs-default-rgb: 222,226,230;--bs-primary-rgb: 0,123,194;--bs-secondary-rgb: 64,64,64;--bs-success-rgb: 0,137,26;--bs-info-rgb: 3,199,232;--bs-warning-rgb: 249,185,40;--bs-danger-rgb: 193,0,0;--bs-light-rgb: 248,248,248;--bs-dark-rgb: 32,32,32;--bs-primary-text-emphasis: #00314e;--bs-secondary-text-emphasis: #1a1a1a;--bs-success-text-emphasis: #00370a;--bs-info-text-emphasis: #01505d;--bs-warning-text-emphasis: #644a10;--bs-danger-text-emphasis: #4d0000;--bs-light-text-emphasis: #48505F;--bs-dark-text-emphasis: #48505F;--bs-primary-bg-subtle: #cce5f3;--bs-secondary-bg-subtle: #d9d9d9;--bs-success-bg-subtle: #cce7d1;--bs-info-bg-subtle: #cdf4fa;--bs-warning-bg-subtle: #fef1d4;--bs-danger-bg-subtle: #f3cccc;--bs-light-bg-subtle: #fcfcfc;--bs-dark-bg-subtle: #cdd4da;--bs-primary-border-subtle: #99cae7;--bs-secondary-border-subtle: #b3b3b3;--bs-success-border-subtle: #99d0a3;--bs-info-border-subtle: #9ae9f6;--bs-warning-border-subtle: #fde3a9;--bs-danger-border-subtle: #e69999;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #8D959E;--bs-white-rgb: 255,255,255;--bs-black-rgb: 0,0,0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: "Source Code Pro", 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-body-font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #1D1F21;--bs-body-color-rgb: 29,31,33;--bs-body-bg: #fff;--bs-body-bg-rgb: 255,255,255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0,0,0;--bs-secondary-color: rgba(29,31,33,0.75);--bs-secondary-color-rgb: 29,31,33;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233,236,239;--bs-tertiary-color: rgba(29,31,33,0.5);--bs-tertiary-color-rgb: 29,31,33;--bs-tertiary-bg: #f8f8f8;--bs-tertiary-bg-rgb: 248,248,248;--bs-heading-color: inherit;--bs-link-color: #007bc2;--bs-link-color-rgb: 0,123,194;--bs-link-decoration: underline;--bs-link-hover-color: #00629b;--bs-link-hover-color-rgb: 0,98,155;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-highlight-bg: #fef1d4;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(40,70,94,0.1);--bs-border-radius: 3px;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-box-shadow-sm: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-box-shadow-lg: 0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17);--bs-box-shadow-inset: inset 0 1px 2px rgba(0,0,0,0.075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(0,123,194,0.25);--bs-form-valid-color: #00891a;--bs-form-valid-border-color: #00891a;--bs-form-invalid-color: #c10000;--bs-form-invalid-border-color: #c10000}[data-bs-theme="dark"]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222,226,230;--bs-body-bg: #1D1F21;--bs-body-bg-rgb: 29,31,33;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255,255,255;--bs-secondary-color: rgba(222,226,230,0.75);--bs-secondary-color-rgb: 222,226,230;--bs-secondary-bg: #343A46;--bs-secondary-bg-rgb: 52,58,70;--bs-tertiary-color: rgba(222,226,230,0.5);--bs-tertiary-color-rgb: 222,226,230;--bs-tertiary-bg: #292d34;--bs-tertiary-bg-rgb: 41,45,52;--bs-primary-text-emphasis: #66b0da;--bs-secondary-text-emphasis: #8c8c8c;--bs-success-text-emphasis: #66b876;--bs-info-text-emphasis: #68ddf1;--bs-warning-text-emphasis: #fbd57e;--bs-danger-text-emphasis: #da6666;--bs-light-text-emphasis: #f8f8f8;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #001927;--bs-secondary-bg-subtle: #0d0d0d;--bs-success-bg-subtle: #001b05;--bs-info-bg-subtle: #01282e;--bs-warning-bg-subtle: #322508;--bs-danger-bg-subtle: #270000;--bs-light-bg-subtle: #343A46;--bs-dark-bg-subtle: #1a1d23;--bs-primary-border-subtle: #004a74;--bs-secondary-border-subtle: #262626;--bs-success-border-subtle: #005210;--bs-info-border-subtle: #02778b;--bs-warning-border-subtle: #956f18;--bs-danger-border-subtle: #740000;--bs-light-border-subtle: #48505F;--bs-dark-border-subtle: #343A46;--bs-heading-color: inherit;--bs-link-color: #66b0da;--bs-link-hover-color: #85c0e1;--bs-link-color-rgb: 102,176,218;--bs-link-hover-color-rgb: 133,192,225;--bs-code-color: RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));--bs-border-color: #495057;--bs-border-color-translucent: rgba(255,255,255,0.1);--bs-form-valid-color: #66b876;--bs-form-valid-border-color: #66b876;--bs-form-invalid-color: #da6666;--bs-form-invalid-border-color: #da6666}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}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:2rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.335rem + 1.02vw)}@media (min-width: 1200px){h1,.h1{font-size:2.1rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #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:.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;color:RGB(var(--bs-emphasis-color-rgb, 0, 0, 0));background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6);border-radius:3px}pre code{background-color:transparent;font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);background-color:RGBA(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.04);border-radius:3px;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role="button"]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.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:.875em;color:#707782}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;-webkit-flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.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}}.col{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-sm-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-sm-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-sm-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-sm-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-sm-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-sm-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-sm-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-sm-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-sm-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-md-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-md-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-md-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-md-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-md-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-md-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-md-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-md-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-md-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-lg-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-lg-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-lg-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-lg-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-lg-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-lg-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-lg-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-lg-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-lg-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%;-webkit-flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.row-cols-xxl-4>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-auto{flex:0 0 auto;-webkit-flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;-webkit-flex:0 0 auto;width:8.33333%}.col-xxl-2{flex:0 0 auto;-webkit-flex:0 0 auto;width:16.66667%}.col-xxl-3{flex:0 0 auto;-webkit-flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;-webkit-flex:0 0 auto;width:33.33333%}.col-xxl-5{flex:0 0 auto;-webkit-flex:0 0 auto;width:41.66667%}.col-xxl-6{flex:0 0 auto;-webkit-flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;-webkit-flex:0 0 auto;width:58.33333%}.col-xxl-8{flex:0 0 auto;-webkit-flex:0 0 auto;width:66.66667%}.col-xxl-9{flex:0 0 auto;-webkit-flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;-webkit-flex:0 0 auto;width:83.33333%}.col-xxl-11{flex:0 0 auto;-webkit-flex:0 0 auto;width:91.66667%}.col-xxl-12{flex:0 0 auto;-webkit-flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333%}.offset-xxl-2{margin-left:16.66667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333%}.offset-xxl-5{margin-left:41.66667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333%}.offset-xxl-8{margin-left:66.66667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333%}.offset-xxl-11{margin-left:91.66667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(0,123,194,0.06);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(0,0,0,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(0,123,194,0.1);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(even)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cce5f3;--bs-table-border-color: #b8cedb;--bs-table-striped-bg: #c2dae7;--bs-table-striped-color: #000;--bs-table-active-bg: #b8cedb;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd4e1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #d9d9d9;--bs-table-border-color: #c3c3c3;--bs-table-striped-bg: #cecece;--bs-table-striped-color: #000;--bs-table-active-bg: #c3c3c3;--bs-table-active-color: #000;--bs-table-hover-bg: #c9c9c9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #cce7d1;--bs-table-border-color: #b8d0bc;--bs-table-striped-bg: #c2dbc7;--bs-table-striped-color: #000;--bs-table-active-bg: #b8d0bc;--bs-table-active-color: #000;--bs-table-hover-bg: #bdd6c1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cdf4fa;--bs-table-border-color: #b9dce1;--bs-table-striped-bg: #c3e8ee;--bs-table-striped-color: #000;--bs-table-active-bg: #b9dce1;--bs-table-active-color: #000;--bs-table-hover-bg: #bee2e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fef1d4;--bs-table-border-color: #e5d9bf;--bs-table-striped-bg: #f1e5c9;--bs-table-striped-color: #000;--bs-table-active-bg: #e5d9bf;--bs-table-active-color: #000;--bs-table-hover-bg: #ebdfc4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f3cccc;--bs-table-border-color: #dbb8b8;--bs-table-striped-bg: #e7c2c2;--bs-table-striped-color: #000;--bs-table-active-bg: #dbb8b8;--bs-table-active-color: #000;--bs-table-hover-bg: #e1bdbd;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f8f8;--bs-table-border-color: #dfdfdf;--bs-table-striped-bg: #ececec;--bs-table-striped-color: #000;--bs-table-active-bg: #dfdfdf;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e5e5;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #202020;--bs-table-border-color: #363636;--bs-table-striped-bg: #2b2b2b;--bs-table-striped-color: #fff;--bs-table-active-bg: #363636;--bs-table-active-color: #fff;--bs-table-hover-bg: #313131;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#707782}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid #8D959E;border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.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:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80bde1;outline:0;box-shadow:0 0 0 .25rem rgba(0,123,194,0.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343A46' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid #8D959E;border-radius:var(--bs-border-radius);transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#80bde1;outline:0;box-shadow:0 0 0 .25rem rgba(0,123,194,0.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme="dark"] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.25rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: var(--bs-body-bg);width:1.2em;height:1.2em;margin-top:.15em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);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:2px}.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:#80bde1;outline:0;box-shadow:0 0 0 .25rem rgba(0,123,194,0.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:#007bc2;border-color:#007bc2}.form-check-input:checked[type="checkbox"],.shiny-input-container .checkbox input:checked[type="checkbox"],.shiny-input-container .checkbox-inline input:checked[type="checkbox"],.shiny-input-container .radio input:checked[type="checkbox"],.shiny-input-container .radio-inline input:checked[type="checkbox"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type="radio"],.shiny-input-container .checkbox input:checked[type="radio"],.shiny-input-container .checkbox-inline input:checked[type="radio"],.shiny-input-container .radio input:checked[type="radio"],.shiny-input-container .radio-inline input:checked[type="radio"]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox input[type="checkbox"]:indeterminate,.shiny-input-container .checkbox-inline input[type="checkbox"]:indeterminate,.shiny-input-container .radio input[type="checkbox"]:indeterminate,.shiny-input-container .radio-inline input[type="checkbox"]:indeterminate{background-color:#007bc2;border-color:#007bc2;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380bde1'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255,255,255,0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(0,123,194,0.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(0,123,194,0.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#007bc2;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3d7ed}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#007bc2;border:0;border-radius:1rem;transition:background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3d7ed}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity 0.1s ease-in-out,transform 0.1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), .65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#707782}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:.9375rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid #8D959E;border-radius:var(--bs-border-radius)}.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:var(--bs-border-radius-lg)}.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:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n + 3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n + 4),.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n + 3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300891a' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300891a' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23c10000'%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='%23c10000' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23c10000'%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='%23c10000' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + .75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 2em;--bs-btn-padding-y: .75em;--bs-btn-font-family: ;--bs-btn-font-size:.9375rem;--bs-btn-font-weight: 500;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #000;--bs-btn-bg: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #e3e6ea;--bs-btn-hover-border-color: #e1e5e9;--bs-btn-focus-shadow-rgb: 189,192,196;--bs-btn-active-color: #000;--bs-btn-active-bg: #e5e8eb;--bs-btn-active-border-color: #e1e5e9;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #dee2e6;--bs-btn-disabled-border-color: #dee2e6}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #007bc2;--bs-btn-border-color: #007bc2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0069a5;--bs-btn-hover-border-color: #00629b;--bs-btn-focus-shadow-rgb: 38,143,203;--bs-btn-active-color: #fff;--bs-btn-active-bg: #00629b;--bs-btn-active-border-color: #005c92;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #007bc2;--bs-btn-disabled-border-color: #007bc2}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #363636;--bs-btn-hover-border-color: #333;--bs-btn-focus-shadow-rgb: 93,93,93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #333;--bs-btn-active-border-color: #303030;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #404040;--bs-btn-disabled-border-color: #404040}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #00891a;--bs-btn-border-color: #00891a;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #007416;--bs-btn-hover-border-color: #006e15;--bs-btn-focus-shadow-rgb: 38,155,60;--bs-btn-active-color: #fff;--bs-btn-active-bg: #006e15;--bs-btn-active-border-color: #006714;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #00891a;--bs-btn-disabled-border-color: #00891a}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #03c7e8;--bs-btn-border-color: #03c7e8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #29cfeb;--bs-btn-hover-border-color: #1ccdea;--bs-btn-focus-shadow-rgb: 3,169,197;--bs-btn-active-color: #000;--bs-btn-active-bg: #35d2ed;--bs-btn-active-border-color: #1ccdea;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #03c7e8;--bs-btn-disabled-border-color: #03c7e8}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #f9b928;--bs-btn-border-color: #f9b928;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fac448;--bs-btn-hover-border-color: #fac03e;--bs-btn-focus-shadow-rgb: 212,157,34;--bs-btn-active-color: #000;--bs-btn-active-bg: #fac753;--bs-btn-active-border-color: #fac03e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f9b928;--bs-btn-disabled-border-color: #f9b928}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #c10000;--bs-btn-border-color: #c10000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #a40000;--bs-btn-hover-border-color: #9a0000;--bs-btn-focus-shadow-rgb: 202,38,38;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a0000;--bs-btn-active-border-color: #910000;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c10000;--bs-btn-disabled-border-color: #c10000}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f8f8;--bs-btn-border-color: #f8f8f8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d3d3;--bs-btn-hover-border-color: #c6c6c6;--bs-btn-focus-shadow-rgb: 211,211,211;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c6c6;--bs-btn-active-border-color: #bababa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f8f8;--bs-btn-disabled-border-color: #f8f8f8}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #202020;--bs-btn-border-color: #202020;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #414141;--bs-btn-hover-border-color: #363636;--bs-btn-focus-shadow-rgb: 65,65,65;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d4d4d;--bs-btn-active-border-color: #363636;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #202020;--bs-btn-disabled-border-color: #202020}.btn-outline-default{--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222,226,230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #007bc2;--bs-btn-border-color: #007bc2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #007bc2;--bs-btn-hover-border-color: #007bc2;--bs-btn-focus-shadow-rgb: 0,123,194;--bs-btn-active-color: #fff;--bs-btn-active-bg: #007bc2;--bs-btn-active-border-color: #007bc2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #007bc2;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #007bc2;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #404040;--bs-btn-hover-border-color: #404040;--bs-btn-focus-shadow-rgb: 64,64,64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #404040;--bs-btn-active-border-color: #404040;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #404040;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #404040;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #00891a;--bs-btn-border-color: #00891a;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #00891a;--bs-btn-hover-border-color: #00891a;--bs-btn-focus-shadow-rgb: 0,137,26;--bs-btn-active-color: #fff;--bs-btn-active-bg: #00891a;--bs-btn-active-border-color: #00891a;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #00891a;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #00891a;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #03c7e8;--bs-btn-border-color: #03c7e8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #03c7e8;--bs-btn-hover-border-color: #03c7e8;--bs-btn-focus-shadow-rgb: 3,199,232;--bs-btn-active-color: #000;--bs-btn-active-bg: #03c7e8;--bs-btn-active-border-color: #03c7e8;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #03c7e8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #03c7e8;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #f9b928;--bs-btn-border-color: #f9b928;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f9b928;--bs-btn-hover-border-color: #f9b928;--bs-btn-focus-shadow-rgb: 249,185,40;--bs-btn-active-color: #000;--bs-btn-active-bg: #f9b928;--bs-btn-active-border-color: #f9b928;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #f9b928;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f9b928;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #c10000;--bs-btn-border-color: #c10000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c10000;--bs-btn-hover-border-color: #c10000;--bs-btn-focus-shadow-rgb: 193,0,0;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c10000;--bs-btn-active-border-color: #c10000;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #c10000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c10000;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f8f8;--bs-btn-border-color: #f8f8f8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f8f8;--bs-btn-hover-border-color: #f8f8f8;--bs-btn-focus-shadow-rgb: 248,248,248;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f8f8;--bs-btn-active-border-color: #f8f8f8;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #f8f8f8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f8f8;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #202020;--bs-btn-border-color: #202020;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #202020;--bs-btn-hover-border-color: #202020;--bs-btn-focus-shadow-rgb: 32,32,32;--bs-btn-active-color: #fff;--bs-btn-active-bg: #202020;--bs-btn-active-border-color: #202020;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #202020;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #202020;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #707782;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38,143,203;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity 0.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 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width 0.35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #007bc2;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #707782;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343A46;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255,255,255,0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #007bc2;--bs-dropdown-link-disabled-color: #8D959E;--bs-dropdown-header-color: #8D959E}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n + 3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.5em;padding-left:1.5em}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(0,123,194,0.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #007bc2}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: .66rem;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2829,31,33,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:transparent !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme="dark"]{--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.55);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.75);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.25);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme="dark"] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: 8px;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(8px - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231D1F21'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2300314e'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #80bde1;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(0,123,194,0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: ;--bs-accordion-active-bg: }.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme="dark"] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b0da'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366b0da'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(0,123,194,0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #007bc2;--bs-pagination-active-border-color: #007bc2;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size:.875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size:.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:.75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #007bc2;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #007bc2;--bs-list-group-active-border-color: #007bc2;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(0,123,194,0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:3px;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme="dark"] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1.5rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: none;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: none;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform 0.3s ease-out;transform:translate(0, -50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #464646;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 10%;--bs-modal-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:.875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:.875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="top"]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="right"]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="bottom"]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^="left"]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme="dark"] .carousel .carousel-control-prev-icon,[data-bs-theme="dark"] .carousel .carousel-control-next-icon,[data-bs-theme="dark"].carousel .carousel-control-prev-icon,[data-bs-theme="dark"].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target],[data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme="dark"] .carousel .carousel-caption,[data-bs-theme="dark"].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:transparent !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#464646}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0,0,0,0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#000 !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(229,232,235, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(229,232,235, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(0,98,155, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0,98,155, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(51,51,51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(51,51,51, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(0,110,21, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0,110,21, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(53,210,237, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(53,210,237, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(250,199,83, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(250,199,83, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(154,0,0, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154,0,0, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249,249,249, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249,249,249, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(26,26,26, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(26,26,26, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:0.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio: calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio: calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08) !important}.shadow-sm{box-shadow:0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16) !important}.shadow-lg{box-shadow:0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.335rem + 1.02vw) !important}.fs-2{font-size:calc(1.325rem + .9vw) !important}.fs-3{font-size:calc(1.3rem + .6vw) !important}.fs-4{font-size:calc(1.275rem + .3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,0.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,0.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: .1}.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25{--bs-link-opacity: .25}.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50{--bs-link-opacity: .5}.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75{--bs-link-opacity: .75}.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: .1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25{--bs-link-underline-opacity: .25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50{--bs-link-underline-opacity: .5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75{--bs-link-underline-opacity: .75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media (min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media (min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media (min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media (min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#000}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#000}.bg-warning{color:#000}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media (min-width: 1200px){.fs-1{font-size:2.1rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.table th[align=left]{text-align:left}.table th[align=right]{text-align:right}.table th[align=center]{text-align:center}:root{--bslib-spacer: 1.5rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre,.bslib-gap-spacing>.shiny-html-output>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-html-output>.form-group,.bslib-gap-spacing>.shiny-html-output>p,.bslib-gap-spacing>.shiny-html-output>pre,.bslib-gap-spacing>.shiny-panel-conditional>.bslib-mb-spacing,.bslib-gap-spacing>.shiny-panel-conditional>.form-group,.bslib-gap-spacing>.shiny-panel-conditional>p,.bslib-gap-spacing>.shiny-panel-conditional>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #007bc2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #007bc2;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #4b00c1;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #4b00c1;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #74149c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #74149c;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #bf007f;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #bf007f;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #c10000;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #c10000;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #f45100;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #f45100;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #f9b928;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #f9b928;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #00891a;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #00891a;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #00bf7f;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #00bf7f;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #03c7e8;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #03c7e8;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #dee2e6}.bg-default{--bslib-color-bg: #dee2e6;--bslib-color-fg: #000}.text-primary{--bslib-color-fg: #007bc2}.bg-primary{--bslib-color-bg: #007bc2;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #404040}.bg-secondary{--bslib-color-bg: #404040;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #00891a}.bg-success{--bslib-color-bg: #00891a;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #03c7e8}.bg-info{--bslib-color-bg: #03c7e8;--bslib-color-fg: #000}.text-warning{--bslib-color-fg: #f9b928}.bg-warning{--bslib-color-bg: #f9b928;--bslib-color-fg: #000}.text-danger{--bslib-color-fg: #c10000}.bg-danger{--bslib-color-bg: #c10000;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #f8f8f8}.bg-light{--bslib-color-bg: #f8f8f8;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #202020}.bg-dark{--bslib-color-bg: #202020;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #1e4ac2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e4ac2;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2e52b3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e52b3;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #4c4aa7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c4aa7;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #4d4a74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d4a74;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #626a74;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #626a74;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #000;--bslib-color-bg: #649484;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #649484;color:#000}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #00817f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #00817f;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #000;--bslib-color-bg: #0096a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #0096a7;color:#000}.bg-gradient-blue-cyan{--bslib-color-fg: #000;--bslib-color-bg: #0199d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #007bc2 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #0199d1;color:#000}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #2d31c1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #2d31c1;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #5b08b2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #5b08b2;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7900a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #7900a7;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #7a0074;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #7a0074;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #8f2074;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #8f2074;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #914a84;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #914a84;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #2d377e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #2d377e;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #2d4ca7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #2d4ca7;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #2e50d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #4b00c1 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #2e50d1;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #463dab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #463dab;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #640cab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #640cab;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #920c90;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #920c90;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #930c5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #930c5e;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #a72c5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #a72c5e;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a9566e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #a9566e;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #464368;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #464368;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #465890;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #465890;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #475cba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #74149c var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #475cba;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #73319a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #73319a;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #910099;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #910099;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #a1088b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #a1088b;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #c0004c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #c0004c;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #d4204c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #d4204c;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #000;--bslib-color-bg: #d64a5c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #d64a5c;color:#000}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #733757;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #733757;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #734c7f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #734c7f;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #7450a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #bf007f var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #7450a9;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #74314e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #74314e;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #92004d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #92004d;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #a2083e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #a2083e;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #c00033;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #c00033;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #d52000;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #d52000;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #000;--bslib-color-bg: #d74a10;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #d74a10;color:#000}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #74370a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #74370a;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #744c33;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #744c33;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #75505d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #c10000 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #75505d;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #92624e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #92624e;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b0314d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #b0314d;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c1393e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #c1393e;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #df3133;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #df3133;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #e03100;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #e03100;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #f67b10;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #f67b10;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #fff;--bslib-color-bg: #92670a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #92670a;color:#fff}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #927d33;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #927d33;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #000;--bslib-color-bg: #94805d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f45100 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #94805d;color:#000}.bg-gradient-yellow-blue{--bslib-color-fg: #000;--bslib-color-bg: #95a066;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #95a066;color:#000}.bg-gradient-yellow-indigo{--bslib-color-fg: #000;--bslib-color-bg: #b36f65;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #b36f65;color:#000}.bg-gradient-yellow-purple{--bslib-color-fg: #000;--bslib-color-bg: #c47756;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #c47756;color:#000}.bg-gradient-yellow-pink{--bslib-color-fg: #000;--bslib-color-bg: #e26f4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #e26f4b;color:#000}.bg-gradient-yellow-red{--bslib-color-fg: #000;--bslib-color-bg: #e36f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #e36f18;color:#000}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #f78f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #f78f18;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #000;--bslib-color-bg: #95a622;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #95a622;color:#000}.bg-gradient-yellow-teal{--bslib-color-fg: #000;--bslib-color-bg: #95bb4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #95bb4b;color:#000}.bg-gradient-yellow-cyan{--bslib-color-fg: #000;--bslib-color-bg: #97bf75;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f9b928 var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #97bf75;color:#000}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #00835d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #00835d;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #1e525d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e525d;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2e5a4e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e5a4e;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #4c5242;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c5242;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #4d5210;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d5210;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #fff;--bslib-color-bg: #627310;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #627310;color:#fff}.bg-gradient-green-yellow{--bslib-color-fg: #000;--bslib-color-bg: #649c20;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #649c20;color:#000}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #009f42;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #009f42;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #000;--bslib-color-bg: #01a26c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00891a var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #01a26c;color:#000}.bg-gradient-teal-blue{--bslib-color-fg: #000;--bslib-color-bg: #00a49a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #00a49a;color:#000}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #1e7399;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #1e7399;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #2e7b8b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #2e7b8b;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #4c737f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4c737f;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #4d734c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4d734c;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #62934c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #62934c;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #000;--bslib-color-bg: #64bd5c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #64bd5c;color:#000}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #00a957;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #00a957;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #000;--bslib-color-bg: #01c2a9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #00bf7f var(--bg-gradient-start, 36%), #03c7e8 var(--bg-gradient-end, 180%)) #01c2a9;color:#000}.bg-gradient-cyan-blue{--bslib-color-fg: #000;--bslib-color-bg: #02a9d9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #007bc2 var(--bg-gradient-end, 180%)) #02a9d9;color:#000}.bg-gradient-cyan-indigo{--bslib-color-fg: #000;--bslib-color-bg: #2077d8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #4b00c1 var(--bg-gradient-end, 180%)) #2077d8;color:#000}.bg-gradient-cyan-purple{--bslib-color-fg: #000;--bslib-color-bg: #307fca;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #74149c var(--bg-gradient-end, 180%)) #307fca;color:#000}.bg-gradient-cyan-pink{--bslib-color-fg: #000;--bslib-color-bg: #4e77be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #bf007f var(--bg-gradient-end, 180%)) #4e77be;color:#000}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #4f778b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #c10000 var(--bg-gradient-end, 180%)) #4f778b;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #000;--bslib-color-bg: #63988b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #f45100 var(--bg-gradient-end, 180%)) #63988b;color:#000}.bg-gradient-cyan-yellow{--bslib-color-fg: #000;--bslib-color-bg: #65c19b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #f9b928 var(--bg-gradient-end, 180%)) #65c19b;color:#000}.bg-gradient-cyan-green{--bslib-color-fg: #000;--bslib-color-bg: #02ae96;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #00891a var(--bg-gradient-end, 180%)) #02ae96;color:#000}.bg-gradient-cyan-teal{--bslib-color-fg: #000;--bslib-color-bg: #02c4be;background:linear-gradient(var(--bg-gradient-deg, 140deg), #03c7e8 var(--bg-gradient-start, 36%), #00bf7f var(--bg-gradient-end, 180%)) #02c4be;color:#000}.irs.irs--shiny{margin-top:3px}.irs.irs--shiny .irs-min,.irs.irs--shiny .irs-max,.irs.irs--shiny .irs-from,.irs.irs--shiny .irs-to,.irs.irs--shiny .irs-single{padding:3px 6px;top:-3px}.irs.irs--shiny .irs-handle{top:23px}.irs.irs--shiny .irs-bar{top:31px;height:3px;border:none}.irs.irs--shiny .irs-line{border-radius:8px}.irs.irs--shiny .irs-grid-pol{height:6px}.irs.irs--shiny .irs-grid-text{bottom:8px}.irs.irs--shiny .irs-handle:focus-visible,.irs.irs--shiny .irs-handle:active{color:#005688;background-color:#005688;border-color:#005688;outline:0;box-shadow:0 0 0 .25rem rgba(0,123,194,0.25)}.irs.irs--shiny~.slider-animate-container{text-align:left}.irs.irs--shiny~.slider-animate-container .slider-animate-button{opacity:1}.irs.irs--shiny.irs-with-grid~.slider-animate-container{margin-top:-5px}.irs.irs--shiny:not(.irs-with-grid)~.slider-animate-container{margin-top:5px}.table.dataTable{--dt-row-selected: var(--bs-primary-rgb, "0,123,194");--dt-row-selected-text: var(--bs-white-rgb, "255,255,255");--dt-row-selected-link: var(--bs-light-rgh, "248,248,248")}.table.dataTable.dataTable.table-striped>tbody>tr.odd:not(.selected)>*{box-shadow:none}.table.dataTable.dataTable.table-striped>tbody>tr.even:not(.selected)>*{box-shadow:inset 0 0 0 9999px var(--bs-table-striped-bg)}.table.dataTable.dataTable tbody td.active,.table.dataTable.dataTable tbody tr.active td{background-color:var(--bs-table-active-bg)}.table.dataTable.dataTable.table-hover>tbody>tr:hover:not(.selected)>*{box-shadow:inset 0 0 0 9999px var(--bs-table-hover-bg)}thead,tbody,tfoot,tr,td,th{border:none}.table>thead{border-bottom:1px solid var(--bs-table-color)}th{font-weight:600}.datatables .dataTables_wrapper div.dataTables_info{padding-top:1.65rem;font-size:.95rem}.datatables .dataTables_paginate{padding-top:1rem}.datatables .paginate_button a{font-size:.95rem}.datatables .dataTables_length,.datatables .dataTables_filter{padding-bottom:1rem}.datatables .dataTables_wrapper .dt-row{max-width:100%;overflow:auto}.datatables .dataTables_wrapper .dataTables_length select,.datatables .dataTables_wrapper .dataTables_filter input{border:none;border-bottom:1px solid var(--bs-body-color);border-radius:0}.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper{font-size:85%}.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_length,.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_filter,.bslib-card-table-sm.bslib-card[data-full-screen="false"] .datatables .dataTables_wrapper .dataTables_paginate{display:none}:root{--bslib-box-shadow-color-rgb: 29,31,33}[data-bs-theme="dark"]{--bslib-box-shadow-color-rgb: 0,0,0}.checkbox input,.radio input{margin-right:.35em}.shiny-input-container-inline .shiny-options-group{display:flex;flex-wrap:wrap;flex-direction:row;column-gap:1em}.shiny-input-container-inline .shiny-options-group .checkbox-inline,.shiny-input-container-inline .shiny-options-group .radio-inline{position:relative;padding-left:calc(1.2em + .35em * 2)}.shiny-input-container-inline .shiny-options-group .checkbox-inline input,.shiny-input-container-inline .shiny-options-group .radio-inline input{position:absolute;margin-top:0;left:0;top:calc(.15em + var(--bs-border-width))}.shiny-date-range-input .input-daterange .input-group-addon{margin-right:-1px}.btn-outline-default,.btn-default:not(.btn-primary,.btn-secondary,.btn-info,.btn-success,.btn-danger,.btn-warning,.btn-light,.btn-dark,.btn-link,[class*="btn-outline-"]){--bs-btn-color: #404040;--bs-btn-border-color: #404040;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #404040;--bs-btn-hover-border-color: #404040;--bs-btn-focus-shadow-rgb: 64,64,64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #404040;--bs-btn-active-border-color: #404040;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #404040;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #404040;--bs-btn-bg: transparent;--bs-gradient: none}[data-bs-theme="dark"] .btn-outline-default,[data-bs-theme="dark"] .btn-default:not(.btn-primary,.btn-secondary,.btn-info,.btn-success,.btn-danger,.btn-warning,.btn-light,.btn-dark,.btn-link,[class*="btn-outline-"]){--bs-btn-color: #dee2e6;--bs-btn-border-color: #dee2e6;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #dee2e6;--bs-btn-hover-border-color: #dee2e6;--bs-btn-focus-shadow-rgb: 222,226,230;--bs-btn-active-color: #000;--bs-btn-active-bg: #dee2e6;--bs-btn-active-border-color: #dee2e6;--bs-btn-active-shadow: inset 0 3px 5px rgba(0,0,0,0.125);--bs-btn-disabled-color: #dee2e6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dee2e6;--bs-btn-bg: transparent;--bs-gradient: none}.selectize-control.plugin-remove_button .item{align-items:flex-start !important}.selectize-control.plugin-remove_button .item .remove{border-left:none !important}.bslib-card{box-shadow:var(--bslib-card-box-shadow, 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16));border-color:var(--bslib-card-border-color, transparent)}.bslib-card.bslib-value-box.default{--bslib-value-box-border-color-default: var(--bslib-card-border-color, transparent)}.bslib-card .bslib-card{--bslib-card-box-shadow: ;--bslib-card-border-color: var(--bs-card-border-color)}.bslib-card .bslib-card.bslib-value-box.default{--bslib-value-box-border-color-default: var(--bs-card-border-color, var(--bs-border-color-translucent))}.bslib-card-box-shadow-sm{--bslib-card-box-shadow: var(--bslib-card-box-shadow-sm, 0px 0px 2px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.14),0px 2px 4px 0px RGBA(var(--bslib-box-shadow-color-rgb), 0.16))}.bslib-card-box-shadow-md{--bslib-card-box-shadow: var(--bslib-card-box-shadow-md, 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08))}.bslib-card-box-shadow-lg{--bslib-card-box-shadow: var(--bslib-card-box-shadow-lg, 0px 4px 10px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.17))}.bslib-card-box-shadow-none{--bslib-card-box-shadow: none;--bslib-card-border-color: var(--bs-card-border-color)}.popover{--bs-popover-shadow: 0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08);box-shadow:var(--bs-popover-shadow)}:root{--bslib-dashboard-sidebar-bg: var(--bs-body-bg);--bslib-dashboard-sidebar-main-bg: var(--bs-body-bg);--bslib-dashboard-main-bg: rgb(247, 247, 247);--bs-card-border-color: var(--bslib-dashboard-border-color-translucent, var(--bs-border-color-translucent));--bslib-dashboard-card-cap-bg: var(--bs-body-bg);--bslib-dashboard-card-header-font-weight: 600;--bslib-sidebar-bg: var(--bs-body-bg);--bslib-sidebar-fg: var(--bs-color)}[data-bs-theme="dark"]{--bslib-dashboard-main-bg: rgb(20, 20, 24)}.bslib-card{--bs-card-cap-bg: var(--bslib-dashboard-card-cap-bg)}.bslib-card .card-header,.bslib-card .card-footer{font-size:0.9rem}.bslib-card .card-header{font-weight:var(--bslib-dashboard-card-header-font-weight);line-height:1.375rem}.bslib-page-dashboard,.main:has(.tab-content>.bslib-page-dashboard.active){background-color:var(--bslib-dashboard-main-bg);--_main-bg: var(--bslib-dashboard-main-bg)}.bslib-page-navbar>.navbar,.bslib-page-dashboard>.navbar{--bslib-navbar-default-bg: var(--bs-body-bg);--bslib-navbar-inverse-bg: var(--bs-body-color)}.bslib-page-navbar>.navbar+div,.bslib-page-dashboard>.navbar+div{border-top:var(--bs-border-width) solid var(--bs-border-color-translucent)}.bslib-page-navbar>.navbar+div>.bslib-sidebar-layout,.bslib-page-navbar>.navbar+div>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout.html-fill-item,.bslib-page-dashboard>.navbar+div>.bslib-sidebar-layout,.bslib-page-dashboard>.navbar+div>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout.html-fill-item{border-top:none !important}.bslib-page-sidebar{--bslib-page-sidebar-title-bg: var(--bs-body-bg);--bslib-page-sidebar-title-color: var(--bs-body-color)}.bslib-page-sidebar .bslib-page-title{border-color:var(--bs-border-color-translucent)}.nav-underline{--bs-link-color: rgba(var(--bs-body-color-rgb), 0.65);--bs-link-hover-color: rgba(var(--bs-body-color-rgb), 0.8);--bs-nav-link-font-size: 0.875rem}.nav-underline .nav-link{padding-left:5px !important;padding-right:5px !important}.nav-underline .nav-link.active{font-weight:500}.navbar-collapse.show .nav-underline,.navbar-collapse.collapsing .nav-underline{--bs-nav-underline-border-width: 0;--bs-nav-underline-gap: 0}.navbar .nav-underline .nav-link{padding-bottom:calc(var(--bs-navbar-padding-y, .5rem) * 2);margin-bottom:calc(var(--bs-navbar-padding-y, .5rem) * -1)}.bslib-value-box.default .value-box-showcase>i.bi{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fa{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fas{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.far{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.fab{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>i.material-icons{background:linear-gradient(140deg, #007bc2 36%, #74149c 180%) #007bc2;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bslib-value-box.default .value-box-showcase>svg.bi{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fa{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fas{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.far{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.fab{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.default .value-box-showcase>svg.material-icons{fill:url("#bslib---icon-gradient") #007bc2 !important}.bslib-value-box.text-info{color:#028097 !important}.bslib-value-box.text-info,.bslib-value-box.text-info.text-cyan{--bslib-color-fg: $cyan !important}.bslib-value-box.text-light{--bslib-color-fg: $gray-600 !important}.bslib-value-box.text-warning{color:#A87600 !important}.bslib-value-box.text-warning,.bslib-value-box.text-warning.text-yellow{--bslib-color-fg: $warning !important}.bslib-value-box.text-teal.text-teal{--bslib-color-fg: #008558}.modal-body,.modal-footer{padding:1.5rem}.modal-header .btn-close{align-self:start;display:flex}#shiny-modal-wrapper:has(~.modal-backdrop) .modal{backdrop-filter:blur(2px)}#shiny-notification-panel#shiny-notification-panel{position:fixed;bottom:calc(var(--bslib-spacer, 1rem) / 2);right:calc(var(--bslib-spacer, 1rem) / 2);width:450px;z-index:1090}.progress-message{margin-right:.6rem}.shiny-notification.shiny-notification{position:relative;opacity:0.96;padding:2rem;margin:var(--bslib-spacer, 1rem);border:1px solid var(--bs-border-color-translucent);border-radius:8px;box-shadow:0px 1px 2px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 3px 7px RGBA(var(--bslib-box-shadow-color-rgb), 0.1),0px 12px 30px RGBA(var(--bslib-box-shadow-color-rgb), 0.08)}.shiny-notification.shiny-notification .shiny-notification-close{position:absolute;font-size:1.5em;width:2rem;height:2rem;top:0;right:0;bottom:unset;display:flex;align-items:center;justify-content:center;padding:0.25rem;cursor:pointer;font-weight:200;color:currentColor}.shiny-notification.shiny-notification .shiny-notification-close:hover{font-weight:normal}.shiny-notification.shiny-notification .shiny-notification-content-text :last-child{margin-bottom:0}.row>main{max-width:50rem}@media (min-width: 1200px) and (max-width: 1399.98px){.container .row{justify-content:space-evenly}}@media (min-width: 1400px){body{font-size:18px}.col-md-3{margin-left:5rem}}.navbar-nav .nav-item>.nav-link{border-radius:3px;padding:0.5rem}.navbar>.container{align-items:baseline;-webkit-align-items:baseline}.navbar-light .navbar-nav .active>.nav-link{background:#e9ecef;color:#1D1F21}.navbar-dark .navbar-nav .active>.nav-link{background:#343A46;color:#fff}.navbar-dark .navbar-nav .nav-item>.nav-link:hover,.navbar-light .navbar-nav .nav-item>.nav-link:hover{background:rgba(0,123,194,0.1)}.navbar-dark input[type="search"]{border-color:#707782;background-color:#1D1F21;color:#e9ecef}input[type="search"]{border-color:#dee2e6;width:12rem}.headroom{will-change:transform;transition:transform 400ms ease}.headroom--pinned{transform:translateY(0%)}.headroom--unpinned{transform:translateY(-100%)}.row>main,.row>aside{margin-top:56px}html,body{scroll-padding:56px}@media (min-width: 576px){#toc{position:sticky;top:56px;max-height:calc(100vh - 56px - 1rem);overflow-y:auto}}aside h2,aside .h2{margin-top:1.5rem;font-size:1.25rem}aside .roles{color:#4a4c4d}aside .list-unstyled li{margin-bottom:0.5rem}aside .dev-status .list-unstyled li{margin-bottom:0.1rem}@media (max-width: 575.98px){aside{margin:0.5rem;width:calc(100vw - 1rem);background-color:#f8f8f8;border-color:#dee2e6;border-radius:3px}aside h2:first-child,aside .h2:first-child{margin-top:1rem}}body{position:relative}#toc>.nav{margin-bottom:1rem}#toc>.nav a.nav-link{color:inherit;padding:0.25rem 0.5rem;margin-bottom:2px;border-radius:3px;border:0 solid #dee2e6}#toc>.nav a.nav-link:hover,#toc>.nav a.nav-link:focus{background-color:rgba(0,123,194,0.1);color:#000}#toc>.nav a.nav-link.active{background-color:#e8e9e9;color:#000}#toc>.nav .nav a.nav-link{margin-left:0.5rem}#toc>.nav .nav{display:none !important}#toc>.nav a.active+.nav{display:flex !important}footer{margin:1rem 0 1rem 0;font-size:.875em;border-top:1px solid #dee2e6;background:rgba(0,0,0,0);color:#4a4c4d;display:flex;column-gap:1rem}@media (max-width: 575.98px){footer{flex-direction:column}}@media (min-width: 576px){footer .pkgdown-footer-right{text-align:right}}footer div{flex:1 1 auto}html,body{height:100%}body>.container{min-height:100%;display:flex;flex-direction:column}body>.container .row{flex:1 0 auto}::selection{background-color:#cce5f3}main img{max-width:100%;height:auto}main table{display:block;overflow:auto}body{font-display:fallback}.page-header{border-bottom:1px solid #dee2e6;padding-bottom:0.5rem;margin-bottom:0.5rem;margin-top:1.5rem}dd{margin-left:1.5rem}summary{margin-bottom:0.5rem}details{margin-bottom:1rem}.html-widget{margin-bottom:1rem}a.anchor{display:none;margin-left:5px;width:Min(0.9em, 20px);height:Min(0.9em, 20px);background-image:url(../../link.svg);background-repeat:no-repeat;background-size:Min(0.9em, 20px) Min(0.9em, 20px);background-position:center center}h2:hover .anchor,.h2:hover .anchor,h3:hover .anchor,.h3:hover .anchor,h4:hover .anchor,.h4:hover .anchor,h5:hover .anchor,.h5:hover .anchor,h6:hover .anchor,.h6:hover .anchor{display:inline-block}.orcid{color:#A6CE39;margin-right:4px}.fab{font-family:"Font Awesome 5 Brands" !important}img.logo{float:right;width:100px;margin-left:30px}.template-home img.logo{width:120px}@media (max-width: 575.98px){img.logo{width:80px}}@media (min-width: 576px){.page-header{min-height:88px}.template-home .page-header{min-height:104px}}.line-block{margin-bottom:1rem}.template-reference-index dt{font-weight:normal}.template-reference-index code{word-wrap:normal}.icon{float:right}.icon img{width:40px}a.footnote-ref{cursor:pointer}.popover{width:Min(100vw, 32rem);font-size:0.9rem;box-shadow:4px 4px 8px rgba(0,0,0,0.3)}.popover-body{padding:0.75rem}.popover-body p:last-child{margin-bottom:0}.tab-content{padding:1rem}.tabset-pills .tab-content{border:solid 1px #e5e5e5}.tab-content{display:flex}.tab-content>.tab-pane{display:block;visibility:hidden;margin-right:-100%;width:100%}.tab-content>.active{visibility:visible}div.csl-entry{clear:both}.hanging-indent div.csl-entry{margin-left:2em;text-indent:-2em}div.csl-left-margin{min-width:2em;float:left}div.csl-right-inline{margin-left:2em;padding-left:1em}div.csl-indent{margin-left:2em}pre,pre code{word-wrap:normal}code{overflow-wrap:break-word}.hasCopyButton{position:relative}.btn-copy-ex{position:absolute;right:5px;top:5px;visibility:hidden}.hasCopyButton:hover button.btn-copy-ex{visibility:visible}pre{padding:1rem 0.5rem}@media (max-width: 575.98px){div>div>pre{margin-left:calc(var(--bs-gutter-x) * -.5);margin-right:calc(var(--bs-gutter-x) * -.5);border-radius:0;padding-left:1rem;padding-right:1rem}.btn-copy-ex{right:calc(var(--bs-gutter-x) * -.5 + 5px)}}code a:any-link{color:inherit;text-decoration-color:#707782}pre code{padding:0;background:transparent}pre code .error,pre code .warning{font-weight:bolder}pre .img img,pre .r-plt img{margin:5px 0;background-color:#fff}@media print{code a:link:after,code a:visited:after{content:""}}a.sourceLine:hover{text-decoration:none}mark,.mark{background:linear-gradient(-100deg, rgba(3,199,232,0.2), rgba(3,199,232,0.7) 95%, rgba(3,199,232,0.1))}.algolia-autocomplete .aa-hint{color:#1D1F21}.algolia-autocomplete .aa-dropdown-menu{width:Max(100%, 20rem);background-color:#fff;border:1px solid var(--bs-border-color);margin-top:2px;max-height:50vh;overflow-y:auto}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion{cursor:pointer;padding:5px 4px;border-bottom:1px #e9ecef solid;font-size:0.9rem;color:#1D1F21}.search-details{font-size:0.9rem;color:#007bc2;display:inline;font-weight:bolder}.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor{background-color:#e6f2f9}pre{background-color:#f1f3f5}pre code{color:#003B4F}pre code span.al{color:#AD0000}pre code span.an{color:#5E5E5E}pre code span.at{color:#657422}pre code span.bn{color:#AD0000}pre code span.cf{color:#003B4F}pre code span.ch{color:#20794D}pre code span.cn{color:#8f5902}pre code span.co{color:#5E5E5E}pre code span.cv{color:#5E5E5E;font-style:italic}pre code span.do{color:#5E5E5E;font-style:italic}pre code span.dt{color:#AD0000}pre code span.dv{color:#AD0000}pre code span.er{color:#AD0000}pre code span.fl{color:#AD0000}pre code span.fu{color:#4758AB}pre code span.im{color:#00769E}pre code span.in{color:#5E5E5E}pre code span.kw{color:#003B4F}pre code span.op{color:#5E5E5E}pre code span.ot{color:#003B4F}pre code span.pp{color:#AD0000}pre code span.sc{color:#5E5E5E}pre code span.ss{color:#20794D}pre code span.st{color:#20794D}pre code span.va{color:#111111}pre code span.vs{color:#20794D}pre code span.wa{color:#5E5E5E;font-style:italic} diff --git a/docs/deps/data-deps.txt b/docs/deps/data-deps.txt index 0448690..693b82d 100644 --- a/docs/deps/data-deps.txt +++ b/docs/deps/data-deps.txt @@ -2,5 +2,3 @@ - - diff --git a/docs/index.html b/docs/index.html index 62166ed..74f4b10 100644 --- a/docs/index.html +++ b/docs/index.html @@ -9,9 +9,7 @@ Bayesian Multiniomial Logisic Normal Models (really fast) β€’ fido - - - + @@ -21,10 +19,10 @@ - Skip to content + Skip to contents -

R-CMD-check License

@@ -136,6 +134,7 @@

Bugs/Feature requests

-
- -
- + +
+ + + + + + diff --git a/docs/news/index.html b/docs/news/index.html index b63aadc..06d4a7b 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -1,12 +1,12 @@ -Changelog β€’ fidoChangelog β€’ fido - Skip to content + Skip to contents -
-

fido 1.0.2

+

fido 1.0.2

CRAN release: 2022-07-06

bug fixes

  • Removing a timing test because it is irrelevant and can fail under certain set-ups.
-

fido 1.0.1

+

fido 1.0.1

CRAN release: 2022-05-17

bug fixes

  • Changing phyloseq from imports to depends, was causing issues installing from CRAN.
  • Fixing bug in configure.ac that was causing openmp parallelization to not work on some machines.
-

fido 1.0.0

+

fido 1.0.0

CRAN release: 2022-02-16

More changes to make the final push for CRAN! Changes include:

  • Updating the description file to match CRAN’s standards
  • Removing the dependency to driver
  • @@ -131,9 +131,7 @@

    fido 0.1.10

-
- +
+ + + + + + diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 69d437e..acc2509 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -7,7 +7,7 @@ articles: non-linear-models: non-linear-models.html orthus: orthus.html picking_priors: picking_priors.html -last_built: 2024-05-03T19:29Z +last_built: 2024-05-06T14:40Z urls: reference: https://jsilve24.github.io/fido/reference article: https://jsilve24.github.io/fido/articles diff --git a/docs/reference/Y.html b/docs/reference/Y.html index 638fb51..499322c 100644 --- a/docs/reference/Y.html +++ b/docs/reference/Y.html @@ -1,14 +1,14 @@ Data from Silverman et al. (2019) bioRxiv β€” Y β€’ fidoData from Silverman et al. (2019) bioRxiv β€” Y β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/access_dims.html b/docs/reference/access_dims.html index 86e441c..6a567d7 100644 --- a/docs/reference/access_dims.html +++ b/docs/reference/access_dims.html @@ -1,12 +1,12 @@ -Generic method for accessing model fit dimensions β€” ncategories.pibblefit β€’ fidoGeneric method for accessing model fit dimensions β€” ncategories.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/alr.html b/docs/reference/alr.html index 91ea1e3..2b56fcc 100644 --- a/docs/reference/alr.html +++ b/docs/reference/alr.html @@ -1,12 +1,12 @@ -Compute the ALR of a matrix β€” alr β€’ fidoCompute the ALR of a matrix β€” alr β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/alrInv.html b/docs/reference/alrInv.html index f455021..5359c9a 100644 --- a/docs/reference/alrInv.html +++ b/docs/reference/alrInv.html @@ -1,12 +1,12 @@ -Compute the inverse ALR of a matrix β€” alrInv β€’ fidoCompute the inverse ALR of a matrix β€” alrInv β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/alrInv_array.html b/docs/reference/alrInv_array.html index 9b1b871..3810b65 100644 --- a/docs/reference/alrInv_array.html +++ b/docs/reference/alrInv_array.html @@ -1,12 +1,12 @@ -Compute the ALR of an array β€” alrInv_array β€’ fidoCompute the ALR of an array β€” alrInv_array β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/alr_array.html b/docs/reference/alr_array.html index 9009229..860aa22 100644 --- a/docs/reference/alr_array.html +++ b/docs/reference/alr_array.html @@ -1,12 +1,12 @@ -Compute the ALR of an array β€” alr_array β€’ fidoCompute the ALR of an array β€” alr_array β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/as.list.orthusfit.html b/docs/reference/as.list.orthusfit.html index 3ba2f8f..ff6157b 100644 --- a/docs/reference/as.list.orthusfit.html +++ b/docs/reference/as.list.orthusfit.html @@ -1,12 +1,12 @@ -Convert object of class orthusfit to a list β€” as.list.orthusfit β€’ fidoConvert object of class orthusfit to a list β€” as.list.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/as.list.pibblefit.html b/docs/reference/as.list.pibblefit.html index 5f78f72..8049ac8 100644 --- a/docs/reference/as.list.pibblefit.html +++ b/docs/reference/as.list.pibblefit.html @@ -1,12 +1,12 @@ -Convert object of class pibblefit to a list β€” as.list.pibblefit β€’ fidoConvert object of class pibblefit to a list β€” as.list.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/as.orthusfit.html b/docs/reference/as.orthusfit.html index 840be3e..9c8aea9 100644 --- a/docs/reference/as.orthusfit.html +++ b/docs/reference/as.orthusfit.html @@ -1,12 +1,12 @@ -convert list to orthusfit β€” as.orthusfit β€’ fidoconvert list to orthusfit β€” as.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/as.pibblefit.html b/docs/reference/as.pibblefit.html index b856af0..7604178 100644 --- a/docs/reference/as.pibblefit.html +++ b/docs/reference/as.pibblefit.html @@ -1,12 +1,12 @@ -convert list to pibblefit β€” as.pibblefit β€’ fidoconvert list to pibblefit β€” as.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/basset_fit.html b/docs/reference/basset_fit.html index 703449a..e1cb106 100644 --- a/docs/reference/basset_fit.html +++ b/docs/reference/basset_fit.html @@ -1,12 +1,12 @@ -Interface to fit basset models β€” basset_fit β€’ fidoInterface to fit basset models β€” basset_fit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/check_dims.html b/docs/reference/check_dims.html index ac0664a..de56173 100644 --- a/docs/reference/check_dims.html +++ b/docs/reference/check_dims.html @@ -1,12 +1,12 @@ -Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims β€’ fidoCheck vector/matrix/data.frame for expected dimensions or throw error β€” check_dims β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/clr_array.html b/docs/reference/clr_array.html index 46dfb51..1e6a672 100644 --- a/docs/reference/clr_array.html +++ b/docs/reference/clr_array.html @@ -1,12 +1,12 @@ -Compute the CLR of an array β€” clr_array β€’ fidoCompute the CLR of an array β€” clr_array β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/coef.orthusfit.html b/docs/reference/coef.orthusfit.html index 682d52a..7807dc3 100644 --- a/docs/reference/coef.orthusfit.html +++ b/docs/reference/coef.orthusfit.html @@ -1,14 +1,14 @@ Return regression coefficients of orthus object β€” coef.orthusfit β€’ fidoReturn regression coefficients of orthus object β€” coef.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/coef.pibblefit.html b/docs/reference/coef.pibblefit.html index 11bfcd9..0c9d10c 100644 --- a/docs/reference/coef.pibblefit.html +++ b/docs/reference/coef.pibblefit.html @@ -1,14 +1,14 @@ Return regression coefficients of pibblefit object β€” coef.pibblefit β€’ fidoReturn regression coefficients of pibblefit object β€” coef.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/conjugateLinearModel.html b/docs/reference/conjugateLinearModel.html index b2144d4..09eb15a 100644 --- a/docs/reference/conjugateLinearModel.html +++ b/docs/reference/conjugateLinearModel.html @@ -1,16 +1,16 @@ Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel β€’ fidoSolve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/convert_orthus_covariance.html b/docs/reference/convert_orthus_covariance.html index 3f7df64..609b4c1 100644 --- a/docs/reference/convert_orthus_covariance.html +++ b/docs/reference/convert_orthus_covariance.html @@ -1,12 +1,12 @@ -Convert orthus covariance matricies between representations β€” convert_orthus_covariance β€’ fidoConvert orthus covariance matricies between representations β€” convert_orthus_covariance β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/create_default_ilr_base.html b/docs/reference/create_default_ilr_base.html index c67d665..23ffe73 100644 --- a/docs/reference/create_default_ilr_base.html +++ b/docs/reference/create_default_ilr_base.html @@ -1,12 +1,12 @@ -Create a default ILR base β€” create_default_ilr_base β€’ fidoCreate a default ILR base β€” create_default_ilr_base β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/fido_package.html b/docs/reference/fido_package.html index 9a16a0c..e5af957 100644 --- a/docs/reference/fido_package.html +++ b/docs/reference/fido_package.html @@ -1,16 +1,16 @@ fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package β€’ fidofido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package β€’ fido - Skip to content + Skip to contents -
+
+

See also

+ +
+
+

Author

+

Maintainer: Michelle Nixon pistner@psu.edu [contributor]

+

Authors:

Other contributors:

-
+
-
- +
+ + + + + + diff --git a/docs/reference/fido_transforms.html b/docs/reference/fido_transforms.html index 5c031ea..458dd9a 100644 --- a/docs/reference/fido_transforms.html +++ b/docs/reference/fido_transforms.html @@ -1,16 +1,16 @@ Transform Fit fido Parameters to other representations β€” fido_transforms β€’ fidoTransform Fit fido Parameters to other representations β€” fido_transforms β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/gather_array.html b/docs/reference/gather_array.html index 3b7a4ab..54fbc81 100644 --- a/docs/reference/gather_array.html +++ b/docs/reference/gather_array.html @@ -1,12 +1,12 @@ -Gather Multidimensional Array to Tidy Tibble β€” gather_array β€’ fidoGather Multidimensional Array to Tidy Tibble β€” gather_array β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html index 762aaf7..450e119 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -1,12 +1,12 @@ -Function reference β€’ fidoFunction reference β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/kernels.html b/docs/reference/kernels.html index bda358c..f353581 100644 --- a/docs/reference/kernels.html +++ b/docs/reference/kernels.html @@ -1,12 +1,12 @@ -Multivariate RBF Kernel β€” kernels β€’ fidoMultivariate RBF Kernel β€” kernels β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/lambda_to_iqlr.html b/docs/reference/lambda_to_iqlr.html index 572d195..95fc9ae 100644 --- a/docs/reference/lambda_to_iqlr.html +++ b/docs/reference/lambda_to_iqlr.html @@ -12,7 +12,7 @@ is defined as the norm of each row of Lambda[,focus.cov] (i.e., the covariation in Eta, explained by those covariates). This definition of variance allows uses to exclude variation from technical / trivial sources - in calculation of IQVF/IQLR.">Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr β€’ fidoTransform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/lmvgamma.html b/docs/reference/lmvgamma.html index 8012387..dd1651d 100644 --- a/docs/reference/lmvgamma.html +++ b/docs/reference/lmvgamma.html @@ -1,12 +1,12 @@ -Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma β€’ fidoLog of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/lmvgamma_deriv.html b/docs/reference/lmvgamma_deriv.html index 4e9a9c7..46e1712 100644 --- a/docs/reference/lmvgamma_deriv.html +++ b/docs/reference/lmvgamma_deriv.html @@ -1,12 +1,12 @@ -Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv β€’ fidoDerivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/loglikMaltipooCollapsed.html b/docs/reference/loglikMaltipooCollapsed.html index ff2c46a..bc47d8a 100644 --- a/docs/reference/loglikMaltipooCollapsed.html +++ b/docs/reference/loglikMaltipooCollapsed.html @@ -6,7 +6,7 @@ is much more optimized and massively cuts down on repeated calculations. A more efficient Rcpp module based implementation of these functions may following if the future. For model details see optimMaltipooCollapsed -documentation">Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed β€’ fidoCalculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/loglikPibbleCollapsed.html b/docs/reference/loglikPibbleCollapsed.html index 286ebbf..239285d 100644 --- a/docs/reference/loglikPibbleCollapsed.html +++ b/docs/reference/loglikPibbleCollapsed.html @@ -6,7 +6,7 @@ is much more optimized and massively cuts down on repeated calculations. A more efficient Rcpp module based implementation of these functions may following if the future. For model details see optimPibbleCollapsed -documentation">Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed β€’ fidoCalculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/mallard.html b/docs/reference/mallard.html index ef1542b..dd63471 100644 --- a/docs/reference/mallard.html +++ b/docs/reference/mallard.html @@ -1,14 +1,14 @@ Data from Silverman et al. (2018) Microbiome β€” mallard β€’ fidoData from Silverman et al. (2018) Microbiome β€” mallard β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/mallard_family.html b/docs/reference/mallard_family.html index 37dd1d3..8dca6ed 100644 --- a/docs/reference/mallard_family.html +++ b/docs/reference/mallard_family.html @@ -1,14 +1,14 @@ Data from Silverman et al. (2018) Microbiome β€” mallard_family β€’ fidoData from Silverman et al. (2018) Microbiome β€” mallard_family β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/maltipoo_fit.html b/docs/reference/maltipoo_fit.html index 04dabc1..14debe9 100644 --- a/docs/reference/maltipoo_fit.html +++ b/docs/reference/maltipoo_fit.html @@ -8,7 +8,7 @@ of covariates, P is the number of variance components iter is the number of samples of eta (e.g., the parameter n_samples in the function - optimPibbleCollapsed)">Interface to fit maltipoo models β€” maltipoo_fit β€’ fidoInterface to fit maltipoo models β€” maltipoo_fit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/maltipoofit.html b/docs/reference/maltipoofit.html index 03abcdc..5c6a97c 100644 --- a/docs/reference/maltipoofit.html +++ b/docs/reference/maltipoofit.html @@ -1,12 +1,12 @@ -Create maltipoofit object β€” maltipoofit β€’ fidoCreate maltipoofit object β€” maltipoofit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/metadata.html b/docs/reference/metadata.html index 7d59f13..79fb45c 100644 --- a/docs/reference/metadata.html +++ b/docs/reference/metadata.html @@ -1,14 +1,14 @@ Data from Silverman et al. (2019) bioRxiv β€” metadata β€’ fidoData from Silverman et al. (2019) bioRxiv β€” metadata β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/miniclo.html b/docs/reference/miniclo.html index 2a25a42..d4099f0 100644 --- a/docs/reference/miniclo.html +++ b/docs/reference/miniclo.html @@ -1,12 +1,12 @@ -Closure operator β€” miniclo β€’ fidoClosure operator β€” miniclo β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/miniclo_array.html b/docs/reference/miniclo_array.html index cc72597..c07e2f9 100644 --- a/docs/reference/miniclo_array.html +++ b/docs/reference/miniclo_array.html @@ -1,12 +1,12 @@ -Closure Operation applied to array on margin β€” miniclo_array β€’ fidoClosure Operation applied to array on margin β€” miniclo_array β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/mongrel-deprecated.html b/docs/reference/mongrel-deprecated.html index d63e0d4..c68e14f 100644 --- a/docs/reference/mongrel-deprecated.html +++ b/docs/reference/mongrel-deprecated.html @@ -1,14 +1,14 @@ mongrel β€” mongrel-deprecated β€’ fidomongrel β€” mongrel-deprecated β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/name.html b/docs/reference/name.html index e5cc448..789e86d 100644 --- a/docs/reference/name.html +++ b/docs/reference/name.html @@ -1,12 +1,12 @@ -Generic method for applying names to an object β€” name β€’ fidoGeneric method for applying names to an object β€” name β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/name.orthusfit.html b/docs/reference/name.orthusfit.html index 0ed80b0..0f4d9b6 100644 --- a/docs/reference/name.orthusfit.html +++ b/docs/reference/name.orthusfit.html @@ -1,14 +1,14 @@ S3 for orthusfit apply names to orthusfit object β€” name.orthusfit β€’ fidoS3 for orthusfit apply names to orthusfit object β€” name.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/name.pibblefit.html b/docs/reference/name.pibblefit.html index 00fc8e9..a95598b 100644 --- a/docs/reference/name.pibblefit.html +++ b/docs/reference/name.pibblefit.html @@ -1,12 +1,12 @@ -S3 for pibblefit apply names to pibblefit object β€” name.pibblefit β€’ fidoS3 for pibblefit apply names to pibblefit object β€” name.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/name_dims.html b/docs/reference/name_dims.html index 0b0d92a..249899e 100644 --- a/docs/reference/name_dims.html +++ b/docs/reference/name_dims.html @@ -1,12 +1,12 @@ -Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit β€’ fidoGeneric method for getting and setting dimension names of fit object β€” names_covariates.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/optimMaltipooCollapsed.html b/docs/reference/optimMaltipooCollapsed.html index ca3fef0..2487117 100644 --- a/docs/reference/optimMaltipooCollapsed.html +++ b/docs/reference/optimMaltipooCollapsed.html @@ -2,17 +2,17 @@ Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed β€’ fidoFunction to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/optimPibbleCollapsed.html b/docs/reference/optimPibbleCollapsed.html index 5437a20..bcf29ee 100644 --- a/docs/reference/optimPibbleCollapsed.html +++ b/docs/reference/optimPibbleCollapsed.html @@ -2,17 +2,17 @@ Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed β€’ fidoFunction to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/orthus_fit.html b/docs/reference/orthus_fit.html index 36556f8..74b4afb 100644 --- a/docs/reference/orthus_fit.html +++ b/docs/reference/orthus_fit.html @@ -8,7 +8,7 @@ D is number of multinomial categories, Q is number of covariates, iter is the number of samples of eta (e.g., the parameter n_samples in the function -optimPibbleCollapsed)">Interface to fit orthus models β€” orthus_fit β€’ fidoInterface to fit orthus models β€” orthus_fit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/orthus_lr_transforms.html b/docs/reference/orthus_lr_transforms.html index 2cec7c9..525b88a 100644 --- a/docs/reference/orthus_lr_transforms.html +++ b/docs/reference/orthus_lr_transforms.html @@ -1,12 +1,12 @@ -Log-Ratio transforms for orthus objects β€” orthus_lr_transforms β€’ fidoLog-Ratio transforms for orthus objects β€” orthus_lr_transforms β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/orthus_sim.html b/docs/reference/orthus_sim.html index 54af6e1..4e8ef2c 100644 --- a/docs/reference/orthus_sim.html +++ b/docs/reference/orthus_sim.html @@ -1,12 +1,12 @@ -Simulate simple orthus dataset and priors (for testing) β€” orthus_sim β€’ fidoSimulate simple orthus dataset and priors (for testing) β€” orthus_sim β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/orthus_tidy_samples.html b/docs/reference/orthus_tidy_samples.html index 1399403..8b87831 100644 --- a/docs/reference/orthus_tidy_samples.html +++ b/docs/reference/orthus_tidy_samples.html @@ -1,16 +1,16 @@ Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples β€’ fidoConvert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/orthusfit.html b/docs/reference/orthusfit.html index 16273fd..2e5da40 100644 --- a/docs/reference/orthusfit.html +++ b/docs/reference/orthusfit.html @@ -1,12 +1,12 @@ -Create orthusfit object β€” orthusfit β€’ fidoCreate orthusfit object β€” orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/pcrbias_mock.html b/docs/reference/pcrbias_mock.html index 0b6aa11..fdf3367 100644 --- a/docs/reference/pcrbias_mock.html +++ b/docs/reference/pcrbias_mock.html @@ -1,14 +1,14 @@ Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock β€’ fidoData from Silverman et al. (2019) bioRxiv β€” pcrbias_mock β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/pibble_fit.html b/docs/reference/pibble_fit.html index 7cbbabe..e335943 100644 --- a/docs/reference/pibble_fit.html +++ b/docs/reference/pibble_fit.html @@ -7,7 +7,7 @@ D is number of multinomial categories, Q is number of covariates, iter is the number of samples of eta (e.g., the parameter n_samples in the function -optimPibbleCollapsed)">Interface to fit pibble models β€” pibble_fit β€’ fidoInterface to fit pibble models β€” pibble_fit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/pibble_sim.html b/docs/reference/pibble_sim.html index abcdb64..1d32ae2 100644 --- a/docs/reference/pibble_sim.html +++ b/docs/reference/pibble_sim.html @@ -1,12 +1,12 @@ -Simulate simple pibble dataset and priors (for testing) β€” pibble_sim β€’ fidoSimulate simple pibble dataset and priors (for testing) β€” pibble_sim β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/pibble_tidy_samples.html b/docs/reference/pibble_tidy_samples.html index 7f41b01..8e24dd8 100644 --- a/docs/reference/pibble_tidy_samples.html +++ b/docs/reference/pibble_tidy_samples.html @@ -1,16 +1,16 @@ Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples β€’ fidoConvert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/pibblefit.html b/docs/reference/pibblefit.html index 8e22951..b9f2e2e 100644 --- a/docs/reference/pibblefit.html +++ b/docs/reference/pibblefit.html @@ -1,12 +1,12 @@ -Create pibblefit object β€” pibblefit β€’ fidoCreate pibblefit object β€” pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/plot.pibblefit.html b/docs/reference/plot.pibblefit.html index 8c27909..2db01d2 100644 --- a/docs/reference/plot.pibblefit.html +++ b/docs/reference/plot.pibblefit.html @@ -1,12 +1,12 @@ -Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit β€’ fidoPlot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/ppc.html b/docs/reference/ppc.html index 5516b3c..10e36d0 100644 --- a/docs/reference/ppc.html +++ b/docs/reference/ppc.html @@ -1,12 +1,12 @@ -Generic method for visualizing posterior predictive checks β€” ppc β€’ fidoGeneric method for visualizing posterior predictive checks β€” ppc β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/ppc.pibblefit.html b/docs/reference/ppc.pibblefit.html index e5d7124..4871848 100644 --- a/docs/reference/ppc.pibblefit.html +++ b/docs/reference/ppc.pibblefit.html @@ -1,12 +1,12 @@ -Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit β€’ fidoVisualization of Posterior Predictive Check of fit model β€” ppc.pibblefit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/ppc_summary.html b/docs/reference/ppc_summary.html index 7d80bcc..273f230 100644 --- a/docs/reference/ppc_summary.html +++ b/docs/reference/ppc_summary.html @@ -1,12 +1,12 @@ -Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit β€’ fidoGeneric Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/predict.bassetfit.html b/docs/reference/predict.bassetfit.html index 73c1890..fc995f3 100644 --- a/docs/reference/predict.bassetfit.html +++ b/docs/reference/predict.bassetfit.html @@ -1,12 +1,12 @@ -Predict using basset β€” predict.bassetfit β€’ fidoPredict using basset β€” predict.bassetfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/predict.pibblefit.html b/docs/reference/predict.pibblefit.html index 33b89a3..f7d9f27 100644 --- a/docs/reference/predict.pibblefit.html +++ b/docs/reference/predict.pibblefit.html @@ -1,12 +1,12 @@ -Predict response from new data β€” predict.pibblefit β€’ fidoPredict response from new data β€” predict.pibblefit β€’ fido - Skip to content + Skip to contents -
@@ -269,9 +269,7 @@

Examples - -

+
+ + + + + + diff --git a/docs/reference/print.orthusfit.html b/docs/reference/print.orthusfit.html index 85f840e..44d19ba 100644 --- a/docs/reference/print.orthusfit.html +++ b/docs/reference/print.orthusfit.html @@ -1,12 +1,12 @@ -Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit β€’ fidoPrint dimensions and coordinate system information for orthusfit object. β€” print.orthusfit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/print.pibblefit.html b/docs/reference/print.pibblefit.html index 81292dd..e37d991 100644 --- a/docs/reference/print.pibblefit.html +++ b/docs/reference/print.pibblefit.html @@ -1,12 +1,12 @@ -Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit β€’ fidoPrint dimensions and coordinate system information for pibblefit object. β€” print.pibblefit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/r2.html b/docs/reference/r2.html index 9324053..d66d63b 100644 --- a/docs/reference/r2.html +++ b/docs/reference/r2.html @@ -1,12 +1,12 @@ -Generic Method to Calculate R2 for Fitted Model β€” r2 β€’ fidoGeneric Method to Calculate R2 for Fitted Model β€” r2 β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/random_pibble_init.html b/docs/reference/random_pibble_init.html index c4c4332..1ca6bc9 100644 --- a/docs/reference/random_pibble_init.html +++ b/docs/reference/random_pibble_init.html @@ -1,16 +1,16 @@ Provide random initialization for pibble model β€” random_pibble_init β€’ fidoProvide random initialization for pibble model β€” random_pibble_init β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/refit.html b/docs/reference/refit.html index 79db313..4456f9c 100644 --- a/docs/reference/refit.html +++ b/docs/reference/refit.html @@ -1,12 +1,12 @@ -Generic method for fitting model from passed model fit object β€” refit β€’ fidoGeneric method for fitting model from passed model fit object β€” refit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/req.html b/docs/reference/req.html index 557a2fa..f0f88f5 100644 --- a/docs/reference/req.html +++ b/docs/reference/req.html @@ -1,12 +1,12 @@ -Generic method for ensuring object contains required elements β€” req β€’ fidoGeneric method for ensuring object contains required elements β€” req β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/req.maltipoofit.html b/docs/reference/req.maltipoofit.html index 9bab861..8e60fd9 100644 --- a/docs/reference/req.maltipoofit.html +++ b/docs/reference/req.maltipoofit.html @@ -1,12 +1,12 @@ -require elements to be non-null in pibblefit or throw error β€” req.maltipoofit β€’ fidorequire elements to be non-null in pibblefit or throw error β€” req.maltipoofit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/req.orthusfit.html b/docs/reference/req.orthusfit.html index 8baee42..a421610 100644 --- a/docs/reference/req.orthusfit.html +++ b/docs/reference/req.orthusfit.html @@ -1,12 +1,12 @@ -require elements to be non-null in orthusfit or throw error β€” req.orthusfit β€’ fidorequire elements to be non-null in orthusfit or throw error β€” req.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/req.pibblefit.html b/docs/reference/req.pibblefit.html index 1392e59..22889bd 100644 --- a/docs/reference/req.pibblefit.html +++ b/docs/reference/req.pibblefit.html @@ -1,12 +1,12 @@ -require elements to be non-null in pibblefit or throw error β€” req.pibblefit β€’ fidorequire elements to be non-null in pibblefit or throw error β€” req.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/sample_prior.html b/docs/reference/sample_prior.html index 0d9bd23..3137bdc 100644 --- a/docs/reference/sample_prior.html +++ b/docs/reference/sample_prior.html @@ -1,12 +1,12 @@ -Generic method for sampling from prior distribution of object β€” sample_prior β€’ fidoGeneric method for sampling from prior distribution of object β€” sample_prior β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/sample_prior.pibblefit.html b/docs/reference/sample_prior.pibblefit.html index 9567724..d15d447 100644 --- a/docs/reference/sample_prior.pibblefit.html +++ b/docs/reference/sample_prior.pibblefit.html @@ -1,14 +1,14 @@ Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit β€’ fidoSample from the prior distribution of pibblefit object β€” sample_prior.pibblefit β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/store_coord.html b/docs/reference/store_coord.html index f79c85c..9dc4cda 100644 --- a/docs/reference/store_coord.html +++ b/docs/reference/store_coord.html @@ -3,7 +3,7 @@ and can be reapplied with function reapply_coord. Some coordinate systems are not useful for computation and this makes it simple keep returned object from computations in the same coordinate system as the input. -(Likely most useful inside of a package)">Holds information on coordinates system to later be reapplied β€” store_coord β€’ fidoHolds information on coordinates system to later be reapplied β€” store_coord β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/summarise_posterior.html b/docs/reference/summarise_posterior.html index 04ab333..059c3e0 100644 --- a/docs/reference/summarise_posterior.html +++ b/docs/reference/summarise_posterior.html @@ -1,12 +1,12 @@ -Shortcut for summarize variable with quantiles and mean β€” summarise_posterior β€’ fidoShortcut for summarize variable with quantiles and mean β€” summarise_posterior β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/summary.orthusfit.html b/docs/reference/summary.orthusfit.html index 80024f4..cc7cd69 100644 --- a/docs/reference/summary.orthusfit.html +++ b/docs/reference/summary.orthusfit.html @@ -1,12 +1,12 @@ -Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit β€’ fidoSummarise orthusfit object and print posterior quantiles β€” summary.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/summary.pibblefit.html b/docs/reference/summary.pibblefit.html index f9eaeb0..1d2ad9c 100644 --- a/docs/reference/summary.pibblefit.html +++ b/docs/reference/summary.pibblefit.html @@ -1,12 +1,12 @@ -Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit β€’ fidoSummarise pibblefit object and print posterior quantiles β€” summary.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/uncollapsePibble.html b/docs/reference/uncollapsePibble.html index 20ffe01..22e55bf 100644 --- a/docs/reference/uncollapsePibble.html +++ b/docs/reference/uncollapsePibble.html @@ -3,7 +3,7 @@ optimPibbleCollapsed. Notation: N is number of samples, D is number of multinomial categories, Q is number of covariates, iter is the number of samples of eta (e.g., -the parameter n_samples in the function optimPibbleCollapsed)">Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble β€’ fidoUncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble β€’ fido - Skip to content + Skip to contents -
+
+ + + + + + diff --git a/docs/reference/uncollapsePibble_sigmaKnown.html b/docs/reference/uncollapsePibble_sigmaKnown.html index dd04594..10dbabc 100644 --- a/docs/reference/uncollapsePibble_sigmaKnown.html +++ b/docs/reference/uncollapsePibble_sigmaKnown.html @@ -3,7 +3,7 @@ optimPibbleCollapsed. Notation: N is number of samples, D is number of multinomial categories, Q is number of covariates, iter is the number of samples of eta (e.g., -the parameter n_samples in the function optimPibbleCollapsed)">Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown β€’ fidoUncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/verify.bassetfit.html b/docs/reference/verify.bassetfit.html index 391aaf9..da8df9e 100644 --- a/docs/reference/verify.bassetfit.html +++ b/docs/reference/verify.bassetfit.html @@ -1,12 +1,12 @@ -Simple verification of passed bassetfit object β€” verify.bassetfit β€’ fidoSimple verification of passed bassetfit object β€” verify.bassetfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/verify.html b/docs/reference/verify.html index 5f4da28..04416e1 100644 --- a/docs/reference/verify.html +++ b/docs/reference/verify.html @@ -1,12 +1,12 @@ -Generic method for verifying new objects β€” verify β€’ fidoGeneric method for verifying new objects β€” verify β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/verify.maltipoofit.html b/docs/reference/verify.maltipoofit.html index 693d13e..4c36af3 100644 --- a/docs/reference/verify.maltipoofit.html +++ b/docs/reference/verify.maltipoofit.html @@ -1,12 +1,12 @@ -Simple verification of passed multipoo object β€” verify.maltipoofit β€’ fidoSimple verification of passed multipoo object β€” verify.maltipoofit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/verify.orthusfit.html b/docs/reference/verify.orthusfit.html index 741b551..c9edc3d 100644 --- a/docs/reference/verify.orthusfit.html +++ b/docs/reference/verify.orthusfit.html @@ -1,12 +1,12 @@ -Simple verification of passed orthusfit object β€” verify.orthusfit β€’ fidoSimple verification of passed orthusfit object β€” verify.orthusfit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/reference/verify.pibblefit.html b/docs/reference/verify.pibblefit.html index 6fe1dc1..97a45a2 100644 --- a/docs/reference/verify.pibblefit.html +++ b/docs/reference/verify.pibblefit.html @@ -1,12 +1,12 @@ -Simple verification of passed pibblefit object β€” verify.pibblefit β€’ fidoSimple verification of passed pibblefit object β€” verify.pibblefit β€’ fido - Skip to content + Skip to contents -
-
- +
+ + + + + + diff --git a/docs/search.json b/docs/search.json index a47a9a4..4d48ac4 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -[{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"an-introduction-to-fido","dir":"Articles","previous_headings":"","what":"An introduction to fido","title":"Introduction to fido::Pibble","text":"fido (Justin D. Silverman et al. 2019) loose acronym β€œ(Bayesian) Multinomial Logistic-Normal Models”. particular development fido stems need fast inference time-invariant MALLARD models(Justin D. Silverman et al. 2018). fido fast! uses closed form solutions model gradients Hessians written C++ preform MAP estimation combination parameter uncertainty estimation using Laplace Approximation. One main models fido function pibble fits Multinomial Logistic-Normal Linear Regression model. fido model exactly? First let give broad description 10,000ft : Basically model multinomial count data (e.g., sample contains counts \\(D\\) β€œtypes things”). Importantly, unlike common Poisson count models, multinomial models β€œcompetition counted” (.e., cases counting one type thing means less resources available count types things). may seem vague let give example. Pretend ball pit red, green, blue balls. Pretend ball pit large don’t know total number balls ball pit, yet want say something relative number red, blue, green balls pit. One way may choose measure ball pit grabbing armful balls counting number balls color (e.g., one armful may collect 5 red, 3 blue, 6 green). arms can contain many balls (example 14) (randomly) gotten another green ball armful (making 7 total) likely able measure one red blue balls; hence β€œcompetition counted”. turns type sampling occurs time many situations (Wikipedia example political polling). Perhaps one notable examples type count data occurs modern high-throughput sequencing studies 16S rRNA studies profile microbial communities bulk/single-cell RNA-seq studies study expression profiles cells. cases, transcripts sequenced number different types transcripts counted. important part sequencing samples small portion total genetic material available leads similar competition counted.","code":""},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"the-pibble-model","dir":"Articles","previous_headings":"An introduction to fido","what":"The pibble model","title":"Introduction to fido::Pibble","text":"Pibble one type fido model. particular fido model multivariate linear regression. Let \\(Y\\) denote \\(D\\times N\\) matrix counts. Let us denote \\(j\\)-th column \\(Y\\) \\(Y_j\\). Thus β€œsample” dataset measurement relative amount \\(D\\) β€œtypes things”. Suppose also covariate information form \\(Q\\times N\\) matrix \\(X\\). following pibble model including likelihood priors: \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim N(\\Lambda X_j, \\Sigma) \\\\ \\Lambda &\\sim MN_{(D-1) \\times Q}(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] \\(MN_{(D-1) \\times Q}\\) denotes Matrix Normal distribution matrix \\(\\Lambda\\) regression coefficients dimension \\((D-1)\\times Q\\). Essentially can think Matrix normal two covariance matrices one describing covariation rows \\(\\Lambda\\) (\\(\\Sigma\\)) another describing covariation columns \\(\\Lambda\\) (\\(\\Gamma\\)). \\(W^{-1}\\) refers Inverse Wishart distribution (common distribution covariance matrices). line \\(\\pi_j = \\phi^{-1}(\\eta_j)\\) represents transformation parameters \\(\\pi_j\\) exist simplex (e.g., \\(\\pi_j\\) must sum 1) transformed parameters \\(\\eta_j\\) exist real space. particular define \\(\\phi^{-1}\\) inverse additive log ratio transform (conversely implies \\(\\eta_j = ALR(\\pi_j)\\)) also known identified softmax transform (commonly known Machine Learning community). say later tutorial, one thing know model implemented using ALR transform computationally simple fast; results model can viewed number transforms used (instead ALR) including isometric log-ratio transform, centered log-ratio transform. moving , like give intuitive description pibble. Essentially main modeling component pibble third equation (\\(\\eta_j \\sim N(\\Lambda X_j, \\Sigma)\\)) just multivariate linear model. , \\(X\\) covariates (can continuous, discrete, binary, etc…), \\(\\Sigma\\) covariance matrix regression residuals.","code":""},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"example-analysis-of-microbiome-data","dir":"Articles","previous_headings":"","what":"Example analysis of microbiome data","title":"Introduction to fido::Pibble","text":"analysis presented fido manuscript (Justin D. Silverman et al. 2019). reanalyze previously published study comparing microbial composition terminal ileum subjects Crohn’s Disease (CD) healthy controls (Gevers et al. 2014). fit pibble model using CD status, inflammation status age covariates (plus constant intercept term). Create Design Matrix OTU Table Next specify priors. going start specifying prior covariance log-ratios \\(\\Sigma\\). like thinking prior covariance taxa log-scale (.e., log absolute abundances log-ratios). refer covariance log-absolute abundances \\(\\Omega\\). example, build prior states mean \\(\\Omega\\) identity matrix \\(I_D\\). Aitchison (1986), know assume taxa covariance \\(\\Omega\\) terms log-absolute abundance correlation \\(\\text{ALR}_D\\) given \\[ \\Sigma = G \\Omega G^T \\] \\(G\\) \\(D-1 \\times D\\) matrix given \\(G = [I_{D-1}; -1_{D-1}]\\) (.e., \\(G\\) \\(\\text{ALR}_D\\) contrast matrix). Additionally, know Inverse Wishart mode given \\(\\frac{\\Xi}{\\upsilon + D}\\). Finally, note \\(\\upsilon\\) essentially controls uncertainty \\(\\Sigma\\) prior mean. take \\(\\upsilon = D+3\\). gives us \\(\\Xi = (\\upsilon - D) GIG^T\\). scale \\(\\Xi\\) factor 1/2 make \\(Tr(\\Xi)=D-1\\). Finally specify priors \\(\\Theta\\) (mean \\(\\Lambda\\)) \\(\\Gamma\\) (covariance columns \\(\\Lambda\\); .e., covariance covariates). center prior \\(\\Lambda\\) zero, assume covariates independent. strongly recommend users perform prior predictive checks make sure priors make sense . fido makes easy, main fitting functions (e.g., pibble) automatically sample prior predictive distribution Y left NULL (e.g., without data posterior just prior). main fitting functions fido package output special fit objects (e.g., pibble outputs object class pibblefit). fit objects just lists extra metadata allows special method dispatch. example, call print pibblefit object get nice summary object. Note: Currently, function pibble takes expects inputs outputs β€œdefault” coordinate system; simply ALR coordinate system last category (49 ) taken reference (generalized future versions). specifically vector \\(x\\) representing proportions categories \\(\\{1, \\dots, D\\}\\) can write \\[x^* = \\left( \\log \\frac{x_1}{x_D}, \\dots, \\log \\frac{x_{D-1}}{x_D}\\right).\\] mentioned however, designed fido work many different coordinate systems including ALR (respect category), CLR, ILR, proportions. help transform things coordinate systems written series transformation functions transform pibblefit object desired coordinate system. Importantly, pibblefit objects keep track coordinate system currently user need specify coordinate system want change . Keep mind covariance matrices represented proportions visualizations summaries based covariance matrices suppressed pibblefit objects proportions coordinate system. example, lets look viewing summary prior \\(\\Lambda\\) respect CLR coordinate system1. default summary function returns list (possible elements Lambda, Sigma, Eta) summarizing posterior parameter based quantiles mean (e.g., p2.5 0.025 percentile posterior distribution). type table may hard take due large , pibblefit objects also come default plotting option parameters. Also returned plot objects ggplot objects normal ggplot2 commands work . though going use one names functions pibblefit objects provide specific names covariates (helpful plot). looks fairly reasonable . going go ahead fit model data. fido provides helper method called refit use avoid passing prior parameters . Unlike main pibble function, refit method can called objects coordinate system transformations default coordinate system handled internally2. one nice thing using refit method. said, new objects added pibblefit object need added proper coordinates example, wanted replace prior \\(\\Xi\\) object CLR coordinates, transform prior Xi CLR coordinates adding priors object. Now also going add taxa names make easier interpret results. anything else lets look posterior predictive distribution assess model fit. can accessed method ppc3. things note plot. First, zoomed like looks hard make much . fairly large dataset analyzing hard view uncertainty interval; case plotting median 95% confidence interval grey black observed counts green. fido also simpler function summarizes posterior predictive check. see model appears fitting well (least based posterior predictive check) 1.5% observations fall outside 95% posterior predictive density (good). readers look ppc plots think β€œlooks like -fitting”. However, note two ways using ppc. One predict counts based samples \\(\\eta\\) (Eta; ); predict β€œscratch” predict starting form posterior samples \\(\\Lambda\\) (Lambda) sampling \\(\\eta\\) sampling \\(Y\\). later functionality can accessed also passing parameters from_scratch=TRUE ppc function. Note: two posterior predictive checks different meanings, one better . Now going finally look posterior distribution regression parameters, many focus just 95% credible interval including zero (.e., model fairly certain non-zero). also going ignore intercept term just look parameters associated age disease status. first, obvious ting notice covariate age pretty much effect , whatever effect may incredibly weak. going remove age plot just look coordinates non-zero effect diagnosis CD","code":"library(MicrobeDS) library(phyloseq) library(dplyr) library(fido) set.seed(899) data(\"RISK_CCFA\") # drop low abundant taxa and samples dat <- RISK_CCFA %>% subset_samples(disease_stat!=\"missing\", immunosup!=\"missing\") %>% subset_samples(diagnosis %in% c(\"no\", \"CD\")) %>% subset_samples(steroids==\"false\") %>% subset_samples(antibiotics==\"false\") %>% subset_samples(biologics==\"false\") %>% subset_samples(biopsy_location==\"Terminal ileum\") %>% tax_glom(\"Family\") %>% prune_samples(sample_sums(.) >= 5000,.) %>% filter_taxa(function(x) sum(x > 3) > 0.10*length(x), TRUE) sample_dat <- as.data.frame(as(sample_data(dat),\"matrix\")) %>% mutate(age = as.numeric(as.character(age)), diagnosis = relevel(factor(diagnosis, ordered = FALSE), ref=\"no\"), disease_stat = relevel(factor(disease_stat, ordered = FALSE), ref=\"non-inflamed\")) X <- t(model.matrix(~diagnosis + disease_stat+age, data=sample_dat)) Y <- otu_table(dat) # Investigate X and Y look like X[,1:5] #> 1939.SKBTI.0175 1939.SKBTI047 1939.SKBTI051 1939.SKBTI063 #> (Intercept) 1.00000 1.00000 1.00 1.00000 #> diagnosisCD 1.00000 1.00000 1.00 1.00000 #> disease_statinflamed 0.00000 1.00000 1.00 1.00000 #> age 15.16667 14.33333 15.75 13.58333 #> 1939.SKBTI072 #> (Intercept) 1.00 #> diagnosisCD 1.00 #> disease_statinflamed 1.00 #> age 15.75 Y[1:5,1:5] #> OTU Table: [5 taxa and 5 samples] #> taxa are rows #> 1939.SKBTI.0175 1939.SKBTI047 1939.SKBTI051 1939.SKBTI063 1939.SKBTI072 #> 4442127 0 9 0 14 2 #> 74305 1 2 35 1 0 #> 663573 36 1 0 2 1 #> 2685602 10 264 211 276 83 #> 4339819 0 37 42 70 22 upsilon <- ntaxa(dat)+3 Omega <- diag(ntaxa(dat)) G <- cbind(diag(ntaxa(dat)-1), -1) Xi <- (upsilon-ntaxa(dat))*G%*%Omega%*%t(G) Theta <- matrix(0, ntaxa(dat)-1, nrow(X)) Gamma <- diag(nrow(X)) priors <- pibble(NULL, X, upsilon, Theta, Gamma, Xi) print(priors) #> pibblefit Object (Priors Only): #> Number of Samples: 250 #> Number of Categories: 49 #> Number of Covariates: 4 #> Number of Posterior Samples: 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System: alr, reference category: 49 priors <- to_clr(priors) summary(priors, pars=\"Lambda\", gather_prob=TRUE, as_factor=TRUE, use_names=TRUE) #> $Lambda #> # A tibble: 784 x 9 #> Parameter coord covariate val .lower .upper .width .point .interval #> #> 1 Lambda 1 1 0.0509 -0.528 0.596 0.5 mean qi #> 2 Lambda 1 2 0.00199 -0.567 0.575 0.5 mean qi #> 3 Lambda 1 3 -0.0373 -0.620 0.532 0.5 mean qi #> 4 Lambda 1 4 -0.00205 -0.554 0.549 0.5 mean qi #> 5 Lambda 2 1 0.00991 -0.564 0.535 0.5 mean qi #> 6 Lambda 2 2 -0.00000782 -0.572 0.580 0.5 mean qi #> 7 Lambda 2 3 -0.0247 -0.570 0.518 0.5 mean qi #> 8 Lambda 2 4 0.0165 -0.536 0.589 0.5 mean qi #> 9 Lambda 3 1 0.0138 -0.584 0.620 0.5 mean qi #> 10 Lambda 3 2 -0.00502 -0.542 0.581 0.5 mean qi #> # ... with 774 more rows names_covariates(priors) <- rownames(X) p <- plot(priors, par=\"Lambda\") #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. p + ggplot2::xlim(c(-10, 10)) priors$Y <- Y # remember pibblefit objects are just lists posterior <- refit(priors, optim_method=\"lbfgs\") tax <- tax_table(dat)[,c(\"Class\", \"Family\")] tax <- apply(tax, 1, paste, collapse=\"_\") names_categories(posterior) <- tax ppc(posterior) + ggplot2::coord_cartesian(ylim=c(0, 30000)) ppc_summary(posterior) #> Proportions of Observations within 95% Credible Interval: 0.9898776 ppc(posterior, from_scratch=TRUE) +ggplot2::coord_cartesian(ylim=c(0, 30000)) ppc_summary(posterior, from_scratch=TRUE) #> Proportions of Observations within 95% Credible Interval: 0.9721633 posterior_summary <- summary(posterior, pars=\"Lambda\")$Lambda focus <- posterior_summary[sign(posterior_summary$p2.5) == sign(posterior_summary$p97.5),] focus <- unique(focus$coord) plot(posterior, par=\"Lambda\", focus.coord = focus, focus.cov = rownames(X)[2:4]) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. posterior_summary <- filter(posterior_summary, covariate==\"diagnosisCD\") focus <- posterior_summary[sign(posterior_summary$p2.5) == sign(posterior_summary$p97.5),] focus <- unique(focus$coord) tax_table(dat)[taxa_names(dat)[which(names_coords(posterior) %in% focus)]] #> Taxonomy Table: [12 taxa by 7 taxonomic ranks]: #> Kingdom Phylum Class Order #> 74305 \"Bacteria\" \"Proteobacteria\" \"Epsilonproteobacteria\" \"Campylobacterales\" #> 4449236 \"Bacteria\" \"Proteobacteria\" \"Betaproteobacteria\" \"Burkholderiales\" #> 1105919 \"Bacteria\" \"Proteobacteria\" \"Betaproteobacteria\" \"Burkholderiales\" #> 4477696 \"Bacteria\" \"Proteobacteria\" \"Gammaproteobacteria\" \"Pasteurellales\" #> 4448331 \"Bacteria\" \"Proteobacteria\" \"Gammaproteobacteria\" \"Enterobacteriales\" #> 4154872 \"Bacteria\" \"Bacteroidetes\" \"Flavobacteriia\" \"Flavobacteriales\" #> 4452538 \"Bacteria\" \"Fusobacteria\" \"Fusobacteriia\" \"Fusobacteriales\" #> 341322 \"Bacteria\" \"Firmicutes\" \"Bacilli\" \"Turicibacterales\" #> 1015143 \"Bacteria\" \"Firmicutes\" \"Bacilli\" \"Gemellales\" #> 176318 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> 1788466 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> 1896700 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> Family Genus Species #> 74305 \"Helicobacteraceae\" NA NA #> 4449236 \"Alcaligenaceae\" NA NA #> 1105919 \"Oxalobacteraceae\" NA NA #> 4477696 \"Pasteurellaceae\" NA NA #> 4448331 \"Enterobacteriaceae\" NA NA #> 4154872 \"[Weeksellaceae]\" NA NA #> 4452538 \"Fusobacteriaceae\" NA NA #> 341322 \"Turicibacteraceae\" NA NA #> 1015143 \"Gemellaceae\" NA NA #> 176318 \"Christensenellaceae\" NA NA #> 1788466 \"Lachnospiraceae\" NA NA #> 1896700 \"Peptostreptococcaceae\" NA NA plot(posterior, par=\"Lambda\", focus.coord = focus, focus.cov = rownames(X)[2]) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale."},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"a-few-notes-on-model-inference-and-parameter-collapsing","dir":"Articles","previous_headings":"More Technical Details","what":"A few notes on model inference and parameter collapsing","title":"Introduction to fido::Pibble","text":"Along algorithmic speed-ups enabled C++ Eigen library fido uses conjugate priors regression component model allowing last three lines model collapsed 1 line. last three lines model can re-expanded using fully conjugate sampling schemes require optimization MCMC (matrix operations). details: collapsed model given \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j, n_j\\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim T_{(D-1)\\times N}(\\upsilon, \\Theta X, \\Xi, I_N + X^T \\Gamma X) \\end{align} \\] \\(=(I_N + X^T \\Gamma, X)^{-1}\\) \\(T_{(D-1)\\times N}\\) refers Matrix T-distribution \\((D-1)\\times N\\) matrix \\(\\eta\\) log density given \\[\\log T_{(D-1)\\times N}(\\eta | \\upsilon, \\Theta X, \\Xi, ) \\propto -\\frac{\\upsilon+N-D-2}{2}\\log | I_{D-1}+\\Xi^{-1}(\\eta-\\Theta X)(\\eta-\\Theta X)^T |.\\] Rather using MCMC sample \\(\\eta\\) fido uses MAP estimation. Additionally, fido allows quantification uncertainty MAP estimates using Laplace approximation. found practice MAP based Laplace approximation produced comparable results full MCMC sampler tremendous improvements compute time. samples \\(\\eta\\) produced using Laplace approximation closed form solutions conditional density \\(\\Lambda\\) \\(\\Sigma\\) given \\(\\eta\\) used β€œuncollapse” collapsed model produce posterior samples target model. uncollapsing fast given following matrix equations: \\[ \\begin{align} \\upsilon_N &= \\upsilon+N \\\\ \\Gamma_N &= (XX^T+\\Gamma^{-1})^{-1} \\\\ \\Theta_N &= (\\eta X^T+\\Theta\\Gamma^{-1})\\Gamma_N \\\\ \\Xi_N &= \\Xi + (\\eta - \\Theta_N X)(\\eta - \\Theta_N X)^T + (\\Theta_N - \\Theta)\\Gamma(\\Theta_N- \\Theta)^T \\\\ p(\\Sigma | \\eta, X) &= W^{-1}(\\Xi_N, \\upsilon_N)\\\\ p(\\Lambda | \\Sigma, \\eta, X) &= MN_{(D-1)\\times Q}(\\Lambda_N, \\Sigma, \\Gamma_N). \\end{align} \\] Laplace approximation slow, unstable (see ) simply needed, default behavior pibble preform matrix calculations produce single point estimate \\(\\Sigma\\) \\(\\Lambda\\) based posterior means \\(p(\\Sigma | \\eta, X)\\) \\((\\Lambda | \\Sigma, \\eta, X)\\).","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"PCR bias can measured corrected combining specially designed calibration curve statistical models. figure gives brief overview calibration experiment. brief, samples pooled create β€œcalibration sample”. calibration sample contains DNA every taxa study. calibration sample split multiple aliquots amplified varying number cycles. sequence resulting samples along original samples. turn modeling (focus vignette). manuscript, show PCR bias well approximated simple multiplicative process. translated sequence count data, means PCR bias represents linear process log-ratio space: just need multinomial logistic-normal linear models (aka pibble models fido package). set model correctly PCR bias just linear model: bias parameter amount bias seen given sample parameter times number PCR cycles sample underwent prior sequencing. case estimate unbiased composition sample just becomes unique intercept sample (technical / biological replicates replicates share intercept; demonstrate well). Another way think want estimate composition number PCR cycles equal zero (aka intercept).","code":""},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"an-example","dir":"Articles","previous_headings":"","what":"An Example","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"show example data (including calibration samples can modeled). mock community data analyzed manuscript. Lets first take brief look data. two objects Y (count table already preprocessed just manuscript) metadata contains covariates need (including number PCR cycles sample undergone). non-obvious variable probably machine just categorical variable denoting 4 different PCR machines used amplify given sample. writing paper, thought might source bias included term model (just demonstrate ). fido doesn’t yet formula interface (write eventually), just need use formula interface provided base-R’s model.matrix function. can see created design matrix encoded PCR machine using series 3 dummy variables. also series dummy variables denoting samples biologically unique (e.g., sample_num). -1 formula just tells R unique intercept biological sample (e.g., use one-hot-encoding rather dummy encoding used PCR machines). Next going specify model priors fit model. detailed description general thought process like follow creating priors fido provided vignette Tips Specifying Priors. just going simple prior just change Gamma default values. wondering, manuscript choose multiplier 10 based maximum marginal likelihood. end vignette show example can done. Next going transform results CLR coordinates interpret space. ’s . Now just interpreting model results. Lets say want investigate estimated unbiased composition, just look inferred random intercepts corresponding sample_num variable. can plot results simply enough: compositional bias introduced cycle can also visualized. fido package bunch tools working fitted models depending ultimately want . See main pibble vignette fuller description can fitted models. One plot find particularly useful, visualizing calibration data fitted bias model. can done follows: two things look plots. First, data look linear space. data look linear options: () something went wrong calibration experiment, (b) something wrong code plotting calibration data, (c) theory prior experiments wrong PCR bias well approximated log-ratio linear. Second, look make sure model good job fitting data. Just remember data sources variation model accounting plotting. example, batch variation (think PCR machine variable included ). also zeros; just add pseudo-count transform data, internally fido actually modeling zeros appropriate pseudo-count.","code":"library(fido) library(dplyr) library(tidyr) library(ggplot2) set.seed(5903) # First load the data data(pcrbias_mock) Y[1:5,1:5] #> cycle13.1 cycle13.2 cycle13.3 cycle14.1 cycle14.2 #> B.longum 27 28 22 37 44 #> B.subtilis 320 299 272 513 650 #> C.aerofaciens 35 32 39 43 84 #> C.hathewayi 61 52 59 93 117 #> C.innocuum 121 91 112 197 208 head(metadata) #> sample_name sample_num cycle_num machine #> 1 cycle13.1 Calibration 13 3 #> 2 cycle13.2 Calibration 13 3 #> 3 cycle13.3 Calibration 13 3 #> 4 cycle14.1 Calibration 14 4 #> 5 cycle14.2 Calibration 14 4 #> 6 cycle14.3 Calibration 14 4 X <- t(model.matrix(~ cycle_num + sample_num + machine -1, data = metadata)) X[,1:5] #> 1 2 3 4 5 #> cycle_num 13 13 13 14 14 #> sample_numCalibration 1 1 1 1 1 #> sample_numMock1 0 0 0 0 0 #> sample_numMock10 0 0 0 0 0 #> sample_numMock2 0 0 0 0 0 #> sample_numMock3 0 0 0 0 0 #> sample_numMock4 0 0 0 0 0 #> sample_numMock5 0 0 0 0 0 #> sample_numMock6 0 0 0 0 0 #> sample_numMock7 0 0 0 0 0 #> sample_numMock8 0 0 0 0 0 #> sample_numMock9 0 0 0 0 0 #> machine2 0 0 0 0 0 #> machine3 1 1 1 0 0 #> machine4 0 0 0 1 1 fit <- pibble(Y = Y, X=X, Gamma = 10*diag(nrow(X))) fit <- to_clr(fit) # pull out indices for random intercepts corresponding to `sample_num` focus.covariate <- rownames(X)[which(grepl(\"sample_num\", rownames(X)))] # Also just so the plot fits nicely in Rmarkdown we are also going to just # plot a few of the taxa focus.coord <- paste0(\"clr_\", c(\"S.gallolyticus\", \"R.intestinalis\", \"L.ruminis\")) # Also to make the plot fit nicely, I just flip the orientation of the plot plot(fit, par=\"Lambda\", focus.cov=focus.covariate, focus.coord=focus.coord) + theme(strip.text.y=element_text(angle=0, hjust=1)) + facet_grid(.data$covariate~.) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. # Also to make the plot fit nicely, I just flip the orientation of the plot plot(fit, par=\"Lambda\", focus.cov=\"cycle_num\") #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. # First transform the data into CLR coordinates (requires pseudo-count to deal with # zeros). Then will convert to tidy format for ggplot tidy_calibration <- clr_array(Y+0.5, 1) %>% # transform to CLR as.data.frame() %>% select(starts_with(\"cycle\")) %>% # select only samples from the calibration t() %>% as.data.frame() tidy_calibration$sample_name <- rownames(tidy_calibration) tidy_calibration <- tidy_calibration %>% gather(coord, val, -sample_name) %>% mutate(coord = as.numeric(substr(coord, 2, 4))) %>% left_join(metadata, by=\"sample_name\") %>% mutate(coord = names_coords(fit)[coord]) # Now the important part - lets grab the pibble result of interest X.tmp <- matrix(0, nrow(X), 2) # Create fake covariate data to predict the regression line based on rownames(X.tmp) <- rownames(X) X.tmp[\"cycle_num\",2] <- 35 X.tmp[\"sample_numCalibration\",] <- 1 X.tmp # simple, just going to predict the composition for each of these two samples #> [,1] [,2] #> cycle_num 0 35 #> sample_numCalibration 1 1 #> sample_numMock1 0 0 #> sample_numMock10 0 0 #> sample_numMock2 0 0 #> sample_numMock3 0 0 #> sample_numMock4 0 0 #> sample_numMock5 0 0 #> sample_numMock6 0 0 #> sample_numMock7 0 0 #> sample_numMock8 0 0 #> sample_numMock9 0 0 #> machine2 0 0 #> machine3 0 0 #> machine4 0 0 # for the plot # Now predict the fitted regression line for cycle_num using X.tmp predicted <- predict(fit, newdata=X.tmp, summary=TRUE) %>% mutate(cycle_num = c(0, 35)[sample]) # now plot predicted %>% ggplot(aes(x=cycle_num)) + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill=\"darkgrey\") + geom_line(aes(y=mean)) + geom_point(data=tidy_calibration, aes(y=val)) + facet_grid(coord~.) + theme_bw() + theme(strip.text.y=element_text(angle=0)) + ylab(\"CLR Coordinates\")"},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"using-maximum-marginal-likelihood-to-estimate-a-scale-of-gamma","dir":"Articles","previous_headings":"","what":"Using Maximum Marginal Likelihood to estimate a scale of Gamma","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"chose prior gamma diagonal matrix multiplied factor 10. choose 10? manuscript used something called maximum marginal likelihood. Essentially refit model different values (just 10) saw one fit data best (one highest marginal likelihood). example can done. notice essentially model tells us just want really big value sigma. ? actually corresponds situation multinomial alone enough explain variation technical replicates. happens occasionally. also see log marginal likelihood pretty much assemptotes around 10. rather picking 100000, just settled 10 numerically stable just seemed reasonable. model basically just says: β€œdon’t choose value less 10”.","code":"sigma <- c(1, 2, 3, 10, 100, 1000) # candidate values lml <- rep(NA, length(sigma)) # log marginal likelihood for (i in seq_along(sigma)){ fit <- pibble(Y=Y, X=X, Gamma = sigma[i]*diag(nrow(X))) lml[i] <- fit$logMarginalLikelihood # this is calculated automatically by fido } base::plot(sigma, lml)"},{"path":"https://jsilve24.github.io/fido/articles/non-linear-models.html","id":"fidobasset-the-model","dir":"Articles","previous_headings":"","what":"fido::basset, the model","title":"Non-linear models with fido::basset","text":"fido can used non-linear modeling. going go one model based multivariate Gaussian processes. Gaussian processes type lazy learner, named model lazy dog: Basset Hound. Hence model called basset. basset model can written \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta &\\sim N(\\Lambda[X], \\Sigma, I_N) \\\\ \\Lambda[X] &\\sim \\textsf{GP}(\\Theta[X], \\Sigma, \\Gamma[X]) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] now label quantities interpreted function square brackets. particular, use notation \\(\\Lambda[X]\\) function maps \\(Q \\times N\\) matrix covariates \\(X\\) matrix \\(\\eta\\). \\(\\Lambda\\) can interpreted smooth function relates covariates \\(X\\) composition \\(\\eta\\) potentially non-linear manner. \\(\\Theta[X]\\) mean function evaluated \\(X\\), \\(\\Gamma[X]\\) covariance matrix (gram matrix) formed evaluating positive semi-definite kernel function \\(K\\) set points \\(\\) \\(j\\), .e., \\(\\Gamma_{ij} = K(X_i, X_j)\\). Many different possible kernel functions makes flexible powerful model.","code":""},{"path":"https://jsilve24.github.io/fido/articles/non-linear-models.html","id":"non-linear-time-series-modeling","dir":"Articles","previous_headings":"","what":"Non-linear time-series modeling","title":"Non-linear models with fido::basset","text":"demonstrate basset going reanalyze mallard1 dataset Silverman et al. (2018) provided phyloseq object fido. dataset features 4 artificial gut vessels sampled daily hourly 1 month many technical replicates. accord prior analyses (make easy visualize results) going just analyze bacterial families frequently observed. Note: full dataset (sequence variant level without preprocessing) available run data(mallard). simplicity just look samples vessel 12. function basset wrapper around fido internals make fitting model easy. basset patterned function pibble requires Theta Gamma given matrix functions rather matrices. Theta must function given X outputs \\(D-1 \\times N\\) matrix (just like give pibble) Gamma must function given X outputs \\(N \\times N\\) covariance matrix (e.g., covariance samples). kernel functions meet requirements Gamma fido already. use Squared Exponential (SE) kernel Gamma set Theta zero function. SE kernel give us non-linear smoothing observed time-series. Important Note: Currently, Theta must output matrix represented default coordinate system (\\(ALR_D\\)). may generalized future. just specify Kernel parameters manually, generally parameters can chosen cross-validation. turns basset really just creating pibblefit object little special represents posterior non-linear functions. benefit many methods available pibblefit objects work bassetfit objects. example, can use transformation methods: Really basset shows power use smooth. Now going create visual shows observed data CLR coordinates (need add pseudo-count) along smoothed estimates.","code":"library(fido) library(dplyr) library(tidyr) library(ggplot2) data(mallard_family) # Just take vessel 1 sample.ids <- mallard_family$sample_data[mallard_family$sample_data$Vessel == 1,] # Just take hourly samples sample.ids <- sample.ids[(sample.ids$time > \"2015-11-20 15:00:00 UTC\") & (sample.ids$time < \"2015-11-25 16:00:00 UTC\"),] # Subsetting the sample data and OTU data subset.sample_data <- mallard_family$sample_data[mallard_family$sample_data$X.SampleID %in% sample.ids$X.SampleID,] subset.otu_table <- mallard_family$otu_table[rownames(mallard_family$otu_table) %in% sample.ids$X.SampleID,] # Order samples - to make plotting easy later o <- order(subset.sample_data$time) subset.otu_table <- subset.otu_table[o,] subset.sample_data <- subset.sample_data[o,] # Extract Data / dimensions from Phyloseq object Y <- t(as(subset.otu_table, \"matrix\")) D <- nrow(Y) N <- nrow(subset.sample_data) # X in hours X <- as.numeric(subset.sample_data$time) X <- t((X-min(X)) / 3600) # Specify Priors Gamma <- function(X) SE(X, sigma=5, rho=10) # Create partial function Theta <- function(X) matrix(0, D-1, ncol(X)) upsilon <- D-1+3 Xi <- matrix(.4, D-1, D-1) diag(Xi) <- 1 # Now fit the model fit <- fido::basset(Y, X, upsilon, Theta, Gamma, Xi) #> No rows of X were specified. Using all rows... fit.clr <- to_clr(fit) # Plot Sigma in CLR plot(fit.clr, par=\"Sigma\", focus.coord=c(\"clr_seq_6\", \"clr_seq_5\", \"clr_seq_2\")) # predict not just missing days but also forecast into future X_predict <- t(1:(max(X))) predicted <- predict(fit.clr, X_predict, jitter=1) family_names <- as(mallard_family$tax_table$Family, \"vector\") Y_clr_tidy <- clr_array(Y+0.65, parts = 1) %>% gather_array(mean, coord, sample) %>% mutate(time = X[1,sample], coord = paste0(\"CLR(\", family_names[coord],\")\")) predicted_tidy <- gather_array(predicted, val, coord, sample, iter) %>% mutate(time = X_predict[1,sample]) %>% filter(!is.na(val)) %>% group_by(time, coord) %>% summarise_posterior(val, na.rm=TRUE) %>% ungroup() %>% mutate(coord = paste0(\"CLR(\", family_names[coord],\")\")) ggplot(predicted_tidy, aes(x = time, y=mean)) + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill=\"darkgrey\", alpha=0.5) + geom_ribbon(aes(ymin=p25, ymax=p75), fill=\"darkgrey\", alpha=0.9)+ geom_line(color=\"blue\") + geom_point(data = Y_clr_tidy, alpha=0.5) + facet_wrap(~coord, scales=\"free_y\") + theme_minimal()+ theme(axis.title.y = element_blank(), axis.title.x = element_blank(), axis.text.x = element_text(angle=45))"},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"fidoorthus-the-model","dir":"Articles","previous_headings":"","what":"fido::orthus, the model","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"fido can used jointly modeling multivariate count data multivariate Gaussian data. example, reasonable model jointly model 16S microbiome data metabolomics data jointly. β€œtwo-headed” nature model, e.g., two observed data-sets, named model orthus, two-headed dog brother Cerberus Greek Mythology. orthus model can written \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\begin{bmatrix}\\eta_j \\\\ Z_j \\end{bmatrix} &\\sim N(\\Lambda X, \\Sigma) \\\\ \\Lambda &\\sim N(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] Note looks nearly identical pibble model appended second (Gaussian) dataset (\\(Z\\)) onto \\(\\eta\\). , definition \\(\\Lambda\\) changes (now larger bottom rows dictating covariates \\(X\\) influence second dataset). Similarly, \\(\\Sigma\\) now much larger can though \\[ \\Sigma = \\begin{bmatrix} \\Sigma_{(\\eta, \\eta)} & \\Sigma_{(\\eta, Z)} \\\\ \\Sigma_{(Z, \\eta)} & \\Sigma_{(Z, Z)}\\end{bmatrix} \\] \\(\\Sigma_{(\\eta, \\eta)}\\) describes covariance log-ratios (e.g., covariance among multinomial categories log-ratio space), \\(\\Sigma_{(Z, Z)}\\) describes covariance dimensions \\(Z\\) (e.g., metabolites Z metabolomics data), \\(\\Sigma_{(\\eta, Z)} = \\Sigma_{(Z, \\eta)}^T\\) represents covariance log-ratios dimensions \\(Z\\) (e.g., microbial taxa metabolites). Similar \\(\\Sigma\\) \\(\\Lambda\\), parameters \\(\\Xi\\) \\(\\Theta\\) undergo similar expansion accommodate second dataset.","code":""},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"joint-modeling-of-microbial-16s-data-and-metabolomics","dir":"Articles","previous_headings":"","what":"Joint modeling of Microbial 16S data and Metabolomics","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"demonstrate orthus perform toy analysis data Kashyap et al. (2013) made available Callahan et al. (2016) part recently published microbiome data analysis workflow (Callahan et al. 2016). follow data preprocessing Callahan et al. (2016) just don’t drop taxa instead amalgamate don’t pass filtering category called β€œβ€. maintain proper variance multinomial model. Now going just bit processing get data format orthus. Note extra metadata just going use intercept model time. Now going set priors. priors going similar pibble now need think prior covariance among metabolites metabolites log-ratios taxa. Remember, priors must defined \\(ALR_D\\) (e.g., ALR reference D-th taxa; may changed future make specifying priors user friendly). going form prior \\(\\Sigma\\) specifying \\(\\upsilon\\) \\(\\Xi\\). specify weak prior belief taxa independent terms log absolute abundance. can translate statement covariance log absolute abundance statement log-ratio covariance pre- post-multiplying \\(ALR_D\\) contrast matrix (refer \\(GG\\) ). Additionally, believe likely substantial covariance taxa metabolites assume metabolites likely independent. Note structure prior, everything independent moderate positive covariance log-ratios based shared definition terms \\(D\\)-th taxa. parts prior less interesting. going state mean \\(\\Lambda\\) centered \\(\\mathbf{0}\\) signal--noise ratio data approximately 1 (later part specified \\(\\Gamma=\\)). Finally fit model. Next going transform log-ratios \\(ALR_D\\) \\(CLR\\). written transformation functions, e.g., to_clr etc… work orthusfit objects similar manner work pibblefit objects. orthusfit objects transform log-ratio components parameters leaving parts inferred model parameters (.e., parts associated metabolites) untouched.","code":"metab_path <- system.file(\"extdata/Kashyap2013\", \"metabolites.csv\", package=\"fido\") microbe_path <- system.file(\"extdata/Kashyap2013\", \"microbe.rda\", package=\"fido\") metab <- read.csv(metab_path, row.names = 1) metab <- as.matrix(metab) microbe <- get(load(microbe_path)) ## Preprocessing ## # Metabolite Preprocessing keep_ix <- rowSums(metab == 0) <= 3 metab <- metab[keep_ix, ] # 16S Preprocesing - plus some weirdness to rename amalgamated category to \"other\" keep_ix <- taxa_sums(microbe) > 4 keep_ix <- keep_ix & (rowSums(otu_table(microbe)>2)>3) microbe <- merge_taxa(microbe, taxa_names(microbe)[!keep_ix]) nms <- taxa_names(microbe) rnm <- which(taxa_names(microbe)==taxa_names(microbe)[!keep_ix][1]) nms[rnm] <- \"other\" taxa_names(microbe) <- nms rm(nms, rnm) # bit of preprocessing metab <- log10(1 + metab) Y <- otu_table(microbe, taxa_are_rows=TRUE) Z <- metab #(metabolites are rows) X <- matrix(1, 1, phyloseq::nsamples(microbe)) # save dims for easy reference N <- ncol(Y) P <- nrow(Z) Q <- nrow(X) D <- nrow(Y) upsilon <- (D-1+P)+10 # weak-ish prior on covariance over joint taxa and metabolites Xi <- diag(D-1+P) GG <- cbind(diag(D-1), -1) Xi[1:(D-1), 1:(D-1)] <- GG%*%diag(D) %*% t(GG) Xi <- Xi * (upsilon-D-P) # this scales Xi to have the proper mean we wanted image(Xi) Gamma <- diag(Q) Theta <- matrix(0, D-1+P, Q) fit <- orthus(Y, Z, X, Theta=Theta, Gamma=Gamma, Xi=Xi, upsilon=upsilon, n_samples=1000) fit <- to_clr(fit) print(fit) #> orthusfit Object: #> Number of Samples: 12 #> Number of Categories: 114 #> Number of Zdimensions: 405 #> Number of Covariates: 1 #> Number of Posterior Samples: 1000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System: clr"},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"investigate-model-results","dir":"Articles","previous_headings":"","what":"Investigate Model Results","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"ton ways visualize inferred model. make network diagrams relating taxa taxa, taxa metabolites metabolites metabolites. look low dimensional representation joint covariance create something much akin canonical correlation analysis (CCA). look well metabolites predict taxa vice-versa. sake simplicity something much simpler. just going find list taxa metabolite covariances model confident . looks hundred covariances can fairly confident .","code":"# First just look ath the cross-covariances fit by the model # (covariance between taxa in CLR coordinates and metabolites) # This requires that we extract the corner of Sigma. xcor <- fit$Sigma[1:D, D:(D-1+P),] # Initial preprocessing to speed up computation of posterior intervals # As there are a lot of cross-covariance terms we are going to first # weed down the list of things we have to look at by first pass # selecting only those taxa that have a large posterior mean for the covariance xcor.mean <- apply(xcor, c(1,2), mean) to.analyze <- fido::gather_array(xcor.mean, cov, taxa, metabolite) %>% arrange(-abs(cov)) %>% .[1:1000,] %>% mutate(tm =paste0(taxa, \"_\", metabolite)) # Subset Covariance to those we are interested in and calculate posterior # confidence intervals. xcor.summary <- fido::gather_array(xcor, cov, taxa, metabolite, iter) %>% mutate(tm=paste0(taxa, \"_\", metabolite)) %>% filter(tm %in% to.analyze$tm) %>% mutate(taxa = rownames(Y)[taxa], metabolite = rownames(Z)[metabolite]) %>% group_by(taxa, metabolite) %>% fido:::summarise_posterior(cov) %>% arrange(mean) %>% filter(taxa != 'other') # we don't care about these # Select those covariances where the model has high certainty (95%) that # the true covariance is not zero. xcor.summary %>% filter(sign(p2.5)==sign(p97.5)) %>% filter(abs(mean) > 2) #> # A tibble: 218 x 8 #> # Groups: taxa [17] #> taxa metabolite p2.5 p25 p50 mean p75 p97.5 #> #> 1 722 206.0445922 -6.55 -3.96 -3.08 -3.33 -2.32 -1.51 #> 2 7816 206.0445922 -5.63 -3.23 -2.45 -2.65 -1.85 -1.05 #> 3 722 290.9298419 -5.18 -3.09 -2.42 -2.62 -1.85 -1.23 #> 4 18182 380.1846197 -5.20 -3.07 -2.38 -2.55 -1.83 -1.03 #> 5 722 181.4504354 -5.19 -3.04 -2.36 -2.55 -1.80 -1.13 #> 6 722 177.0565368 -4.98 -3.01 -2.30 -2.50 -1.78 -1.08 #> 7 722 180.072273 -5.03 -3.06 -2.30 -2.49 -1.71 -0.986 #> 8 19517 380.1846197 -5.15 -3.06 -2.33 -2.49 -1.71 -0.952 #> 9 2943 380.1846197 -4.89 -2.97 -2.34 -2.49 -1.83 -1.03 #> 10 722 176.0343919 -4.93 -2.95 -2.25 -2.48 -1.79 -1.09 #> # ... with 208 more rows"},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"qualifications-and-caution","dir":"Articles","previous_headings":"","what":"Qualifications and Caution","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"Please note, performed analysis demonstrate use orthus model repeatedly asked . think cool model quite useful right circumstances. like point philosophical points analysis performed . First, performed analysis just demonstrate orthus. really don’t know data showcased . metabolite 206.0445922? idea. reason metabolites dataset named. reason left taxa indexed sequence variant number. Second (important), identifying relationships taxa metabolites (two high-dimensional multivariate data-sets) really difficult! looking just 114 taxa 405 leads 46170 possible covariances 12 samples! Yes orthus Bayesian model, Yes, Bayesian models can quite useful parameters samples, limit reasonability. Really, Bayesian models great can perfectly capture prior beliefs prior. often can really done perfectly? caution users, use orthus carefully. Consider metabolites taxa really care can, isolate analyses . Alright, ’s probably enough philosophizing R package Vignette. hope enjoy orthus.","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Picking Priors","text":"Picking priors important difficult part Bayesian statistics. vignette intended introduction Bayesian statistics, assume readers already know prior/posterior . Just review, prior probability distribution representing analysts belief model parameters prior seeing data. posterior (sense optimal) probability distribution representing belief seen data (given prior beliefs). Since priors represent analysts belief prior seeing data, makes sense priors often specific given study. example, don’t necessarily believe parameters learned RNA-seq data analysis someone studying microbial communities political gerrymandering. ’s , probably different prior beliefs depending microbial community studying study set . (least) two important reasons think carefully priors. First, meaning posterior conditioned prior accurately reflecting beliefs. posterior represents optimal belief given data given prior beliefs. specified prior reflect beliefs well prior won’t right meaning. course priors imperfect best can. Second, practical note, really weird priors can lead numerical issues optimization uncertainty quantification fido. later problem can appear failure reach MAP estimate error trying invert Hessian. Overall, prior single function (probability distribution) specified jointly parameters interest. Still, can confusing think prior joint form. instead try simplify break prior distinct components. numerous models fido, focus prior pibble model , opinion, heart fido. Just review, pibble model given : \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim N(\\Lambda X_j, \\Sigma) \\\\ \\Lambda &\\sim N(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon). \\end{align} \\] consider first two lines part likelihood bottom three lines part prior. Therefore following three components prior: prior \\(\\Sigma\\): \\(\\Sigma \\sim W^{-1}(\\Xi, \\upsilon)\\) prior \\(\\Lambda\\): \\(\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma)\\) prior \\(\\eta_j\\): \\(\\eta_j \\sim N(\\Lambda X_j, \\Sigma)\\)","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"background-on-the-matrix-normal","dir":"Articles","previous_headings":"","what":"Background on the Matrix Normal","title":"Picking Priors","text":"three things explain going forward. vec operation, Kronecker product, matrix normal. first two needed understand matrix-normal.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-vec-operation","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"The Vec Operation","title":"Picking Priors","text":"vec operation just special way saying column stacking. matrix \\[X = \\begin{bmatrix} & b \\\\ c & d \\end{bmatrix}\\] \\[vec(X) = \\begin{bmatrix} \\\\ c \\\\ b\\\\d\\end{bmatrix}.\\] ’s simple.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"kronker-products","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"Kronker Products","title":"Picking Priors","text":"turns many different definitions multiply two matrices together. standard matrix multiplication, element-wise multiplication, also something called Kronecker product. Given two matrices \\(X = \\begin{bmatrix} x_{11} & x_{12} \\\\ x_{21} & x_{22} \\end{bmatrix}\\) \\(Y = \\begin{bmatrix} y_{11} & y_{12} \\\\ y_{21} & y_{22} \\end{bmatrix}\\), define Kronecker product \\(X\\) \\(Y\\) \\[ X \\otimes Y = \\begin{bmatrix}x_{11}Y & x_{12}Y \\\\ x_{21}Y & x_{22}Y \\end{bmatrix} = \\begin{bmatrix} x_{11}y_{11} & x_{11}y_{12} & x_{12}y_{11} & x_{12}y_{12} \\\\ x_{11}y_{21} & x_{11}y_{22} & x_{12}y_{21} & x_{12}y_{22} \\\\ x_{21}y_{11} & x_{21}y_{12} & x_{22}y_{11} & x_{22}y_{12} \\\\ x_{21}y_{21} & x_{21}y_{22} & x_{22}y_{21} & x_{22}y_{22} \\\\ \\end{bmatrix}. \\] Notice essentially making larger matrix patterning Y X?","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-matrix-normal","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"The Matrix Normal","title":"Picking Priors","text":"going forward may wondering normal prior \\(\\Lambda\\) three parameters (\\(\\Theta\\), \\(\\Sigma\\), \\(\\Gamma\\)) rather two. means prior \\(\\Lambda\\) matrix normal rather multivariate normal. matrix normal generalization multivariate normal random matrices (just random vectors). simplified description matrix normal. multivariate normal mean vector covariance matrix describing spread distribution mean. matrix normal mean matrix, two covariance matrices describing spread distribution mean. first covariance matrix (\\(\\Sigma\\)) describes covariance rows \\(\\Lambda\\) second covariance matrix (\\(\\Gamma\\)). describes covariance columns \\(\\Lambda\\). relationship multivariate normal matrix normal follows. \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma) \\leftrightarrow vec(\\Lambda) \\sim N(vec(\\Theta), \\Gamma \\otimes \\Sigma)\\] \\(\\otimes\\) represents Kronecker product \\(vec\\) represents vectorization operation (.e., column stacking matrix produce long vector). can now ask, distribution single element \\(\\Lambda\\)? answer simply \\[\\Lambda_{ij} \\sim N(\\Theta_{ij}, \\Sigma_{ii}\\Gamma_{jj}).\\] Similarly, can ask distribution single column \\(\\Lambda\\): \\[\\Lambda_{\\cdot j} \\sim N(\\Theta_{\\cdot j}, \\Gamma_{jj} \\Sigma).\\] Make sense? take look wikipedia complete treatment matrix-normal.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-sigma","dir":"Articles","previous_headings":"","what":"The prior for \\(\\Sigma\\)","title":"Picking Priors","text":"\\(\\Sigma\\) describes covariance log-ratios. \\(\\phi^{-1}\\) inverse \\(ALR_D\\) transform \\(\\Sigma\\) describes covariance \\(ALR_D\\) coordinates. Also note, section going hardest one, priors components faster describe probably easier understand.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"background-on-the-prior","dir":"Articles","previous_headings":"The prior for \\(\\Sigma\\)","what":"Background on the Prior","title":"Picking Priors","text":"prior \\(\\Sigma\\) Inverse Wishart written \\[\\Sigma \\sim W^{-1}(\\Xi, \\upsilon)\\] \\(\\Xi\\) called scale matrix (must valid covariance matrix ), \\(\\upsilon\\) called degrees freedom parameter. \\(\\Sigma\\) \\((D-1)x(D-1)\\) matrix, constraint \\(\\upsilon\\) \\(\\upsilon \\geq D-1\\). inverse Wishart mildly complex form moments (e.g., mean variance). mean given \\[E[\\Sigma] = \\frac{\\Xi}{\\upsilon-D-2} \\quad \\text{} \\upsilon > D.\\] variance somewhat complicated (Wikipedia gives relationships) purposes can think \\(\\upsilon\\) setting variance, larger \\(\\upsilon\\) means less uncertainty (lower variance) mean, smaller \\(\\upsilon\\) means uncertainty (higher variance) mean.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-upsilon-and-xi-","dir":"Articles","previous_headings":"The prior for \\(\\Sigma\\)","what":"Choosing \\(\\upsilon\\) and \\(\\Xi\\).","title":"Picking Priors","text":"Reading may seem intimidating: ’s form mean… ? ’s-think covariance log-ratios? ’s think . think -terms putting prior true abundances log-space transforming prior log-ratios. can really explain need explain bit background. Compositional Data Analysis Nutshell turns transforms \\(\\phi\\) examples log-ratio transforms studied field called compositional data analysis. Briefly, transforms can written form: \\(\\eta = \\Psi \\log \\pi\\). log-ratios (\\(\\eta\\)) just linear transform log-transformed relative-abundances. turns special properties \\(\\Psi\\), following also holds: \\(\\eta = \\Psi \\log w\\) \\(w\\) absolute (relative) abundances. can say log-ratios also just linear transform log-transformed absolute-abundances. Linear Transformations Covariance Matricies Recall \\(x \\sim N(\\mu, \\Sigma)\\) (multivariate \\(x\\)) matrix \\(\\Psi\\) \\(\\Psi x \\sim N(\\Psi \\mu, \\Psi \\Sigma \\Psi^T)\\). say think linear transformations covariance matrices applied pre post multiplying transformation matrix \\(\\Psi\\). Linear transformation Inverse Wishart turns \\(\\Omega \\sim W^{-1}(\\gamma, S)\\) \\(D\\times D\\) covariance matrix \\(\\Omega\\) \\(M\\times D\\) matrix \\(\\Psi\\) \\(\\Psi \\Omega \\Psi^T \\sim W^{-1}(\\upsilon, \\Psi S \\Psi^T)\\). Putting Together central question: reasonable prior log-ratios? used working log-ratios difficult. potentially simpler problem place prior log-absolute-abundances (\\(\\Omega\\)) whatever measuring, e.g., placing prior covariance log-absolute-abundances bacteria (\\(\\Omega \\sim W^{-1}(\\gamma, S)\\). example: Lets say given microbiome dataset, weak prior belief , average, taxa independent variance 1. want come values \\(\\gamma\\) \\(S\\) prior \\(\\Omega\\) reflect . Lets start specifying mean \\(\\Omega\\). \\[E[\\Omega] =I_D.\\] Next say little certainty mean (want high variance) set \\(\\gamma\\) close lower bound \\(D\\) (often like \\(\\gamma=D+3\\)). Now \\(\\gamma\\) need calculate \\(S\\) solving \\(S\\) equation Inverse-Wishart mean1: \\[S = E[\\Omega](\\gamma -D-1).\\] go ’s prior log-absolute-abundances. Next need transform prior log-ratios. Well allows us simplifying taking contrast matrix \\(\\Psi\\) log-ratio transform want transforming prior \\(\\Omega\\) \\(\\Sigma \\sim W^{-1}(\\gamma, \\Psi S \\Psi^T)\\). ’s prior log-ratios built form prior log-absolute-abundances. Note Phylogenetic priors: phylogenetic linear models, can make \\(S\\) (defined ) covariance derived phylogenetic differences taxa. allows fit phylogenetic linear models fido. Making Even Simpler Say prior \\(\\Omega \\sim W^{-1}(\\gamma, S)\\) covariance log-absolute-abundances (created example ). want transform prior \\(\\Sigma \\sim W^{-1}(\\upsilon, \\Xi)\\). simply taking \\(\\upsilon=\\gamma\\). calculate \\(\\Xi\\), rather worrying \\(\\Psi\\), functions driver package wrote , recipes: Hopefully simple enough useful folks.","code":"# To put prior on ALR_j coordinates for some j in (1,...,D-1) Xi <- clrvar2alrvar(S, j) # To put prior in a particular ILR coordinate defined by contrast matrix V Xi <- clrvar2ilrvar(S, V) # To put prior in CLR coordinates (this one needs two transforms) foo <- clrvar2alrvar(S, D) Xi <- alrvar2clrvar(foo, D)"},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-lambda","dir":"Articles","previous_headings":"","what":"The prior for \\(\\Lambda\\)","title":"Picking Priors","text":"\\(\\Lambda\\) regression parameters linear model. prior \\(\\Lambda\\) just matrix-normal described : \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma).\\] \\(\\Theta\\) mean matrix \\(\\Lambda\\), \\(\\Sigma\\) actually random (.e., don’t specify , specified prior \\(\\Sigma\\) discussed already), \\(\\Gamma\\) \\(QxQ\\)2 covariance matrix describing covariance columns \\(\\Lambda\\) (.e., effect different covariates). really need just discuss specifying \\(\\Theta\\) specifying \\(\\Gamma\\).","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-theta","dir":"Articles","previous_headings":"The prior for \\(\\Lambda\\)","what":"Choosing \\(\\Theta\\)","title":"Picking Priors","text":"really easy, situations simply matrix zeros. implies expect average, covariates interest associated composition.3. helps prevent inferrign effect isn’t one. Outside simple case lets say actually prior knowledge effects covariates. Perhaps knowledge mean effect covariates log-absolute-abundances describe \\(D\\times Q\\) matrix \\(\\). Well can just transform prior log-ratio coordinates want follows:","code":"# Transform from log-absolute-abundance effects to effects on absolute-abundances foo <- exp(A) # To put prior on ALR_j coordinates for some j in (1,...,D-1) Theta <- driver::alr_array(foo, j, parts=1) # To put prior in a particular ILR coordinate defined by contrast matrix V Theta <- driver::ilr_array(foo, V, parts=1) # To put prior in CLR coordinates Theta <- driver::clr_array(foo, parts=1)"},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-gamma","dir":"Articles","previous_headings":"The prior for \\(\\Lambda\\)","what":"Choosing \\(\\Gamma\\)","title":"Picking Priors","text":"Alright, get break \\(\\Gamma\\) doesn’t care log-ratio coordinates . ’s just \\(Q\\times Q\\) covariance matrix describing covariation effects \\(Q\\) covariates. example, Lets say data microbiome survey disease number healthy controls. goal figure different composition two groups. model may two covariates, intercept binary variable (1 sample disease, 0 healthy). probably want set prior allows intercept moderately large likely believe differences disease health small (want effect binary covariate modest). specify: \\[\\Gamma = \\alpha\\begin{bmatrix} 1 & 0 \\\\ 0& .2 \\end{bmatrix}\\] scalar \\(\\alpha\\) discuss depth . Note diagonals zero also specifies don’t think covariation intercept effect disease state (probably pretty good assumption example). choice alpha can important. describe later section choice \\(\\upsilon\\) \\(\\Xi\\) interact choice \\(\\Gamma\\). First need briefly describe prior \\(\\eta\\).","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-eta","dir":"Articles","previous_headings":"","what":"The Prior for \\(\\eta\\)","title":"Picking Priors","text":"\\(\\eta\\) log-ratios regression relationship obscured noise. \\[\\eta_j \\sim N(\\Lambda X_j, \\Sigma).\\] Notice \\(\\Sigma\\) shows like prior \\(\\Lambda\\). Actually, parameters need specify, prior \\(\\eta\\) completely induced based priors \\(\\Lambda\\) \\(\\Sigma\\). reason discuss want readers recognize variation \\(\\eta\\) regression relationship specified \\(\\Sigma\\). means \\(\\Sigma\\) large noise, small less noise. also taken account specifying \\(\\upsilon\\) \\(\\Xi\\). next section expand idea.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"how-the-choice-of-upsilon-and-xi-interacts-with-the-choice-of-gamma","dir":"Articles","previous_headings":"","what":"How the Choice of \\(\\upsilon\\) and \\(\\Xi\\) Interacts With the Choice of \\(\\Gamma\\)","title":"Picking Priors","text":"point subsection following, choice \\(\\Gamma\\), \\(\\Xi\\), \\(\\upsilon\\) senses place prior signal--noise ratio data. short: larger \\(\\Gamma\\) relative \\(\\Sigma\\) (specified \\(\\upsilon\\) \\(\\Xi\\)) signal, smaller \\(\\Gamma\\) realtive \\(\\Sigma\\) noise. describe . Notice alternatively write prior \\(\\eta\\) \\[\\eta \\sim N(\\Lambda X, \\Sigma, )\\] using matrix normal parallel prior \\(\\Lambda\\) \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma).\\] can write vec form relationships \\[ \\begin{align} vec(\\eta) &\\sim N(vec(\\Lambda X), \\otimes\\Sigma) \\\\ vec(\\Lambda) &\\sim N(vec(\\Theta), \\Gamma \\otimes \\Sigma). \\end{align} \\] write \\(\\Gamma\\) multiplication scalar scaled matrix (matrix scaled sum diagonals equals 1) \\(\\Gamma=\\alpha \\bar{\\Gamma}\\) describing choice \\(\\Gamma\\) , equations turn : \\[ \\begin{align} vec(\\eta) &\\sim N(vec(\\Lambda X), 1(\\otimes\\Sigma)) \\\\ vec(\\Lambda) &\\sim N(vec(\\Theta), \\alpha(\\bar{\\Gamma}\\otimes \\Sigma)). \\end{align} \\] can see magnitude \\(\\Lambda\\) factor \\(\\alpha\\) times noise level. \\(\\alpha<1\\) magnitude \\(\\Lambda\\) smaller magnitude noise. \\(\\alpha > 1\\) magnitude \\(\\Lambda\\) greater magnitude noise. actual β€œsignal” product \\(\\Lambda X\\) (depends scale \\(X\\)) well hopefully point clear: magnitude \\(\\Sigma\\) (specified \\(\\upsilon\\) \\(\\Xi\\)) comparision magnitude \\(\\Gamma\\) sets signal--noise ratio prior.","code":""},{"path":"https://jsilve24.github.io/fido/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Justin Silverman. Author. Kim Roche. Contributor. Michelle Nixon. Contributor, maintainer.","code":""},{"path":"https://jsilve24.github.io/fido/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Silverman, JD, Roche, K, Holmes, ZC, David, LA, Mukherjee, S. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2022, Journal Machine Learning Research.","code":"@Article{, title = {Bayesian Multinomial Logistic Normal Models through Marginally Latent Matrix-T Processes}, author = {Justin D Silverman and Kim Roche and Zachary C Holmes and Lawrence A David and Sayan Mukherjee}, year = {2022}, volume = {23}, journal = {Journal of Machine Learning Research}, url = {https://www.jmlr.org/papers/v23/19-882.html}, }"},{"path":"https://jsilve24.github.io/fido/index.html","id":"fido-formerly-stray","dir":"","previous_headings":"","what":"Bayesian Multiniomial Logisic Normal Models (really fast)","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Multinomial Logistic-Normal Models (really fast) little tar-ball joy","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Silverman, JD, Roche, K, Holmes, ZC, David, LA, Mukherjee, S. Journal Machine Learning Research. 23(7), 2022:1βˆ’42.","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"source code freely availale GPL-3 License.","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"download development version GitHub: notes: version 1.0.0, fido now CRAN. installation options can greatly speed fido (often much 10-50 fold). detailed description installation, take look installation page. Vignettes prebuilt fido webpage. want vignettes build locally package installation must also pass build=TRUE build_opts = c(\"---resave-data\", \"---manual\") options install_github.","code":"install.packages(\"fido\") devtools::install_github(\"jsilve24/fido\", ref=\"develop\")"},{"path":"https://jsilve24.github.io/fido/index.html","id":"vignettes","dir":"","previous_headings":"","what":"Vignettes","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Introduction fido::Pibble Non-linear models fido::basset Joint Modeling (e.g., Multinomics) fido::Orthus Tips Specifying Priors Mitigating PCR bias","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"research-using-fido","dir":"","previous_headings":"","what":"Research Using fido","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Silverman et al., Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes Silverman et al., Measuring Mitigating PCR Bias Microbiome Data Holmes et al., Short-Chain Fatty Acid Production Gut Microbiota Children Obesity Differs According Prebiotic Choice Bacterial Community Composition Silverman et al., Using Influenza surveillance ntworks estimate state-specific prevalance SARS-CoV-2 United States","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"bugsfeature-requests","dir":"","previous_headings":"","what":"Bugs/Feature requests","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"checked FAQ? appreciate bug reports feature requests. Please post github issue tracker .","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"Generic method accessing model fit dimensions","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"","code":"# S3 method for pibblefit ncategories(m) # S3 method for pibblefit nsamples(m) # S3 method for pibblefit ncovariates(m) # S3 method for pibblefit niter(m) # S3 method for orthusfit ncategories(m) # S3 method for orthusfit nsamples(m) # S3 method for orthusfit ncovariates(m) # S3 method for orthusfit niter(m) ncategories(m) nsamples(m) ncovariates(m) niter(m)"},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"m object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"integer","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"alternative approach accessing dimensions access directly pibblefit object using list indexing. * ncategories equivalent m$D * nsamples equivalent m$N * ncovariates equivalent m$Q","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of a matrix β€” alr","title":"Compute the ALR of a matrix β€” alr","text":"Compute ALR matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of a matrix β€” alr","text":"","code":"alr(x, d = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of a matrix β€” alr","text":"x matrix rows samples d Index column used reference. Defaults last column","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of a matrix β€” alr","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the inverse ALR of a matrix β€” alrInv","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"Compute inverse ALR matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"","code":"alrInv(y, d = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"y ALR transformed matrix d Index column used reference. Defaults last column","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of an array β€” alrInv_array","title":"Compute the ALR of an array β€” alrInv_array","text":"Compute ALR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of an array β€” alrInv_array","text":"","code":"alrInv_array(y, d = dim(y)[coords] + 1, coords)"},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of an array β€” alrInv_array","text":"y multidimensional ALR transformed array d Index column used reference. Defaults last column coords index dimension `x` represents coordinates","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of an array β€” alrInv_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of an array β€” alr_array","title":"Compute the ALR of an array β€” alr_array","text":"Compute ALR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of an array β€” alr_array","text":"","code":"alr_array(x, d = dim(x)[parts], parts)"},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of an array β€” alr_array","text":"x multidimensional array simplex d Index column used reference. Defaults last column parts index dimension `x` represents parts","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of an array β€” alr_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert object of class orthusfit to a list β€” as.list.orthusfit","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"Convert object class orthusfit list","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"","code":"# S3 method for orthusfit as.list(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"x object class orthusfit ... currently unused","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"list converted orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert object of class pibblefit to a list β€” as.list.pibblefit","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"Convert object class pibblefit list","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"","code":"# S3 method for pibblefit as.list(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"x object class pibblefit ... currently unused","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"list converted pibblefit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"convert list to orthusfit β€” as.orthusfit","title":"convert list to orthusfit β€” as.orthusfit","text":"convert list orthusfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"convert list to orthusfit β€” as.orthusfit","text":"","code":"as.orthusfit(object)"},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"convert list to orthusfit β€” as.orthusfit","text":"object list object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"convert list to orthusfit β€” as.orthusfit","text":"orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"convert list to pibblefit β€” as.pibblefit","title":"convert list to pibblefit β€” as.pibblefit","text":"convert list pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"convert list to pibblefit β€” as.pibblefit","text":"","code":"as.pibblefit(object)"},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"convert list to pibblefit β€” as.pibblefit","text":"object list object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"convert list to pibblefit β€” as.pibblefit","text":"pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit basset models β€” basset_fit","title":"Interface to fit basset models β€” basset_fit","text":"Basset (Lazy Learner) - non-linear regression models fido","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit basset models β€” basset_fit","text":"","code":"basset( Y = NULL, X, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, linear = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), newdata = NULL, ... ) # S3 method for bassetfit refit(m, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ...)"},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit basset models β€” basset_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (NULL) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta function dimensions dim(X) -> (D-1)xN (prior mean gaussian process). additive GP model, can list functions dimensions dim(X) -> (D-1)xN + (optional) matrix size (D-1)xQ prior linear component desired. Gamma function dimension dim(X) -> NxN (kernel matrix gaussian process). additive GP model, can list functions dimension dim(X) -> NxN + QxQ prior covariance matrix linear component specified. assumed order matches order Theta. Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) linear vector denoting rows X used linear component specified. Default rows. init (D-1) x Q initialization Eta optimization pars character vector posterior parameters return newdata Default NULL. non-null, newdata used uncollapse sampler place X. ... arguments passed pibble (used internally fit basset model) m object class bassetfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit basset models β€” basset_fit","text":"object class bassetfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit basset models β€” basset_fit","text":"full model given : $$Y_j \\sim Multinomial(\\Pi_j)$$ $$\\Pi_j = \\Phi^{-1}(\\Eta_j)$$ $$\\Eta \\sim MN_{D-1 x N}(\\Lambda, \\Sigma, I_N)$$ $$\\Lambda \\sim GP_{D-1 x Q}(\\Theta(X), \\Sigma, \\Gamma(X))$$ $$\\Sigma \\sim InvWish(\\upsilon, \\Xi)$$ Gamma(X) short hand Gram matrix Kernel function. Alternatively can used fit additive GP form: $$Y_j \\sim Multinomial(\\Pi_j)$$ $$\\Pi_j = \\Phi^{-1}(\\Eta_j)$$ $$\\Eta \\sim MN_{D-1 x N}(\\Lambda, \\Sigma, I_N)$$ $$\\Lambda = \\Lambda_1 + ... + \\Lambda_p + \\Beta X$$ $$\\Lambda_1 \\sim GP_{D-1 x Q}(\\Theta_1(X), \\Sigma, \\Gamma_p(X))$$ ... $$\\Lambda_p \\sim GP_{D-1 x Q}(\\Theta_1(X), \\Sigma, \\Gamma_1(X))$$ $$\\Beta \\sim MN(\\Theta_B, \\Sigma, \\Gamma_B)$$ $$\\Sigma \\sim InvWish(\\upsilon, \\Xi)$$ Gamma(X) short hand Gram matrix Kernel function. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"Check vector/matrix/data.frame expected dimensions throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"","code":"check_dims(x, d, par)"},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"x object check d expected dimensions par character name x (error message)","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"nothing error, otherwise throws error","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"","code":"y <- c(1,3,4) check_dims(y, 3, \"y\")"},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the CLR of an array β€” clr_array","title":"Compute the CLR of an array β€” clr_array","text":"Compute CLR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the CLR of an array β€” clr_array","text":"","code":"clr_array(x, parts)"},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the CLR of an array β€” clr_array","text":"x multidimensional array index parts index dimension `x` represents parts","code":""},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the CLR of an array β€” clr_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Return regression coefficients of orthus object β€” coef.orthusfit","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"Orthus: Returned array dimension (D-1+P) x Q x iter (ALR ILR) otherwise (D+P) x Q x iter.","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"","code":"# S3 method for orthusfit coef(object, ...)"},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"object object class orthusfit ... options passed coef.orthusfit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"Array dimension (D-1) x Q x iter","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"arguments: use_names column row names passed Y X call pibble, names applied output array.","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Return regression coefficients of pibblefit object β€” coef.pibblefit","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"Pibble: Returned array dimension (D-1) x Q x iter (ALR ILR) otherwise DxQxiter (proportions clr).","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"","code":"# S3 method for pibblefit coef(object, ...)"},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"object object class pibblefit ... options passed coef.pibblefit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"Array dimension (D-1) x Q x iter","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"arguments: `use_names` column row names passed Y X call pibble, names applied output array.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":null,"dir":"Reference","previous_headings":"","what":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"See details model. Notation: N number samples, D dimension response, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"","code":"conjugateLinearModel(Y, X, Theta, Gamma, Xi, upsilon, n_samples = 2000L)"},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"Y matrix dimension D x N X matrix covariates dimension Q x N Theta matrix prior mean dimension D x Q Gamma covariance matrix dimension Q x Q Xi covariance matrix dimension D x D upsilon scalar (must > D-1) degrees freedom InvWishart prior n_samples number samples draw (default: 2000)","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"List components Lambda Array dimension (D-1) x Q x n_samples (posterior samples) Sigma Array dimension (D-1) x (D-1) x n_samples (posterior samples)","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"$$Y ~ MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda ~ MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma ~ InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"","code":"sim <- pibble_sim() eta.hat <- t(alr(t(sim$Y+0.65))) fit <- conjugateLinearModel(eta.hat, sim$X, sim$Theta, sim$Gamma, sim$Xi, sim$upsilon, n_samples=2000)"},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"Convert orthus covariance matricies representations","code":""},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"","code":"oilrvar2ilrvar(Sigma, s, V1, V2) oilrvar2clrvar(Sigma, s, V) oclrvar2ilrvar(Sigma, s, V) oalrvar2clrvar(Sigma, s, d1) oclrvar2alrvar(Sigma, s, d2) oalrvar2alrvar(Sigma, s, d1, d2) oalrvar2ilrvar(Sigma, s, d1, V2) oilrvar2alrvar(Sigma, s, V1, d2)"},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"Sigma covariance matrix arrat specified transformed space (dim(Sigma)[3]=iter) s first s rows colums Sigma transformed V1 ILR contrast matrix basis Sigma already V2 ILR contrast matrix basis Sigma desired V ILR contrast matrix (.e., transformation matrix ILR) d1 alr reference element Sigma already expressed respec d2 alr reference element Sigma expressed respect ","code":""},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a default ILR base β€” create_default_ilr_base","title":"Create a default ILR base β€” create_default_ilr_base","text":"Create default ILR base","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a default ILR base β€” create_default_ilr_base","text":"","code":"create_default_ilr_base(D)"},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a default ILR base β€” create_default_ilr_base","text":"D number parts (e.g., number columns untransformed data)","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a default ILR base β€” create_default_ilr_base","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_package.html","id":null,"dir":"Reference","previous_headings":"","what":"fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package","title":"fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package","text":"Provides methods fitting inspection Bayesian Multinomial Logistic Normal Models using MAP estimation Laplace Approximation. Key functionality implemented C++ scalability.","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Fit fido Parameters to other representations β€” fido_transforms","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"collection convenience functions transforming fido fit objects number different representations including ILR bases, CLR coordinates, ALR coordinates, proportions.","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"","code":"to_proportions(m) to_alr(m, d) to_ilr(m, V = NULL) to_clr(m) # S3 method for pibblefit to_proportions(m) # S3 method for orthusfit to_proportions(m) # S3 method for pibblefit to_alr(m, d) # S3 method for orthusfit to_alr(m, d) # S3 method for pibblefit to_ilr(m, V = NULL) # S3 method for orthusfit to_ilr(m, V = NULL) # S3 method for pibblefit to_clr(m) # S3 method for orthusfit to_clr(m)"},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"m object class pibblefit orthusfit (e.g., output pibble orthus) d (integer) multinomial category take new alr reference V (matrix) contrast matrix ILR basis transform (defaults create_default_ilr_base(D))","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"object","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"orthus, transforms appleid log-ratio parameters Note: degeneracy representations covariance matrix represented terms proportions. function to_proportions attempt transform parameters Sigma prior Xi instead just removes pibblefit object returned.","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"Gather Multidimensional Array Tidy Tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"","code":"gather_array(a, value, ..., .id = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"multidimensional array value unquoted name column values (defaults \"var\") ... unquoted dimension names (defaults \"dim_1\", \"dim_2\", etc...) .id specified, name column created name captured","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"data.frame","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"","code":"a <- array(1:100, dim =c(10, 5, 2)) gather_array(a, sequence, A, B, C) #> A B C sequence #> 1 1 1 1 1 #> 2 2 1 1 2 #> 3 3 1 1 3 #> 4 4 1 1 4 #> 5 5 1 1 5 #> 6 6 1 1 6 #> 7 7 1 1 7 #> 8 8 1 1 8 #> 9 9 1 1 9 #> 10 10 1 1 10 #> 11 1 2 1 11 #> 12 2 2 1 12 #> 13 3 2 1 13 #> 14 4 2 1 14 #> 15 5 2 1 15 #> 16 6 2 1 16 #> 17 7 2 1 17 #> 18 8 2 1 18 #> 19 9 2 1 19 #> 20 10 2 1 20 #> 21 1 3 1 21 #> 22 2 3 1 22 #> 23 3 3 1 23 #> 24 4 3 1 24 #> 25 5 3 1 25 #> 26 6 3 1 26 #> 27 7 3 1 27 #> 28 8 3 1 28 #> 29 9 3 1 29 #> 30 10 3 1 30 #> 31 1 4 1 31 #> 32 2 4 1 32 #> 33 3 4 1 33 #> 34 4 4 1 34 #> 35 5 4 1 35 #> 36 6 4 1 36 #> 37 7 4 1 37 #> 38 8 4 1 38 #> 39 9 4 1 39 #> 40 10 4 1 40 #> 41 1 5 1 41 #> 42 2 5 1 42 #> 43 3 5 1 43 #> 44 4 5 1 44 #> 45 5 5 1 45 #> 46 6 5 1 46 #> 47 7 5 1 47 #> 48 8 5 1 48 #> 49 9 5 1 49 #> 50 10 5 1 50 #> 51 1 1 2 51 #> 52 2 1 2 52 #> 53 3 1 2 53 #> 54 4 1 2 54 #> 55 5 1 2 55 #> 56 6 1 2 56 #> 57 7 1 2 57 #> 58 8 1 2 58 #> 59 9 1 2 59 #> 60 10 1 2 60 #> 61 1 2 2 61 #> 62 2 2 2 62 #> 63 3 2 2 63 #> 64 4 2 2 64 #> 65 5 2 2 65 #> 66 6 2 2 66 #> 67 7 2 2 67 #> 68 8 2 2 68 #> 69 9 2 2 69 #> 70 10 2 2 70 #> 71 1 3 2 71 #> 72 2 3 2 72 #> 73 3 3 2 73 #> 74 4 3 2 74 #> 75 5 3 2 75 #> 76 6 3 2 76 #> 77 7 3 2 77 #> 78 8 3 2 78 #> 79 9 3 2 79 #> 80 10 3 2 80 #> 81 1 4 2 81 #> 82 2 4 2 82 #> 83 3 4 2 83 #> 84 4 4 2 84 #> 85 5 4 2 85 #> 86 6 4 2 86 #> 87 7 4 2 87 #> 88 8 4 2 88 #> 89 9 4 2 89 #> 90 10 4 2 90 #> 91 1 5 2 91 #> 92 2 5 2 92 #> 93 3 5 2 93 #> 94 4 5 2 94 #> 95 5 5 2 95 #> 96 6 5 2 96 #> 97 7 5 2 97 #> 98 8 5 2 98 #> 99 9 5 2 99 #> 100 10 5 2 100"},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":null,"dir":"Reference","previous_headings":"","what":"Multivariate RBF Kernel β€” kernels","title":"Multivariate RBF Kernel β€” kernels","text":"Designed partially specified. (see examples)","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Multivariate RBF Kernel β€” kernels","text":"","code":"SE(X, sigma = 1, rho = median(as.matrix(dist(t(X)))), jitter = 1e-10) LINEAR(X, sigma = 1, c = rep(0, nrow(X)))"},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Multivariate RBF Kernel β€” kernels","text":"X covariate (dimension Q x N; .e., covariates x samples) sigma scalar parameter rho scalar bandwidth parameter jitter small scalar add -diagonal gram matrix (numerical underflow issues) c vector parameter defining intercept linear kernel","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Multivariate RBF Kernel β€” kernels","text":"Gram Matrix (N x N) (e.g., Kernel evaluated pair points)","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Multivariate RBF Kernel β€” kernels","text":"Gram matrix G given SE (squared exponential): $$G = \\sigma^2 * exp(-[(X-c)'(X-c)]/(s*\\rho^2))$$ LINEAR: $$G = \\sigma^2*(X-c)'(X-c)$$","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Takes idea Wu et al. (citation ) calculates IQLR Lambda, potentially useful believe invariant group categories (e.g., taxa / genes) changing (absolute abundance) samples. IQLR defined $$IQLR_x = log(x_i/g(IQVF))$$ 1,...,D. IQVF CLR coordinates whose variance within inter-quantile range (defined probs argument function). different IQVF fit posteior sample IQVFs calculted based posterior estimates Lambda. variance CLR coordinate defined norm row Lambda[,focus.cov] (.e., covariation Eta, explained covariates). definition variance allows uses exclude variation technical / trivial sources calculation IQVF/IQLR.","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"","code":"lambda_to_iqlr(m, focus.cov = NULL, probs = c(0.25, 0.75))"},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"m object class pibblefit (e.g., output pibble) focus.cov vector integers characters specifying columns (covariates) Lambda include calculating IQLR (NULL, default, uses covariates) probs bounds categories (.e., features / genes / taxa) include calculation iqlr (smaller bounds means stringent inclusion criteria)","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"array dimension (D, Q, iter) D number taxa, Q number covariates, iter number posterior samples.","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Primarily intended differential expression analysis assumption small group categories (e.g., taxa / genes) changing","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Jia R. Wu, Jean M. Macklaim, Briana L. Genge, Gregory B. Gloor (2017) Finding center: corrections asymmetry high-throughput sequencing datasets. arxiv:1704.01841v1","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) # Use first two covariates to define iqlr, just show first 5 samples lambda_to_iqlr(fit, 1:2)[,,1:5] #> , , 1 #> #> [,1] [,2] #> [1,] 2.58249657 6.8209952 #> [2,] -3.11052569 -2.7167130 #> [3,] 6.49900999 -0.9183486 #> [4,] 0.96090295 -1.3229594 #> [5,] 0.14008132 1.1903585 #> [6,] 0.49972573 -1.3370605 #> [7,] 0.08957466 0.2489264 #> [8,] 0.98513706 2.2548793 #> [9,] -2.44576574 0.4051406 #> [10,] 1.32535003 -0.1768482 #> #> , , 2 #> #> [,1] [,2] #> [1,] 2.5587883 6.1883850 #> [2,] -3.0405870 -3.0912526 #> [3,] 5.8512540 -0.6003824 #> [4,] 0.9609548 -1.9479886 #> [5,] 0.1591712 0.6891760 #> [6,] 1.1055174 -0.9062200 #> [7,] -0.1774132 -0.1424990 #> [8,] 0.2053178 3.0132894 #> [9,] -2.2717900 -0.1590809 #> [10,] 0.8722740 -0.3306140 #> #> , , 3 #> #> [,1] [,2] #> [1,] 2.60530636 5.21789900 #> [2,] -2.54326545 -2.38212939 #> [3,] 7.08497756 -0.21955481 #> [4,] 1.31994025 -0.76897135 #> [5,] 0.31169726 1.00375772 #> [6,] 1.08657901 -1.45658403 #> [7,] 0.04131485 -0.06377461 #> [8,] 0.32288955 2.57115035 #> [9,] -2.72940881 -0.34559497 #> [10,] 1.47805346 -0.38137550 #> #> , , 4 #> #> [,1] [,2] #> [1,] 3.3439506 4.57514801 #> [2,] -3.7370334 -3.32615210 #> [3,] 5.8688759 -0.94841909 #> [4,] 1.0464624 -1.07088958 #> [5,] 0.5365942 -0.07507684 #> [6,] 0.8422877 -1.53300228 #> [7,] -0.1707247 -0.73045076 #> [8,] 0.4358403 2.39571374 #> [9,] -1.1074033 -0.13226070 #> [10,] 1.2253342 -0.65615197 #> #> , , 5 #> #> [,1] [,2] #> [1,] 2.7120487 6.38024654 #> [2,] -2.4680663 -2.88067266 #> [3,] 5.2612425 -0.03676643 #> [4,] 1.1926378 -1.48758213 #> [5,] -0.1243978 0.88179646 #> [6,] 0.8403210 -1.32344167 #> [7,] -0.4971559 -0.48544153 #> [8,] 0.9497406 2.72186980 #> [9,] -2.9826994 0.08915400 #> [10,] 1.1840482 0.09361379 #>"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":null,"dir":"Reference","previous_headings":"","what":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"Log Multivarate Gamma Function - Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"","code":"lmvgamma(a, p)"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"defined Gamma_p() p defined Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"Numeric","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"https://en.wikipedia.org/wiki/Multivariate_gamma_function","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":null,"dir":"Reference","previous_headings":"","what":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"Derivative Log Multivariate Gamma Function - Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"","code":"lmvgamma_deriv(a, p)"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"defined Gamma_p() p defined Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"Numeric","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"https://en.wikipedia.org/wiki/Multivariate_gamma_function","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"Functions providing access Log Likelihood, Gradient, Hessian collapsed maltipoo model. Note: convenience functions optimized direct coding MaltipooCollapsed C++ class due lack Memoization. contrast function optimMaltipooCollapsed much optimized massively cuts repeated calculations. efficient Rcpp module based implementation functions may following future. model details see optimMaltipooCollapsed documentation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"","code":"loglikMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE) gradMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE) hessMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"Y D x N matrix counts upsilon (must > D) Theta D-1 x Q matrix prior mean regression coefficients X Q x N matrix covariates KInv D-1 x D-1 symmetric positive-definite matrix U PQxQ matrix stacked variance components eta matrix (D-1)xN parameter values calculate quantities ell P-vector scale factors variance component (aka VCScale) sylv (default:false) true N < D-1 use sylvester determinant identity speed computation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"see loglikMaltipooCollapsed - double gradMaltipooCollapsed - vector hessMaltipooCollapsed- matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"Functions providing access Log Likelihood, Gradient, Hessian collapsed pibble model. Note: convenience functions optimized direct coding PibbleCollapsed C++ class due lack Memoization. contrast function optimPibbleCollapsed much optimized massively cuts repeated calculations. efficient Rcpp module based implementation functions may following future. model details see optimPibbleCollapsed documentation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"","code":"loglikPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE) gradPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE) hessPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"Y D x N matrix counts upsilon (must > D) ThetaX D-1 x N matrix formed Theta*X (Theta Prior mean regression coefficients) KInv Inverse K LTP (Pibble defined KInv = solve(Xi)) AInv Inverse LTP (Pibble defined AInv = solve(diag(N)+ X'GammaX) ) eta matrix (D-1)xN parameter values calculate quantities sylv (default:false) true N < D-1 use sylvester determinant identity speed computation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"see loglikPibbleCollapsed - double gradPibbleCollapsed - vector hessPibbleCollapsed- matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"","code":"D <- 10 Q <- 2 N <- 30 # Simulate Data Sigma <- diag(sample(1:8, D-1, replace=TRUE)) Sigma[2, 3] <- Sigma[3,2] <- -1 Gamma <- diag(sqrt(rnorm(Q)^2)) Theta <- matrix(0, D-1, Q) Phi <- Theta + t(chol(Sigma))%*%matrix(rnorm(Q*(D-1)), nrow=D-1)%*%chol(Gamma) X <- matrix(rnorm(N*(Q-1)), Q-1, N) X <- rbind(1, X) Eta <- Phi%*%X + t(chol(Sigma))%*%matrix(rnorm(N*(D-1)), nrow=D-1) Pi <- t(alrInv(t(Eta))) Y <- matrix(0, D, N) for (i in 1:N) Y[,i] <- rmultinom(1, sample(5000:10000), prob = Pi[,i]) # Priors upsilon <- D+10 Xi <- Sigma*(upsilon-D) # Precompute KInv <- solve(Xi) AInv <- solve(diag(N)+ t(X)%*%Gamma%*%X) ThetaX <- Theta%*%X loglikPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta) #> [1] -195095.9 gradPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta)[1:5] #> [1] -4.7284477 -0.1509676 1.2405685 0.2829217 2.6895085 hessPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta)[1:5,1:5] #> [,1] [,2] [,3] [,4] [,5] #> [1,] -395.55832129 0.3806120 -0.02360702 -0.06801042 393.92582730 #> [2,] 0.38061199 -8.4987346 -0.31053592 -0.10707949 6.35296890 #> [3,] -0.02360702 -0.3105359 -1.22834285 0.10121428 0.81696424 #> [4,] -0.06801042 -0.1070795 0.10121428 -0.48603619 0.04496538 #> [5,] 393.92582730 6.3529689 0.81696424 0.04496538 -413.36822195"},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2018) Microbiome β€” mallard","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"High Resolution (hourly daily) sampling 4 vitro artificial gut models many technical replicates identify technical variation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"","code":"data(mallard)"},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"list containing \"otu_table\", \"sample_data\", \"tax_table\", \"refseq\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"data sequence variant level. Data family level processed Silverman et al. 2018 given mallard_family","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"Silverman et al. \"Dynamic linear models guide design analysis microbiota studies within artificial human guts\". Microbiome 2018 6:202","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"High Resolution (hourly daily) sampling 4 vitro artificial gut models many technical replicates identify technical variation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"","code":"data(mallard_family)"},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"list containing \"otu_table\", \"sample_data\", \"tax_table\", \"refseq\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"data family level processed Silverman et al. 2018. Data sequence variant level without preprocessing given mallard","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"Silverman et al. \"Dynamic linear models guide design analysis microbiota studies within artificial human guts\". Microbiome 2018 6:202","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create maltipoofit object β€” maltipoofit","title":"Create maltipoofit object β€” maltipoofit","text":"Create maltipoofit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create maltipoofit object β€” maltipoofit","text":"","code":"maltipoofit( D, N, Q, P, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, ellinit = NULL, names_categories = NULL, names_samples = NULL, names_covariates = NULL, VCScale = NULL, U = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create maltipoofit object β€” maltipoofit","text":"D number multinomial categories N number samples Q number covariates P number variance components coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization ellinit P vector initialization values ell optimization names_categories character vector names_samples character vector names_covariates character vector VCScale scale factors (delta) variance components U PQ x Q matrix stacked variance components (dimension Q x Q)","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create maltipoofit object β€” maltipoofit","text":"object class maltipoofit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit maltipoo models β€” maltipoo_fit","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"function largely user friendly wrapper around optimMaltipooCollapsed uncollapsePibble. See details model specification. Notation: N number samples, D number multinomial categories, Q number covariates, P number variance components iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"","code":"maltipoo( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, U = NULL, Xi = NULL, init = NULL, ellinit = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) U PQ x Q matrix stacked variance components (dimension Q x Q) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x Q initialization Eta optimization ellinit P vector initialization values ell optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"object class maltipoofit","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Gamma = e^{ell_1} U_1 + ... + e^{ell_P} U_P$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ \\(= (I_N + X * Gamma * X')^{-1}\\), \\(K^{-1} = Xi\\) (D-1)x(D-1) covariance matrix, \\(U_1\\) Q x Q covariance matrix (variance component), \\(e^{ell_i}\\) scale variance component \\(Phi^{-1}\\) ALRInv_D transform. Default behavior use MAP estimate uncollaping collapsed maltipoo model laplace approximation preformed. Parameters ell treated fixed estimated MAP estimation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” metadata","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"data.frame metadata associated counts matrix `Y`","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":null,"dir":"Reference","previous_headings":"","what":"Closure operator β€” miniclo","title":"Closure operator β€” miniclo","text":"Closure operator","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Closure operator β€” miniclo","text":"","code":"miniclo(x)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Closure operator β€” miniclo","text":"x vector matrix (rows samples, parts columns) data simplex","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Closure operator β€” miniclo","text":"x row entries divided sum row (converts vectors row matricies)","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Closure operator β€” miniclo","text":"","code":"x <- matrix(runif(30), 10, 3) x <- miniclo(x)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Closure Operation applied to array on margin β€” miniclo_array","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"Array version miniclo.","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"","code":"miniclo_array(x, parts)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"x multidimensional array parts index dimension x represents parts (e.g., compositional variables)","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"","code":"x <- array(1:100, dim=c(10, 5, 2)) miniclo_array(x, parts=2) #> , , 1 #> #> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.00952381 0.1047619 0.2 0.2952381 0.3904762 #> [2,] 0.01818182 0.1090909 0.2 0.2909091 0.3818182 #> [3,] 0.02608696 0.1130435 0.2 0.2869565 0.3739130 #> [4,] 0.03333333 0.1166667 0.2 0.2833333 0.3666667 #> [5,] 0.04000000 0.1200000 0.2 0.2800000 0.3600000 #> [6,] 0.04615385 0.1230769 0.2 0.2769231 0.3538462 #> [7,] 0.05185185 0.1259259 0.2 0.2740741 0.3481481 #> [8,] 0.05714286 0.1285714 0.2 0.2714286 0.3428571 #> [9,] 0.06206897 0.1310345 0.2 0.2689655 0.3379310 #> [10,] 0.06666667 0.1333333 0.2 0.2666667 0.3333333 #> #> , , 2 #> #> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.1436620 0.1718310 0.2 0.2281690 0.2563380 #> [2,] 0.1444444 0.1722222 0.2 0.2277778 0.2555556 #> [3,] 0.1452055 0.1726027 0.2 0.2273973 0.2547945 #> [4,] 0.1459459 0.1729730 0.2 0.2270270 0.2540541 #> [5,] 0.1466667 0.1733333 0.2 0.2266667 0.2533333 #> [6,] 0.1473684 0.1736842 0.2 0.2263158 0.2526316 #> [7,] 0.1480519 0.1740260 0.2 0.2259740 0.2519481 #> [8,] 0.1487179 0.1743590 0.2 0.2256410 0.2512821 #> [9,] 0.1493671 0.1746835 0.2 0.2253165 0.2506329 #> [10,] 0.1500000 0.1750000 0.2 0.2250000 0.2500000 #>"},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"mongrel β€” mongrel-deprecated","title":"mongrel β€” mongrel-deprecated","text":"function deprecated, please use pibble instead.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"mongrel β€” mongrel-deprecated","text":"","code":"mongrel( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"mongrel β€” mongrel-deprecated","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x N initialization Eta optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"mongrel β€” mongrel-deprecated","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for applying names to an object β€” name","title":"Generic method for applying names to an object β€” name","text":"Intended called internally package","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for applying names to an object β€” name","text":"","code":"name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for applying names to an object β€” name","text":"m object ... arguments passed","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for applying names to an object β€” name","text":"object class names applied dimensions","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"avoid confusion, assigned default names multinomial categories (c1 etc...) zdimensions (z1 etc...)","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"","code":"# S3 method for orthusfit name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"m object class orthusfit ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"object class orthusfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"S3 pibblefit apply names pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"","code":"# S3 method for pibblefit name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"m object class pibblefit ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"Generic method getting setting dimension names fit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"","code":"# S3 method for pibblefit names_covariates(m) # S3 method for pibblefit names_samples(m) # S3 method for pibblefit names_categories(m) # S3 method for pibblefit names_coords(m) # S3 method for pibblefit names_covariates(m) <- value # S3 method for pibblefit names_samples(m) <- value # S3 method for pibblefit names_categories(m) <- value names_covariates(m) names_samples(m) names_categories(m) names_coords(m) names_covariates(m) <- value names_samples(m) <- value names_categories(m) <- value"},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"m object value character vector (NULL)","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"vector names","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"names_coords different names_categories. names_categories provides access basic names multinomial category. contrast, names_coords provides access names coordinates object represented. coordinate names based category names. example, category names may , (OTU1, ..., OTUD) coordinate names (log(OTU1/OTUD), etc...) object default coordinate system.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"See details model. likely followed function uncollapsePibble. Notation: N number samples, D number multinomial categories, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"","code":"optimMaltipooCollapsed( Y, upsilon, Theta, X, KInv, U, init, ellinit, n_samples = 2000L, calcGradHess = TRUE, b1 = 0.9, b2 = 0.99, step_size = 0.003, epsilon = 1e-06, eps_f = 1e-10, eps_g = 1e-04, max_iter = 10000L, verbose = FALSE, verbose_rate = 10L, decomp_method = \"cholesky\", eigvalthresh = 0, jitter = 0 )"},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"Y D x N matrix counts upsilon (must > D) Theta D-1 x Q matrix prior mean regression coefficients X Q x N matrix covariates KInv D-1 x D-1 symmetric positive-definite matrix U PQxQ matrix stacked variance components init D-1 x N matrix initial guess eta used optimization ellinit P vector initial guess ell used optimization n_samples number samples Laplace Approximation (=0 fast inversion decomposition Hessian required) calcGradHess n_samples=0 Gradient Hessian still calculated using closed form solutions? b1 (ADAM) 1st moment decay parameter (recommend 0.9) \"aka momentum\" b2 (ADAM) 2nd moment decay parameter (recommend 0.99 0.999) step_size (ADAM) step size descent (recommend 0.001-0.003) epsilon (ADAM) parameter avoid divide zero eps_f (ADAM) normalized function improvement stopping criteria eps_g (ADAM) normalized gradient magnitude stopping criteria max_iter (ADAM) maximum number iterations stopping verbose (ADAM) true print stats stopping criteria iteration number verbose_rate (ADAM) rate print verbose stats screen decomp_method decomposition hessian Laplace approximation 'eigen' (stable-slightly, slower) 'cholesky' (less stable, faster, default) eigvalthresh threshold negative eigenvalues decomposition negative inverse hessian (<=0) jitter (default: 0) >0 adds factor diagonal Hessian decomposition (improve matrix conditioning)","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"List containing (respect found optima) LogLik - Log Likelihood collapsed model (proportionality constant) Gradient - (calcGradHess=true) Hessian - (calcGradHess=true) POSITIVE log posterior Pars - Parameter value eta Samples - (D-1) x N x n_samples array containing posterior samples eta based Laplace approximation (n_samples>0) VCScale - value e^ell_i optima logInvNegHessDet - log determinant covariacne Laplace approximation, useful calculating marginal likelihood","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"Notation: Let Z_j denote J-th row matrix Z. Model: $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ \\(= (I_N + e^{ell_1}*X*U_1*X' + ... + e^{ell_P}*X*U_P*X' )\\), K D-1xD-1 covariance Phi ALRInv_D transform. Gradient Hessian calculations fast computed using closed form solutions. said, Hessian matrix can quite large [N\\(D-1) x N\\(D-1)] storage may issue. Note: Warnings large negative eigenvalues can either signal optimizer reach optima (commonly experience) prior / degrees freedom covariance (given parameters upsilon KInv) specific odds observed data. get warning try following. Try restarting optimization using different initial guess eta Try decreasing (even increasing)step_size (increments 0.001 0.002) increasing max_iter parameters optimizer. Also can try increasing b1 0.99 decreasing eps_f orders magnitude Try relaxing prior assumptions regarding covariance matrix. (e.g., may want consider decreasing parameter upsilon closer minimum value D) Try adding small amount jitter (e.g., set jitter=1e-5) address potential floating point errors.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"S. Ruder (2016) overview gradient descent optimization algorithms. arXiv 1609.04747","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"See details model. likely followed function uncollapsePibble. Notation: N number samples, D number multinomial categories, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"","code":"optimPibbleCollapsed( Y, upsilon, ThetaX, KInv, AInv, init, n_samples = 2000L, calcGradHess = TRUE, b1 = 0.9, b2 = 0.99, step_size = 0.003, epsilon = 1e-06, eps_f = 1e-10, eps_g = 1e-04, max_iter = 10000L, verbose = FALSE, verbose_rate = 10L, decomp_method = \"cholesky\", optim_method = \"lbfgs\", eigvalthresh = 0, jitter = 0, multDirichletBoot = -1, useSylv = TRUE, ncores = -1L, seed = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"Y D x N matrix counts upsilon (must > D) ThetaX D-1 x N matrix formed Theta*X (Theta Prior mean regression coefficients) KInv D-1 x D-1 precision matrix (inverse Xi) AInv N x N precision matrix given \\((I_N + X'*Gamma*X)^{-1}\\) init D-1 x N matrix initial guess eta used optimization n_samples number samples Laplace Approximation (=0 fast inversion decomposition Hessian required) calcGradHess n_samples=0 Gradient Hessian still calculated using closed form solutions? b1 (ADAM) 1st moment decay parameter (recommend 0.9) \"aka momentum\" b2 (ADAM) 2nd moment decay parameter (recommend 0.99 0.999) step_size (ADAM) step size descent (recommend 0.001-0.003) epsilon (ADAM) parameter avoid divide zero eps_f (ADAM) normalized function improvement stopping criteria eps_g (ADAM) normalized gradient magnitude stopping criteria max_iter (ADAM) maximum number iterations stopping verbose (ADAM) true print stats stopping criteria iteration number verbose_rate (ADAM) rate print verbose stats screen decomp_method decomposition hessian Laplace approximation 'eigen' (stable-slightly, slower) 'cholesky' (less stable, faster, default) optim_method (default:\"lbfgs\") \"adam\" eigvalthresh threshold negative eigenvalues decomposition negative inverse hessian (<=0) jitter (default: 0) >=0 adds factor diagonal Hessian decomposition (improve matrix conditioning) multDirichletBoot >0 overrides laplace approximation samples eta efficiently MAP estimate pseudo Multinomial-Dirichlet posterior. useSylv (default: true) N0) Timer - Vector Execution Times logInvNegHessDet - log determinant covariacne Laplace approximation, useful calculating marginal likelihood logMarginalLikelihood - calculation log marginal likelihood based laplace approximation","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"Notation: Let Z_j denote J-th row matrix Z. Model: $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ \\(= I_N + X * Gamma * X'\\), K (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. Gradient Hessian calculations fast computed using closed form solutions. said, Hessian matrix can quite large [N*(D-1) x N*(D-1)] storage may issue. Note: Warnings large negative eigenvalues can either signal optimizer reach optima (commonly experience) prior / degrees freedom covariance (given parameters upsilon KInv) specific odds observed data. get warning try following. Try restarting optimization using different initial guess eta Try decreasing (even increasing )step_size (increments 0.001 0.002) increasing max_iter parameters optimizer. Also can try increasing b1 0.99 decreasing eps_f orders magnitude Try relaxing prior assumptions regarding covariance matrix. (e.g., may want consider decreasing parameter upsilon closer minimum value D) Try adding small amount jitter (e.g., set jitter=1e-5) address potential floating point errors.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"S. Ruder (2016) overview gradient descent optimization algorithms. arXiv 1609.04747 JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2022, Journal Machine Learning","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"","code":"sim <- pibble_sim() # Fit model for eta fit <- optimPibbleCollapsed(sim$Y, sim$upsilon, sim$Theta%*%sim$X, sim$KInv, sim$AInv, random_pibble_init(sim$Y))"},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create orthusfit object β€” orthusfit","title":"Create orthusfit object β€” orthusfit","text":"Create orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create orthusfit object β€” orthusfit","text":"","code":"orthusfit( D, N, Q, P, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Z = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, names_categories = NULL, names_samples = NULL, names_Zdimensions = NULL, names_covariates = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create orthusfit object β€” orthusfit","text":"D number multinomial categories N number samples Q number covariates P Dimension second dataset (e.g., nrows(Z) ) coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Z PxN matrix real valued observations Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization names_categories character vector names_samples character vector names_Zdimensions character vector names_covariates character vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create orthusfit object β€” orthusfit","text":"object class orthusfit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit orthus models β€” orthus_fit","title":"Interface to fit orthus models β€” orthus_fit","text":"function largely user friendly wrapper around optimPibbleCollapsed uncollapsePibble fitting orthus models. See details model specification. Notation: N number samples, P number dimensions observations second dataset, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit orthus models β€” orthus_fit","text":"","code":"orthus( Y = NULL, Z = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit orthus models β€” orthus_fit","text":"Y D x N matrix counts (NULL uses priors ) Z P x N matrix counts (NULL uses priors - must present/absent Y present/absent) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1+P) x Q matrix prior mean regression parameters (default: matrix(0, D-1+P, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1+P)x(D-1+P) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x Q initialization Eta optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit orthus models β€” orthus_fit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit orthus models β€” orthus_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$cbind(Eta, Z) \\sim MN_{D-1+P x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1+P x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. , orthus model models latent multinomial log-ratios (Eta) observations second dataset jointly linear model. allows Sigma also describe covariation two datasets. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Interface to fit orthus models β€” orthus_fit","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interface to fit orthus models β€” orthus_fit","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":null,"dir":"Reference","previous_headings":"","what":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"Log-Ratio transforms orthus objects","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"","code":"oglr(x, s, V) oglrInv(x, s, V) oalr(x, s, d = NULL) oalrInv(y, s, d = NULL) oilr(x, s, V = NULL) oilrInv(y, s, V = NULL) oclr(x, s) oclrInv(x, s)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"x orthus data array (e.g., first s rows multinomial parameters log-ratios) s first s rows x transformed V transformation matrix (defines transform) d ALR, component (integer position) take reference (default ncol(x)) alrInv corresponds column position untransformed matrix. y orthus data array (e.g., first s rows multinomial parameters log-ratios)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"Simulate simple orthus dataset priors (testing)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"","code":"orthus_sim( D = 10, P = 10, N = 30, Q = 2, use_names = TRUE, true_priors = FALSE )"},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"D number multinomial categories P number dimensions second dataset Z N number samples Q number covariates (first one intercept, must > 1) use_names samples, covariates, categories named true_priors Xi upsilon chosen mean true simulated value","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"","code":"sim <- orthus_sim()"},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"Combines single tibble, see example formatting column headers. Primarily designed used summary.orthusfit.","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"","code":"orthus_tidy_samples(m, use_names = FALSE, as_factor = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"m object class orthusfit use_names dimension indices replaced dimension names provided data used fit pibble model. as_factor use_names names returned factor?","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X) fit_tidy <- orthus_tidy_samples(fit, use_names=TRUE) head(fit_tidy) #> Parameter coord sample iter val covariate coord2 #> 1 Eta log(c1/c10) s1 1 1.7727815 #> 2 Eta log(c2/c10) s1 1 1.7654507 #> 3 Eta log(c3/c10) s1 1 -0.6052307 #> 4 Eta log(c4/c10) s1 1 -0.9468327 #> 5 Eta log(c5/c10) s1 1 0.2249392 #> 6 Eta log(c6/c10) s1 1 -2.3106465 "},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"","code":"data(pcrbias_mock)"},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"matrix Y (counts community member) data.frame metadata","code":""},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create pibblefit object β€” pibblefit","title":"Create pibblefit object β€” pibblefit","text":"Create pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create pibblefit object β€” pibblefit","text":"","code":"pibblefit( D, N, Q, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, names_categories = NULL, names_samples = NULL, names_covariates = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create pibblefit object β€” pibblefit","text":"D number multinomial categories N number samples Q number covariates coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization names_categories character vector names_samples character vector names_covariates character vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create pibblefit object β€” pibblefit","text":"object class pibblefit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit pibble models β€” pibble_fit","title":"Interface to fit pibble models β€” pibble_fit","text":"function largely user friendly wrapper around optimPibbleCollapsed uncollapsePibble. See details model specification. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit pibble models β€” pibble_fit","text":"","code":"pibble( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), newdata = NULL, ... ) # S3 method for pibblefit refit(m, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ...)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit pibble models β€” pibble_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x N initialization Eta optimization pars character vector posterior parameters return newdata Default NULL. non-null, newdata used uncollapse sampler place X. ... arguments passed optimPibbleCollapsed uncollapsePibble m object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit pibble models β€” pibble_fit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit pibble models β€” pibble_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Interface to fit pibble models β€” pibble_fit","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interface to fit pibble models β€” pibble_fit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"Simulate simple pibble dataset priors (testing)","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"","code":"pibble_sim(D = 10, N = 30, Q = 2, use_names = TRUE, true_priors = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"D number multinomial categories N number samples Q number covariates (first one intercept, must > 1) use_names samples, covariates, categories named true_priors Xi upsilon chosen mean true simulated value","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"","code":"sim <- pibble_sim()"},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"Combines single tibble, see example formatting column headers. Primarily designed used summary.pibblefit.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"","code":"pibble_tidy_samples(m, use_names = FALSE, as_factor = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"m object class pibblefit use_names dimension indices replaced dimension names provided data used fit pibble model. as_factor use_names names returned factor?","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) fit_tidy <- pibble_tidy_samples(fit, use_names=TRUE) head(fit_tidy) #> Parameter coord sample iter val covariate coord2 #> 1 Eta log(c1/c10) s1 1 4.092298753 #> 2 Eta log(c2/c10) s1 1 4.480205759 #> 3 Eta log(c3/c10) s1 1 -0.969638768 #> 4 Eta log(c4/c10) s1 1 5.575328028 #> 5 Eta log(c5/c10) s1 1 0.001909711 #> 6 Eta log(c6/c10) s1 1 1.116070821 "},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"Plot Summaries Posterior Distribution pibblefit Parameters","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"","code":"# S3 method for pibblefit plot(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"x object class pibblefit ... arguments passed plot.pibblefit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"ggplot object","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"arguments: `par` parameter plot (options: Lambda, Eta, Sigma) (default=\"Lambda\") `focus.cov` vector covariates include plot (plots NULL) `focus.coord` vector coordinates include plot (plots NULL) `focus.sample` vector samples include plot (plots NULL) `use_names` TRUE, uses dimension names found data plot labels rather using dimension integer indices.","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"","code":"sim <- pibble_sim(N=10, D=4, Q=3) fit <- pibble(sim$Y, sim$X) plot(fit, par=\"Lambda\") #> Scale for colour is already present. #> Adding another scale for colour, which will replace the existing scale. plot(fit, par=\"Sigma\")"},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for visualizing posterior predictive checks β€” ppc","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"Generic method visualizing posterior predictive checks","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"","code":"ppc(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"m object ... arguments passed control visualization","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"plot","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"Visualization Posterior Predictive Check fit model","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"","code":"# S3 method for pibblefit ppc(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"m object class pibblefit ... options passed ppc (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"ggplot object","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"ppc.pibblefit accepts following additional arguments: \"type\" type plot (options \"lines\", \"points\", \"bounds\") \"iter\" number samples posterior predictive distribution plot (currently must <= m$iter) type==\"lines\" default 50, type==\"ribbon\" default use available iterations. \"from_scratch\" predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false)","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) ppc(fit)"},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"Generic Method Plot Posterior Predictive Summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"","code":"# S3 method for pibblefit ppc_summary(m, from_scratch = FALSE, ...) ppc_summary(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"m model object from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments pass","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict using basset β€” predict.bassetfit","title":"Predict using basset β€” predict.bassetfit","text":"Predict using basset","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict using basset β€” predict.bassetfit","text":"","code":"# S3 method for bassetfit predict( object, newdata = NULL, response = \"Lambda\", size = NULL, use_names = TRUE, summary = FALSE, iter = NULL, from_scratch = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict using basset β€” predict.bassetfit","text":"object object class pibblefit newdata optional matrix evaluate prediction. response Options = \"Lambda\":Mean regression, \"Eta\", \"Y\": counts size number counts per sample response=\"Y\" (vector matrix), default newdata=NULL response=\"Y\" use colsums m$Y. Otherwise uses median colsums object$Y default. passed matrix dimensions ncol(newdata) x iter. use_names TRUE apply names output summary TRUE, posterior summary predictions returned rather samples iter number iterations return NULL uses object$iter from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments passed summarise_posterior","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict using basset β€” predict.bassetfit","text":"(summary==FALSE) array D x N x iter; (summary==TRUE) tibble calculated posterior summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict using basset β€” predict.bassetfit","text":"currently implemented pibblefit objects coord_system \"default\" \"alr\", \"ilr\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict response from new data β€” predict.pibblefit","title":"Predict response from new data β€” predict.pibblefit","text":"Predict response new data","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict response from new data β€” predict.pibblefit","text":"","code":"# S3 method for pibblefit predict( object, newdata = NULL, response = \"LambdaX\", size = NULL, use_names = TRUE, summary = FALSE, iter = NULL, from_scratch = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict response from new data β€” predict.pibblefit","text":"object object class pibblefit newdata optional matrix evaluate predictions. NULL (default), original data model used. response Options = \"LambdaX\":Mean regression, \"Eta\", \"Y\": counts size number counts per sample response=\"Y\" (vector matrix), default newdata=NULL response=\"Y\" use colsums m$Y. Otherwise uses median colsums m$Y default. passed matrix dimensions ncol(newdata) x iter. use_names TRUE apply names output summary TRUE, posterior summary predictions returned rather samples iter number iterations return NULL uses object$iter from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments passed summarise_posterior","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict response from new data β€” predict.pibblefit","text":"(summary==FALSE) array D x N x iter; (summary==TRUE) tibble calculated posterior summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict response from new data β€” predict.pibblefit","text":"currently implemented pibblefit objects coord_system \"default\" \"alr\", \"ilr\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict response from new data β€” predict.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) predict(fit)[,,1:2] # just show 2 samples #> , , 1 #> #> s1 s2 s3 s4 s5 #> log(c1/c10) -0.70404170 -1.0723053 -0.5401210 -0.9485413 -0.63356566 #> log(c2/c10) -0.18980937 -7.7979140 3.1966933 -5.2410247 1.26618322 #> log(c3/c10) -2.63165792 -10.9043126 1.0506478 -8.1240850 -1.04848781 #> log(c4/c10) -0.18526606 -8.3487948 3.4484658 -5.6052416 1.37702019 #> log(c5/c10) 2.19245163 6.1463273 0.4325113 4.8175308 1.43578307 #> log(c6/c10) -0.01765007 -0.5256616 0.2084749 -0.3549319 0.07957007 #> log(c7/c10) 3.96296538 0.9533097 5.3026167 1.9647779 4.53893491 #> log(c8/c10) -1.06290426 4.3362744 -3.4661747 2.5217486 -2.09616608 #> log(c9/c10) -4.14987279 -4.2936457 -4.0858769 -4.2453273 -4.12235841 #> s6 s7 s8 s9 s10 #> log(c1/c10) -0.72281157 -0.8824675 -0.7842723 -0.777165454 -0.5425485 #> log(c2/c10) -0.57758358 -3.8759788 -1.8473252 -1.700502257 3.1465432 #> log(c3/c10) -3.05330330 -6.6398056 -4.4339538 -4.274306273 0.9961171 #> log(c4/c10) -0.60134944 -4.1405416 -1.9637876 -1.806245966 3.3946544 #> log(c5/c10) 2.39397502 4.1081266 3.0538503 2.977547539 0.4585739 #> log(c6/c10) -0.04354269 -0.2637845 -0.1283264 -0.118522677 0.2051262 #> log(c7/c10) 3.80956753 2.5047703 3.3072762 3.365357208 5.2827780 #> log(c8/c10) -0.78771584 1.5530281 0.1133708 0.009176261 -3.4305850 #> log(c9/c10) -4.15720069 -4.2195316 -4.1811954 -4.178420864 -4.0868246 #> s11 s12 s13 s14 s15 #> log(c1/c10) -0.70474316 -0.76041767 -0.4192360 -0.776121738 -0.8240135 #> log(c2/c10) -0.20430126 -1.35450317 5.6941047 -1.678939717 -2.6683549 #> log(c3/c10) -2.64741564 -3.89808498 3.7662021 -4.250860296 -5.3266986 #> log(c4/c10) -0.20081592 -1.43498747 6.1281988 -1.783109269 -2.8447560 #> log(c5/c10) 2.19998296 2.79773438 -0.8653749 2.966341646 3.4805334 #> log(c6/c10) -0.01861773 -0.09541948 0.3752331 -0.117082895 -0.1831485 #> log(c7/c10) 3.95723260 3.50222942 6.2905563 3.373887036 2.9824887 #> log(c8/c10) -1.05261992 -0.23636596 -5.2384913 -0.006125842 0.6960240 #> log(c9/c10) -4.15014665 -4.17188240 -4.0386825 -4.178013390 -4.1967107 #> s16 s17 s18 s19 s20 #> log(c1/c10) -0.9556897 -0.8554379 -0.7868995 -0.3634543 -0.8001980 #> log(c2/c10) -5.3887062 -3.3175632 -1.9016024 6.8465218 -2.1763403 #> log(c3/c10) -8.2846662 -6.0326137 -4.4929720 5.0192802 -4.7917077 #> log(c4/c10) -5.7637045 -3.5413592 -2.0220273 7.3647473 -2.3168223 #> log(c5/c10) 4.8942798 3.8179221 3.0820578 -1.4642776 3.2248371 #> log(c6/c10) -0.3647929 -0.2264977 -0.1319506 0.4521827 -0.1502955 #> log(c7/c10) 1.9063573 2.7256714 3.2858049 6.7464358 3.1771226 #> log(c8/c10) 2.6265524 1.1567421 0.1518893 -6.0563173 0.3468602 #> log(c9/c10) -4.2481181 -4.2089790 -4.1822211 -4.0169049 -4.1874129 #> s21 s22 s23 s24 s25 #> log(c1/c10) -0.4876735 -0.8731613 -0.6065824 -0.4267227 -0.65880368 #> log(c2/c10) 4.2802265 -3.6837192 1.8236416 5.5394347 0.74478081 #> log(c3/c10) 2.2288251 -6.4307526 -0.4423368 3.5980221 -1.61543349 #> log(c4/c10) 4.6111015 -3.9342462 1.9751754 5.9622373 0.81755318 #> log(c5/c10) -0.1305929 4.0082107 1.1460761 -0.7849941 1.70675204 #> log(c6/c10) 0.2808250 -0.2509469 0.1167929 0.3649054 0.04475477 #> log(c7/c10) 5.7312467 2.5808254 4.7594573 6.2293711 4.33267568 #> log(c8/c10) -4.2351164 1.4165889 -2.4917728 -5.1287280 -1.72614688 #> log(c9/c10) -4.0654010 -4.2158984 -4.1118239 -4.0416053 -4.13221152 #> s26 s27 s28 s29 s30 #> log(c1/c10) -0.7858590 -0.9922782 -0.7340740 -0.6745065 -0.9711141 #> log(c2/c10) -1.8801062 -6.1446032 -0.8102577 0.4203703 -5.7073648 #> log(c3/c10) -4.4695982 -9.1065889 -3.3063010 -1.9681804 -8.6311589 #> log(c4/c10) -1.9989618 -6.5747852 -0.8510098 0.4694594 -6.1056266 #> log(c5/c10) 3.0708864 5.2871139 2.5148941 1.8753458 5.0598843 #> log(c6/c10) -0.1305153 -0.4152660 -0.0590789 0.0230931 -0.3860706 #> log(c7/c10) 3.2943085 1.6073354 3.7175250 4.2043436 1.7803005 #> log(c8/c10) 0.1366343 3.1629834 -0.6225960 -1.4959253 2.8526922 #> log(c9/c10) -4.1818149 -4.2624025 -4.1615976 -4.1383420 -4.2541399 #> #> , , 2 #> #> s1 s2 s3 s4 s5 #> log(c1/c10) -0.78034714 -0.6578935 -0.83485344 -0.6990470 -0.8037816 #> log(c2/c10) 0.09605189 -7.0955013 3.29714012 -4.6786043 1.4723274 #> log(c3/c10) -3.23050215 -10.4350195 -0.02364334 -8.0137656 -1.8517456 #> log(c4/c10) 0.49931591 -7.0058217 3.83998616 -4.4835370 1.9356033 #> log(c5/c10) 1.35801089 5.7621210 -0.60233686 4.2820123 0.5151792 #> log(c6/c10) -0.30332304 0.9731533 -0.87150535 0.5441622 -0.5476073 #> log(c7/c10) 3.99882759 3.0602134 4.41662145 3.3756576 4.1784538 #> log(c8/c10) -2.04712903 3.5101742 -4.52078356 1.6425068 -3.1106518 #> log(c9/c10) -4.68344683 -2.8566426 -5.49658988 -3.4705848 -5.0330495 #> s6 s7 s8 s9 s10 #> log(c1/c10) -0.7741059 -0.7210177 -0.75366916 -0.75603230 -0.83404626 #> log(c2/c10) -0.2704913 -3.3882960 -1.47071326 -1.33192903 3.24973572 #> log(c3/c10) -3.5977061 -6.7211313 -4.80009170 -4.66105728 -0.07113319 #> log(c4/c10) 0.1167898 -3.1369654 -1.13576733 -0.99093148 3.79051472 #> log(c5/c10) 1.5824821 3.4918270 2.31749851 2.23250699 -0.57330639 #> log(c6/c10) -0.2382629 0.3151369 -0.02522754 -0.04986127 -0.86309123 #> log(c7/c10) 3.9509878 3.5440638 3.79433936 3.81245295 4.41043441 #> log(c8/c10) -1.7638812 0.6454156 -0.83640460 -0.94365071 -4.48415161 #> log(c9/c10) -4.5903372 -3.7983499 -4.28545587 -4.32070995 -5.48454818 #> s11 s12 s13 s14 s15 #> log(c1/c10) -0.78011389 -0.7616012 -0.8750497 -0.7563793 -0.7404546 #> log(c2/c10) 0.08235345 -1.0048737 5.6578157 -1.3115471 -2.2467908 #> log(c3/c10) -3.24422529 -4.3334124 2.3412878 -4.6406386 -5.5775682 #> log(c4/c10) 0.48502016 -0.6496151 6.3035979 -0.9696608 -1.9456854 #> log(c5/c10) 1.36639982 2.0322182 -2.0480155 2.2200251 2.7927687 #> log(c6/c10) -0.30089161 -0.1079125 -1.2905173 -0.0534790 0.1125236 #> log(c7/c10) 3.99703972 3.8551390 4.7247278 3.8151131 3.6930487 #> log(c8/c10) -2.03654350 -1.1963841 -6.3450056 -0.9594010 -0.2366874 #> log(c9/c10) -4.67996714 -4.4037888 -6.0962506 -4.3258874 -4.0883160 #> s16 s17 s18 s19 s20 #> log(c1/c10) -0.6966701 -0.7300054 -0.75279556 -0.893598 -0.74837361 #> log(c2/c10) -4.8182001 -2.8604542 -1.52201871 6.747137 -1.78171450 #> log(c3/c10) -8.1536130 -6.1923379 -4.85148964 3.432573 -5.11165358 #> log(c4/c10) -4.6292198 -2.5861073 -1.18930994 7.440418 -1.46032964 #> log(c5/c10) 4.3675008 3.1685764 2.34891799 -2.715116 2.50795579 #> log(c6/c10) 0.5689400 0.2214468 -0.01612099 -1.483868 0.02997413 #> log(c7/c10) 3.3574381 3.6129557 3.78764317 4.866902 3.75374867 #> log(c8/c10) 1.7503800 0.2375236 -0.79675809 -7.186783 -0.59607707 #> log(c9/c10) -3.4351245 -3.9324327 -4.27242321 -6.372961 -4.20645508 #> s21 s22 s23 s24 s25 #> log(c1/c10) -0.8522931 -0.7241121 -0.8127540 -0.8725602 -0.7953895 #> log(c2/c10) 4.3213488 -3.2065628 1.9992643 5.5116140 0.9794723 #> log(c3/c10) 1.0024117 -6.5390705 -1.3238588 2.1948226 -2.3454892 #> log(c4/c10) 4.9088550 -2.9473079 2.4855171 6.1510212 1.4212575 #> log(c5/c10) -1.2295627 3.3805335 0.1924828 -1.9584816 0.8170039 #> log(c6/c10) -1.0532989 0.2828799 -0.6411368 -1.2645670 -0.4601272 #> log(c7/c10) 4.5502973 3.5677829 4.2472276 4.7056462 4.1141283 #> log(c8/c10) -5.3122451 0.5049805 -3.5178445 -6.2320277 -2.7297959 #> log(c9/c10) -5.7567602 -3.8445139 -5.1669024 -6.0591124 -4.9078540 #> s26 s27 s28 s29 s30 #> log(c1/c10) -0.75314154 -0.6845038 -0.7703609 -0.7901681 -0.6915412 #> log(c2/c10) -1.50169947 -5.5327109 -0.4904263 0.6728236 -5.1194118 #> log(c3/c10) -4.83113377 -8.8694119 -3.8180376 -2.6526907 -8.4553677 #> log(c4/c10) -1.16810468 -5.3748866 -0.1127354 1.1012375 -4.9435658 #> log(c5/c10) 2.33647448 4.8050675 1.7171704 1.0047956 4.5519630 #> log(c6/c10) -0.01972759 0.6957633 -0.1992251 -0.4056981 0.6224041 #> log(c7/c10) 3.79029516 3.2641829 3.9222827 4.0741056 3.3181251 #> log(c8/c10) -0.81245987 2.3025213 -1.5939255 -2.4928319 1.9831427 #> log(c9/c10) -4.27758472 -3.2536239 -4.5344692 -4.8299589 -3.3586105 #>"},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"Print dimensions coordinate system information orthusfit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"","code":"# S3 method for orthusfit print(x, summary = FALSE, ...)"},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"x object class orthusfit summary true also calculates prints summary ... arguments pass summary function","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"direct return, prints summary","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X) print(fit) #> orthusfit Object: #> Number of Samples:\t\t 30 #> Number of Categories:\t\t 10 #> Number of Zdimensions:\t 10 #> Number of Covariates:\t\t 2 #> Number of Posterior Samples:\t 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System:\t\t alr, reference category: 10 [c10]"},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"Print dimensions coordinate system information pibblefit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"","code":"# S3 method for pibblefit print(x, summary = FALSE, ...)"},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"x object class pibblefit summary true also calculates prints summary ... arguments pass summary function","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"direct return, prints summary","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) print(fit) #> pibblefit Object: #> Number of Samples:\t\t 30 #> Number of Categories:\t\t 10 #> Number of Covariates:\t\t 2 #> Number of Posterior Samples:\t 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System:\t\t alr, reference category: 10 [c10] #> Log Marginal Likelihood:\t -1973.695"},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic Method to Calculate R2 for Fitted Model β€” r2","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"Generic Method Calculate R2 Fitted Model","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"","code":"r2(m, ...) # S3 method for pibblefit r2(m, covariates = NULL, ...) # S3 method for bassetfit r2(m, covariates = NULL, components = NULL, ...)"},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"m model object ... arguments pass covariates vector indices covariates include calculation R2 (default:NULL means include covariates default). non-null, covariates specified set zero prediction. components vector indices components GP model include calculation R2, .e. elements list Theta/Gamma used calculating R2 (default:NULL means include components default). non-null, components specified removed prediction.","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"Calculates Posterior Linear Model R2 : $$1-\\frac{SS_{res}}{SS_{tot}}$$ \\(SS\\) defined terms trace variances Method calculating R2 multivariate version Bayesian R2 proposed Gelman, Goodrich, Gabry, Vehtari, 2019 Calculates Posterior Basset Model R2 : $$1-\\frac{SS_{res}}{SS_tot}$$ Method calculating R2 multivariate version Bayesian R2 proposed Gelman, Goodrich, Gabry, Vehtari, 2019","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":null,"dir":"Reference","previous_headings":"","what":"Provide random initialization for pibble model β€” random_pibble_init","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Randomly initializes based ALR transform counts plus random pseudocounts uniformily distributed 0 1.","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"","code":"random_pibble_init(Y)"},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Y matrix (D x N) counts","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"(D-1) x N matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Notation: N number samples D number multinomial categories","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"","code":"Y <- matrix(sample(1:100, 100), 10, 10) random_pibble_init(Y) #> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] -0.13743727 -0.3312002 -1.5952317 2.5896872 1.0364971 0.7134912 #> [2,] -0.03605466 -1.0946291 0.4302611 1.7693657 1.2425171 0.8972791 #> [3,] -0.98053047 -1.0006552 -0.3529571 2.8586754 0.1886809 0.8603231 #> [4,] -0.04712701 0.3486153 -1.2748981 -0.8325446 0.6011610 1.8485723 #> [5,] -0.20535453 0.5282856 -0.6949068 2.4347884 0.7002748 -0.3407350 #> [6,] 0.43013291 -0.2163443 -0.8447681 1.4769015 0.2124275 1.9787427 #> [7,] 0.14265373 -0.0971531 -1.4255502 1.8172756 -0.5752273 1.2281001 #> [8,] -2.58595155 -1.0625784 0.0375343 2.5399985 -0.9885152 1.6870342 #> [9,] -0.46374826 -0.9394908 0.4786111 2.8058892 0.6653587 2.0580245 #> [,7] [,8] [,9] [,10] #> [1,] 0.7968142 0.44298835 -0.15629481 1.6804717 #> [2,] 0.4671822 -1.06688846 -2.42821498 1.9322217 #> [3,] 0.8580515 0.26008043 -0.13261153 2.5100225 #> [4,] 1.0455422 -0.36516180 0.09458404 2.5321603 #> [5,] 0.8988951 0.43221338 -0.67354694 2.3401178 #> [6,] -3.1160542 -0.33808636 -2.04372820 0.9544726 #> [7,] 0.9815253 -0.02679923 0.13288455 -0.7066310 #> [8,] 1.1179594 0.19562534 -0.20936590 1.7681255 #> [9,] 0.6984627 -0.60785405 0.17259204 2.3099825"},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for fitting model from passed model fit object β€” refit","title":"Generic method for fitting model from passed model fit object β€” refit","text":"Generic method fitting model passed model fit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for fitting model from passed model fit object β€” refit","text":"","code":"refit(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for fitting model from passed model fit object β€” refit","text":"m object ... arguments passed control fitting","code":""},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for fitting model from passed model fit object β€” refit","text":"object class m","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for ensuring object contains required elements β€” req","title":"Generic method for ensuring object contains required elements β€” req","text":"Intended called internally package","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for ensuring object contains required elements β€” req","text":"","code":"req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for ensuring object contains required elements β€” req","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for ensuring object contains required elements β€” req","text":"throws error required element present","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"require elements non-null pibblefit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"","code":"# S3 method for maltipoofit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"Throws error null","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"require elements non-null orthusfit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"","code":"# S3 method for orthusfit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"None, throws error NULL","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"require elements non-null pibblefit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"","code":"# S3 method for pibblefit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"Nothing, throws error NULL","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for sampling from prior distribution of object β€” sample_prior","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"Generic method sampling prior distribution object","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"","code":"sample_prior(m, n_samples = 2000L, ...)"},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"m object n_samples number samples produce ... arguments passed","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"object class","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"Note can used sample prior predict can called get counts LambdaX (predict.pibblefit)","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"","code":"# S3 method for pibblefit sample_prior( m, n_samples = 2000L, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), use_names = TRUE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"m object class pibblefit n_samples number samples produce pars parameters sample use_names names used available ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"greatly speed future needed sampling directly cholesky form inverse wishart (currently implemented header library - see MatDist.h).","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"","code":"# Sample prior of already fitted pibblefit object sim <- pibble_sim() attach(sim) #> The following object is masked from package:fido: #> #> Y fit <- pibble(Y, X) head(sample_prior(fit)) #> $D #> [1] 10 #> #> $N #> [1] 30 #> #> $Q #> [1] 2 #> #> $iter #> [1] 2000 #> #> $coord_system #> [1] \"alr\" #> #> $alr_base #> [1] 10 #> # Sample prior as part of model fitting m <- pibblefit(N=as.integer(sim$N), D=as.integer(sim$D), Q=as.integer(sim$Q), iter=2000L, upsilon=upsilon, Xi=Xi, Gamma=Gamma, Theta=Theta, X=X, coord_system=\"alr\", alr_base=D) m <- sample_prior(m) plot(m) # plot prior distribution (defaults to parameter Lambda) #> Scale for colour is already present. #> Adding another scale for colour, which will replace the existing scale."},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":null,"dir":"Reference","previous_headings":"","what":"Holds information on coordinates system to later be reapplied β€” store_coord","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"store_coord stores coordinate information pibblefit object can reapplied function reapply_coord. coordinate systems useful computation makes simple keep returned object computations coordinate system input. (Likely useful inside package)","code":""},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"","code":"store_coord(m) reapply_coord(m, l)"},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"m object class pibblefit l object returned function store_coord","code":""},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"store_coord list important information identify c coordinate system pibblefit object. reapply_coord pibblefit object coordinate system previously stored.","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":null,"dir":"Reference","previous_headings":"","what":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"Shortcut summarize variable quantiles mean","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"","code":"summarise_posterior(data, var, ...)"},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"data tidy data frame var variable name (unquoted) summarised ... expressions pass summarise","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"data.frame","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"Notation: pX refers X% quantile","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"","code":"d <- data.frame(\"a\"=sample(1:10, 50, TRUE), \"b\"=rnorm(50)) # Summarize posterior for b over grouping of a and also calcuate # minmum of b (in addition to normal statistics returned) d <- dplyr::group_by(d, a) summarise_posterior(d, b, mean.b = mean(b), min=min(b)) #> # A tibble: 10 Γ— 9 #> a p2.5 p25 p50 mean p75 p97.5 mean.b min #> #> 1 1 -1.50 -1.38 -0.644 -0.615 0.123 0.316 -0.615 -1.51 #> 2 2 -0.609 -0.311 0.0189 0.125 0.508 0.949 0.125 -0.642 #> 3 3 -0.227 -0.0597 0.474 0.364 0.765 0.840 0.364 -0.238 #> 4 4 -0.995 -0.306 0.714 0.290 0.904 1.12 0.290 -1.01 #> 5 5 -1.51 -0.202 0.512 -0.00225 0.665 0.668 -0.00225 -1.65 #> 6 6 0.483 0.496 0.591 0.751 0.846 1.29 0.751 0.482 #> 7 7 -0.410 -0.361 -0.230 -0.0870 0.247 0.316 -0.0870 -0.415 #> 8 8 -1.82 -0.494 0.340 0.0668 0.681 1.60 0.0668 -1.99 #> 9 9 -0.0325 0.0389 0.284 0.761 1.13 2.27 0.761 -0.0404 #> 10 10 -0.928 -0.350 -0.106 -0.285 -0.0410 0.0535 -0.285 -0.992"},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"Default calculates median, mean, 50% 95% credible interval","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"","code":"# S3 method for orthusfit summary( object, pars = NULL, use_names = TRUE, as_factor = FALSE, gather_prob = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"object object class orthusfit pars character vector (default: c(\"Eta\", \"Lambda\", \"Sigma\")) use_names summary replace dimension indices orthusfit names names Y X named call orthus as_factor use_names as_factor returns names factors (useful maintaining orderings plotting) gather_prob TRUE prints quantiles long format rather wide (useful plotting functions) ... expressions pass summarise (using name 'val' unquoted probably want)","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"Default calculates median, mean, 50% 95% credible interval","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"","code":"# S3 method for pibblefit summary( object, pars = NULL, use_names = TRUE, as_factor = FALSE, gather_prob = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"object object class pibblefit pars character vector (default: c(\"Eta\", \"Lambda\", \"Sigma\")) use_names summary replace dimension indices pibblefit names names Y X named call pibble as_factor use_names as_factor returns names factors (useful maintaining orderings plotting) gather_prob TRUE prints quantiles long format rather wide (useful plotting functions) ... expressions pass summarise (using name 'val' unquoted probably want)","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":null,"dir":"Reference","previous_headings":"","what":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"See details model. likely called following optimPibbleCollapsed. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"","code":"uncollapsePibble( eta, X, Theta, Gamma, Xi, upsilon, seed, ret_mean = FALSE, ncores = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"eta array dimension (D-1) x N x iter (e.g., Pars output function optimPibbleCollapsed) X matrix covariates dimension Q x N Theta matrix prior mean dimension (D-1) x Q Gamma covariance matrix dimension Q x Q Xi covariance matrix dimension (D-1) x (D-1) upsilon scalar (must > D) degrees freedom InvWishart prior seed seed use random number generation ret_mean true uses posterior mean Lambda Sigma corresponding sample eta rather sampling posterior Lambda Sigma (useful Laplace approximation used (fails) optimPibbleCollapsed) ncores (default:-1) number cores use, ncores==-1 uses default OpenMP typically use available cores.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"List components Lambda Array dimension (D-1) x Q x iter (posterior samples) Sigma Array dimension (D-1) x (D-1) x iter (posterior samples) number cores used Timer","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"Notation: Let Z_j denote J-th row matrix Z. collapsed model given : $$Y_j sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ = I_N + X * Gamma * X', K = Xi (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. uncollapsed model (Full pibble model) given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma given posterior samples Eta collapsed model.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"","code":"sim <- pibble_sim() # Fit model for eta fit <- optimPibbleCollapsed(sim$Y, sim$upsilon, sim$Theta%*%sim$X, sim$KInv, sim$AInv, random_pibble_init(sim$Y)) # Finally obtain samples from Lambda and Sigma fit2 <- uncollapsePibble(fit$Samples, sim$X, sim$Theta, sim$Gamma, sim$Xi, sim$upsilon, seed=2849)"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":null,"dir":"Reference","previous_headings":"","what":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"See details model. likely called following optimPibbleCollapsed. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"","code":"uncollapsePibble_sigmaKnown( eta, X, Theta, Gamma, GammaComb, Xi, sigma, upsilon, seed, ret_mean = FALSE, linear = FALSE, ncores = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"eta array dimension (D-1) x N x iter (e.g., Pars output function optimPibbleCollapsed) X matrix covariates dimension Q x N Theta matrix prior mean dimension (D-1) x Q Gamma covariance matrix dimension Q x Q GammaComb summed covariance matrix across additive components dimension Q x Q. Xi covariance matrix dimension (D-1) x (D-1) sigma known covariance matrix dimension (D-1) x (D-1) x iter upsilon scalar (must > D) degrees freedom InvWishart prior seed seed use random number generation ret_mean true uses posterior mean Lambda Sigma corresponding sample eta rather sampling posterior Lambda Sigma (useful Laplace approximation used (fails) optimPibbleCollapsed) linear Boolean. linear parameter? ncores (default:-1) number cores use, ncores==-1 uses default OpenMP typically use available cores.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"List components Lambda Array dimension (D-1) x Q x iter (posterior samples) Sigma Array dimension (D-1) x (D-1) x iter (posterior samples) number cores used Timer","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"Notation: Let Z_j denote J-th row matrix Z. collapsed model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ = I_N + X * Gamma * X', K = Xi (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. uncollapsed model (Full pibble model) given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma given posterior samples Eta collapsed model.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed bassetfit object β€” verify.bassetfit","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"Simple verification passed bassetfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"","code":"# S3 method for bassetfit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"m object class bassetfit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for verifying new objects β€” verify","title":"Generic method for verifying new objects β€” verify","text":"Intended called internally package object creator","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for verifying new objects β€” verify","text":"","code":"verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for verifying new objects β€” verify","text":"m object ... arguments passed verify","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for verifying new objects β€” verify","text":"throws error verify test fails","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed multipoo object β€” verify.maltipoofit","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"Simple verification passed multipoo object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"","code":"# S3 method for maltipoofit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"m object class multipoo ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed orthusfit object β€” verify.orthusfit","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"Simple verification passed orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"","code":"# S3 method for orthusfit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"m object class orthusfit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed pibblefit object β€” verify.pibblefit","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"Simple verification passed pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"","code":"# S3 method for pibblefit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"m object class pibblefit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” Y","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"matrix Y (counts community member)","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-110","dir":"Changelog","previous_headings":"","what":"fido 1.1.0","title":"fido 1.1.0","text":"Updating basset model allow additive Gaussian processes Updating random seed generation","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-104","dir":"Changelog","previous_headings":"","what":"fido 1.0.4","title":"fido 1.0.4","text":"changing default optimizer (lbfgs rather adam), adam sensitive random seed adding new r2 methods calculating Bayesian R2 pibble basset models predict.bassetfit now accepts newdata=NULL argument predict training set bug fixes fixing discrepancies base R commands (print, summary, etc).","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-103","dir":"Changelog","previous_headings":"","what":"fido 1.0.3","title":"fido 1.0.3","text":"bug fixes Updating documentation newest version R (4.2.1)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-102","dir":"Changelog","previous_headings":"","what":"fido 1.0.2","title":"fido 1.0.2","text":"bug fixes Removing timing test irrelevant can fail certain set-ups.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-101","dir":"Changelog","previous_headings":"","what":"fido 1.0.1","title":"fido 1.0.1","text":"bug fixes Changing phyloseq imports depends, causing issues installing CRAN. Fixing bug configure.ac causing openmp parallelization work machines.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-100","dir":"Changelog","previous_headings":"","what":"fido 1.0.0","title":"fido 1.0.0","text":"changes make final push CRAN! Changes include: Updating description file match CRAN’s standards Removing dependency driver Linking one remote package (MicrobeDS) separate CRAN-like Github repo using β€œdrat” package. match CRAN’s policy use β€œRemotes”. Precomputing longer running vignettes, cutting R CMD check times half. original vignettes can found vignettes folder β€œ.orig” extension reproducibility.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0114","dir":"Changelog","previous_headings":"","what":"fido 0.1.14","title":"fido 0.1.14","text":"changes prepare version 0.2 (CRAN soon), including: Lots cleaning small warnings notes Fixing erorrs base plot function Cleaning manual entries Fixing errors posted Github (to_ilr among others)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0113","dir":"Changelog","previous_headings":"","what":"fido 0.1.13","title":"fido 0.1.13","text":"tons tiny changes prepare version 0.2 (ultimately CRAN) featured changes include: plot coef methods *fit objects now abide CRAN generic naming scheme - may cause problems prior code positional arguments functions now tested using travis integration (vignettes tested due time constraints) merged Kim’s fixes maltipoo code (almost certainly change maltipoo results; bug prior versions) Internally stored mallard mallard_family data now import mallard mallard_family rather importing ps. Solved R CMD CHECK warning. Lots tiny updates documentation","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0112","dir":"Changelog","previous_headings":"","what":"fido 0.1.12","title":"fido 0.1.12","text":"orthus added jointly fitting multinomial gaussian data (e.g., 16S microbiome metabolomics data)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0111","dir":"Changelog","previous_headings":"","what":"fido 0.1.11","title":"fido 0.1.11","text":"Kim fixed windows installation problems (Thanks Kim!) Fixed bug predict effecting ppc Fixed error pars!=NULL summary lambda_to_iqlr now default behavior focus.cov=NULL Fixed issue Xi=NULL pibblefit trying transform small changes make pibble wrapper around c++ functions faster","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0110","dir":"Changelog","previous_headings":"","what":"fido 0.1.10","title":"fido 0.1.10","text":"basset added fitting non-linear regression using fido numerous changes make installation easier Added NEWS.md file track changes package.","code":""}] +[{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"an-introduction-to-fido","dir":"Articles","previous_headings":"","what":"An introduction to fido","title":"Introduction to fido::Pibble","text":"fido (Justin D. Silverman et al. 2019) loose acronym β€œ(Bayesian) Multinomial Logistic-Normal Models”. particular development fido stems need fast inference time-invariant MALLARD models(Justin D. Silverman et al. 2018). fido fast! uses closed form solutions model gradients Hessians written C++ preform MAP estimation combination parameter uncertainty estimation using Laplace Approximation. One main models fido function pibble fits Multinomial Logistic-Normal Linear Regression model. fido model exactly? First let give broad description 10,000ft : Basically model multinomial count data (e.g., sample contains counts \\(D\\) β€œtypes things”). Importantly, unlike common Poisson count models, multinomial models β€œcompetition counted” (.e., cases counting one type thing means less resources available count types things). may seem vague let give example. Pretend ball pit red, green, blue balls. Pretend ball pit large don’t know total number balls ball pit, yet want say something relative number red, blue, green balls pit. One way may choose measure ball pit grabbing armful balls counting number balls color (e.g., one armful may collect 5 red, 3 blue, 6 green). arms can contain many balls (example 14) (randomly) gotten another green ball armful (making 7 total) likely able measure one red blue balls; hence β€œcompetition counted”. turns type sampling occurs time many situations (Wikipedia example political polling). Perhaps one notable examples type count data occurs modern high-throughput sequencing studies 16S rRNA studies profile microbial communities bulk/single-cell RNA-seq studies study expression profiles cells. cases, transcripts sequenced number different types transcripts counted. important part sequencing samples small portion total genetic material available leads similar competition counted.","code":""},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"the-pibble-model","dir":"Articles","previous_headings":"An introduction to fido","what":"The pibble model","title":"Introduction to fido::Pibble","text":"Pibble one type fido model. particular fido model multivariate linear regression. Let \\(Y\\) denote \\(D\\times N\\) matrix counts. Let us denote \\(j\\)-th column \\(Y\\) \\(Y_j\\). Thus β€œsample” dataset measurement relative amount \\(D\\) β€œtypes things”. Suppose also covariate information form \\(Q\\times N\\) matrix \\(X\\). following pibble model including likelihood priors: \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim N(\\Lambda X_j, \\Sigma) \\\\ \\Lambda &\\sim MN_{(D-1) \\times Q}(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] \\(MN_{(D-1) \\times Q}\\) denotes Matrix Normal distribution matrix \\(\\Lambda\\) regression coefficients dimension \\((D-1)\\times Q\\). Essentially can think Matrix normal two covariance matrices one describing covariation rows \\(\\Lambda\\) (\\(\\Sigma\\)) another describing covariation columns \\(\\Lambda\\) (\\(\\Gamma\\)). \\(W^{-1}\\) refers Inverse Wishart distribution (common distribution covariance matrices). line \\(\\pi_j = \\phi^{-1}(\\eta_j)\\) represents transformation parameters \\(\\pi_j\\) exist simplex (e.g., \\(\\pi_j\\) must sum 1) transformed parameters \\(\\eta_j\\) exist real space. particular define \\(\\phi^{-1}\\) inverse additive log ratio transform (conversely implies \\(\\eta_j = ALR(\\pi_j)\\)) also known identified softmax transform (commonly known Machine Learning community). say later tutorial, one thing know model implemented using ALR transform computationally simple fast; results model can viewed number transforms used (instead ALR) including isometric log-ratio transform, centered log-ratio transform. moving , like give intuitive description pibble. Essentially main modeling component pibble third equation (\\(\\eta_j \\sim N(\\Lambda X_j, \\Sigma)\\)) just multivariate linear model. , \\(X\\) covariates (can continuous, discrete, binary, etc…), \\(\\Sigma\\) covariance matrix regression residuals.","code":""},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"example-analysis-of-microbiome-data","dir":"Articles","previous_headings":"","what":"Example analysis of microbiome data","title":"Introduction to fido::Pibble","text":"analysis presented fido manuscript (Justin D. Silverman et al. 2019). reanalyze previously published study comparing microbial composition terminal ileum subjects Crohn’s Disease (CD) healthy controls (Gevers et al. 2014). fit pibble model using CD status, inflammation status age covariates (plus constant intercept term). Create Design Matrix OTU Table Next specify priors. going start specifying prior covariance log-ratios \\(\\Sigma\\). like thinking prior covariance taxa log-scale (.e., log absolute abundances log-ratios). refer covariance log-absolute abundances \\(\\Omega\\). example, build prior states mean \\(\\Omega\\) identity matrix \\(I_D\\). Aitchison (1986), know assume taxa covariance \\(\\Omega\\) terms log-absolute abundance correlation \\(\\text{ALR}_D\\) given \\[ \\Sigma = G \\Omega G^T \\] \\(G\\) \\(D-1 \\times D\\) matrix given \\(G = [I_{D-1}; -1_{D-1}]\\) (.e., \\(G\\) \\(\\text{ALR}_D\\) contrast matrix). Additionally, know Inverse Wishart mode given \\(\\frac{\\Xi}{\\upsilon + D}\\). Finally, note \\(\\upsilon\\) essentially controls uncertainty \\(\\Sigma\\) prior mean. take \\(\\upsilon = D+3\\). gives us \\(\\Xi = (\\upsilon - D) GIG^T\\). scale \\(\\Xi\\) factor 1/2 make \\(Tr(\\Xi)=D-1\\). Finally specify priors \\(\\Theta\\) (mean \\(\\Lambda\\)) \\(\\Gamma\\) (covariance columns \\(\\Lambda\\); .e., covariance covariates). center prior \\(\\Lambda\\) zero, assume covariates independent. strongly recommend users perform prior predictive checks make sure priors make sense . fido makes easy, main fitting functions (e.g., pibble) automatically sample prior predictive distribution Y left NULL (e.g., without data posterior just prior). main fitting functions fido package output special fit objects (e.g., pibble outputs object class pibblefit). fit objects just lists extra metadata allows special method dispatch. example, call print pibblefit object get nice summary object. Note: Currently, function pibble takes expects inputs outputs β€œdefault” coordinate system; simply ALR coordinate system last category (49 ) taken reference (generalized future versions). specifically vector \\(x\\) representing proportions categories \\(\\{1, \\dots, D\\}\\) can write \\[x^* = \\left( \\log \\frac{x_1}{x_D}, \\dots, \\log \\frac{x_{D-1}}{x_D}\\right).\\] mentioned however, designed fido work many different coordinate systems including ALR (respect category), CLR, ILR, proportions. help transform things coordinate systems written series transformation functions transform pibblefit object desired coordinate system. Importantly, pibblefit objects keep track coordinate system currently user need specify coordinate system want change . Keep mind covariance matrices represented proportions visualizations summaries based covariance matrices suppressed pibblefit objects proportions coordinate system. example, lets look viewing summary prior \\(\\Lambda\\) respect CLR coordinate system1. default summary function returns list (possible elements Lambda, Sigma, Eta) summarizing posterior parameter based quantiles mean (e.g., p2.5 0.025 percentile posterior distribution). type table may hard take due large , pibblefit objects also come default plotting option parameters. Also returned plot objects ggplot objects normal ggplot2 commands work . though going use one names functions pibblefit objects provide specific names covariates (helpful plot). looks fairly reasonable . going go ahead fit model data. fido provides helper method called refit use avoid passing prior parameters . Unlike main pibble function, refit method can called objects coordinate system transformations default coordinate system handled internally2. one nice thing using refit method. said, new objects added pibblefit object need added proper coordinates example, wanted replace prior \\(\\Xi\\) object CLR coordinates, transform prior Xi CLR coordinates adding priors object. Now also going add taxa names make easier interpret results. anything else lets look posterior predictive distribution assess model fit. can accessed method ppc3. things note plot. First, zoomed like looks hard make much . fairly large dataset analyzing hard view uncertainty interval; case plotting median 95% confidence interval grey black observed counts green. fido also simpler function summarizes posterior predictive check. see model appears fitting well (least based posterior predictive check) 1.5% observations fall outside 95% posterior predictive density (good). readers look ppc plots think β€œlooks like -fitting”. However, note two ways using ppc. One predict counts based samples \\(\\eta\\) (Eta; ); predict β€œscratch” predict starting form posterior samples \\(\\Lambda\\) (Lambda) sampling \\(\\eta\\) sampling \\(Y\\). later functionality can accessed also passing parameters from_scratch=TRUE ppc function. Note: two posterior predictive checks different meanings, one better . Now going finally look posterior distribution regression parameters, many focus just 95% credible interval including zero (.e., model fairly certain non-zero). also going ignore intercept term just look parameters associated age disease status. first, obvious ting notice covariate age pretty much effect , whatever effect may incredibly weak. going remove age plot just look coordinates non-zero effect diagnosis CD","code":"library(MicrobeDS) library(phyloseq) library(dplyr) library(fido) set.seed(899) data(\"RISK_CCFA\") # drop low abundant taxa and samples dat <- RISK_CCFA %>% subset_samples(disease_stat!=\"missing\", immunosup!=\"missing\") %>% subset_samples(diagnosis %in% c(\"no\", \"CD\")) %>% subset_samples(steroids==\"false\") %>% subset_samples(antibiotics==\"false\") %>% subset_samples(biologics==\"false\") %>% subset_samples(biopsy_location==\"Terminal ileum\") %>% tax_glom(\"Family\") %>% prune_samples(sample_sums(.) >= 5000,.) %>% filter_taxa(function(x) sum(x > 3) > 0.10*length(x), TRUE) sample_dat <- as.data.frame(as(sample_data(dat),\"matrix\")) %>% mutate(age = as.numeric(as.character(age)), diagnosis = relevel(factor(diagnosis, ordered = FALSE), ref=\"no\"), disease_stat = relevel(factor(disease_stat, ordered = FALSE), ref=\"non-inflamed\")) X <- t(model.matrix(~diagnosis + disease_stat+age, data=sample_dat)) Y <- otu_table(dat) # Investigate X and Y look like X[,1:5] #> 1939.SKBTI.0175 1939.SKBTI047 1939.SKBTI051 1939.SKBTI063 #> (Intercept) 1.00000 1.00000 1.00 1.00000 #> diagnosisCD 1.00000 1.00000 1.00 1.00000 #> disease_statinflamed 0.00000 1.00000 1.00 1.00000 #> age 15.16667 14.33333 15.75 13.58333 #> 1939.SKBTI072 #> (Intercept) 1.00 #> diagnosisCD 1.00 #> disease_statinflamed 1.00 #> age 15.75 Y[1:5,1:5] #> OTU Table: [5 taxa and 5 samples] #> taxa are rows #> 1939.SKBTI.0175 1939.SKBTI047 1939.SKBTI051 1939.SKBTI063 1939.SKBTI072 #> 4442127 0 9 0 14 2 #> 74305 1 2 35 1 0 #> 663573 36 1 0 2 1 #> 2685602 10 264 211 276 83 #> 4339819 0 37 42 70 22 upsilon <- ntaxa(dat)+3 Omega <- diag(ntaxa(dat)) G <- cbind(diag(ntaxa(dat)-1), -1) Xi <- (upsilon-ntaxa(dat))*G%*%Omega%*%t(G) Theta <- matrix(0, ntaxa(dat)-1, nrow(X)) Gamma <- diag(nrow(X)) priors <- pibble(NULL, X, upsilon, Theta, Gamma, Xi) print(priors) #> pibblefit Object (Priors Only): #> Number of Samples: 250 #> Number of Categories: 49 #> Number of Covariates: 4 #> Number of Posterior Samples: 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System: alr, reference category: 49 priors <- to_clr(priors) summary(priors, pars=\"Lambda\", gather_prob=TRUE, as_factor=TRUE, use_names=TRUE) #> $Lambda #> # A tibble: 784 x 9 #> Parameter coord covariate val .lower .upper .width .point .interval #> #> 1 Lambda 1 1 0.0509 -0.528 0.596 0.5 mean qi #> 2 Lambda 1 2 0.00199 -0.567 0.575 0.5 mean qi #> 3 Lambda 1 3 -0.0373 -0.620 0.532 0.5 mean qi #> 4 Lambda 1 4 -0.00205 -0.554 0.549 0.5 mean qi #> 5 Lambda 2 1 0.00991 -0.564 0.535 0.5 mean qi #> 6 Lambda 2 2 -0.00000782 -0.572 0.580 0.5 mean qi #> 7 Lambda 2 3 -0.0247 -0.570 0.518 0.5 mean qi #> 8 Lambda 2 4 0.0165 -0.536 0.589 0.5 mean qi #> 9 Lambda 3 1 0.0138 -0.584 0.620 0.5 mean qi #> 10 Lambda 3 2 -0.00502 -0.542 0.581 0.5 mean qi #> # ... with 774 more rows names_covariates(priors) <- rownames(X) p <- plot(priors, par=\"Lambda\") #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. p + ggplot2::xlim(c(-10, 10)) priors$Y <- Y # remember pibblefit objects are just lists posterior <- refit(priors, optim_method=\"lbfgs\") tax <- tax_table(dat)[,c(\"Class\", \"Family\")] tax <- apply(tax, 1, paste, collapse=\"_\") names_categories(posterior) <- tax ppc(posterior) + ggplot2::coord_cartesian(ylim=c(0, 30000)) ppc_summary(posterior) #> Proportions of Observations within 95% Credible Interval: 0.9898776 ppc(posterior, from_scratch=TRUE) +ggplot2::coord_cartesian(ylim=c(0, 30000)) ppc_summary(posterior, from_scratch=TRUE) #> Proportions of Observations within 95% Credible Interval: 0.9721633 posterior_summary <- summary(posterior, pars=\"Lambda\")$Lambda focus <- posterior_summary[sign(posterior_summary$p2.5) == sign(posterior_summary$p97.5),] focus <- unique(focus$coord) plot(posterior, par=\"Lambda\", focus.coord = focus, focus.cov = rownames(X)[2:4]) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. posterior_summary <- filter(posterior_summary, covariate==\"diagnosisCD\") focus <- posterior_summary[sign(posterior_summary$p2.5) == sign(posterior_summary$p97.5),] focus <- unique(focus$coord) tax_table(dat)[taxa_names(dat)[which(names_coords(posterior) %in% focus)]] #> Taxonomy Table: [12 taxa by 7 taxonomic ranks]: #> Kingdom Phylum Class Order #> 74305 \"Bacteria\" \"Proteobacteria\" \"Epsilonproteobacteria\" \"Campylobacterales\" #> 4449236 \"Bacteria\" \"Proteobacteria\" \"Betaproteobacteria\" \"Burkholderiales\" #> 1105919 \"Bacteria\" \"Proteobacteria\" \"Betaproteobacteria\" \"Burkholderiales\" #> 4477696 \"Bacteria\" \"Proteobacteria\" \"Gammaproteobacteria\" \"Pasteurellales\" #> 4448331 \"Bacteria\" \"Proteobacteria\" \"Gammaproteobacteria\" \"Enterobacteriales\" #> 4154872 \"Bacteria\" \"Bacteroidetes\" \"Flavobacteriia\" \"Flavobacteriales\" #> 4452538 \"Bacteria\" \"Fusobacteria\" \"Fusobacteriia\" \"Fusobacteriales\" #> 341322 \"Bacteria\" \"Firmicutes\" \"Bacilli\" \"Turicibacterales\" #> 1015143 \"Bacteria\" \"Firmicutes\" \"Bacilli\" \"Gemellales\" #> 176318 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> 1788466 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> 1896700 \"Bacteria\" \"Firmicutes\" \"Clostridia\" \"Clostridiales\" #> Family Genus Species #> 74305 \"Helicobacteraceae\" NA NA #> 4449236 \"Alcaligenaceae\" NA NA #> 1105919 \"Oxalobacteraceae\" NA NA #> 4477696 \"Pasteurellaceae\" NA NA #> 4448331 \"Enterobacteriaceae\" NA NA #> 4154872 \"[Weeksellaceae]\" NA NA #> 4452538 \"Fusobacteriaceae\" NA NA #> 341322 \"Turicibacteraceae\" NA NA #> 1015143 \"Gemellaceae\" NA NA #> 176318 \"Christensenellaceae\" NA NA #> 1788466 \"Lachnospiraceae\" NA NA #> 1896700 \"Peptostreptococcaceae\" NA NA plot(posterior, par=\"Lambda\", focus.coord = focus, focus.cov = rownames(X)[2]) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale."},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/introduction-to-fido.html","id":"a-few-notes-on-model-inference-and-parameter-collapsing","dir":"Articles","previous_headings":"More Technical Details","what":"A few notes on model inference and parameter collapsing","title":"Introduction to fido::Pibble","text":"Along algorithmic speed-ups enabled C++ Eigen library fido uses conjugate priors regression component model allowing last three lines model collapsed 1 line. last three lines model can re-expanded using fully conjugate sampling schemes require optimization MCMC (matrix operations). details: collapsed model given \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j, n_j\\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim T_{(D-1)\\times N}(\\upsilon, \\Theta X, \\Xi, I_N + X^T \\Gamma X) \\end{align} \\] \\(=(I_N + X^T \\Gamma, X)^{-1}\\) \\(T_{(D-1)\\times N}\\) refers Matrix T-distribution \\((D-1)\\times N\\) matrix \\(\\eta\\) log density given \\[\\log T_{(D-1)\\times N}(\\eta | \\upsilon, \\Theta X, \\Xi, ) \\propto -\\frac{\\upsilon+N-D-2}{2}\\log | I_{D-1}+\\Xi^{-1}(\\eta-\\Theta X)(\\eta-\\Theta X)^T |.\\] Rather using MCMC sample \\(\\eta\\) fido uses MAP estimation. Additionally, fido allows quantification uncertainty MAP estimates using Laplace approximation. found practice MAP based Laplace approximation produced comparable results full MCMC sampler tremendous improvements compute time. samples \\(\\eta\\) produced using Laplace approximation closed form solutions conditional density \\(\\Lambda\\) \\(\\Sigma\\) given \\(\\eta\\) used β€œuncollapse” collapsed model produce posterior samples target model. uncollapsing fast given following matrix equations: \\[ \\begin{align} \\upsilon_N &= \\upsilon+N \\\\ \\Gamma_N &= (XX^T+\\Gamma^{-1})^{-1} \\\\ \\Theta_N &= (\\eta X^T+\\Theta\\Gamma^{-1})\\Gamma_N \\\\ \\Xi_N &= \\Xi + (\\eta - \\Theta_N X)(\\eta - \\Theta_N X)^T + (\\Theta_N - \\Theta)\\Gamma(\\Theta_N- \\Theta)^T \\\\ p(\\Sigma | \\eta, X) &= W^{-1}(\\Xi_N, \\upsilon_N)\\\\ p(\\Lambda | \\Sigma, \\eta, X) &= MN_{(D-1)\\times Q}(\\Lambda_N, \\Sigma, \\Gamma_N). \\end{align} \\] Laplace approximation slow, unstable (see ) simply needed, default behavior pibble preform matrix calculations produce single point estimate \\(\\Sigma\\) \\(\\Lambda\\) based posterior means \\(p(\\Sigma | \\eta, X)\\) \\((\\Lambda | \\Sigma, \\eta, X)\\).","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"PCR bias can measured corrected combining specially designed calibration curve statistical models. figure gives brief overview calibration experiment. brief, samples pooled create β€œcalibration sample”. calibration sample contains DNA every taxa study. calibration sample split multiple aliquots amplified varying number cycles. sequence resulting samples along original samples. turn modeling (focus vignette). manuscript, show PCR bias well approximated simple multiplicative process. translated sequence count data, means PCR bias represents linear process log-ratio space: just need multinomial logistic-normal linear models (aka pibble models fido package). set model correctly PCR bias just linear model: bias parameter amount bias seen given sample parameter times number PCR cycles sample underwent prior sequencing. case estimate unbiased composition sample just becomes unique intercept sample (technical / biological replicates replicates share intercept; demonstrate well). Another way think want estimate composition number PCR cycles equal zero (aka intercept).","code":""},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"an-example","dir":"Articles","previous_headings":"","what":"An Example","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"show example data (including calibration samples can modeled). mock community data analyzed manuscript. Lets first take brief look data. two objects Y (count table already preprocessed just manuscript) metadata contains covariates need (including number PCR cycles sample undergone). non-obvious variable probably machine just categorical variable denoting 4 different PCR machines used amplify given sample. writing paper, thought might source bias included term model (just demonstrate ). fido doesn’t yet formula interface (write eventually), just need use formula interface provided base-R’s model.matrix function. can see created design matrix encoded PCR machine using series 3 dummy variables. also series dummy variables denoting samples biologically unique (e.g., sample_num). -1 formula just tells R unique intercept biological sample (e.g., use one-hot-encoding rather dummy encoding used PCR machines). Next going specify model priors fit model. detailed description general thought process like follow creating priors fido provided vignette Tips Specifying Priors. just going simple prior just change Gamma default values. wondering, manuscript choose multiplier 10 based maximum marginal likelihood. end vignette show example can done. Next going transform results CLR coordinates interpret space. ’s . Now just interpreting model results. Lets say want investigate estimated unbiased composition, just look inferred random intercepts corresponding sample_num variable. can plot results simply enough: compositional bias introduced cycle can also visualized. fido package bunch tools working fitted models depending ultimately want . See main pibble vignette fuller description can fitted models. One plot find particularly useful, visualizing calibration data fitted bias model. can done follows: two things look plots. First, data look linear space. data look linear options: () something went wrong calibration experiment, (b) something wrong code plotting calibration data, (c) theory prior experiments wrong PCR bias well approximated log-ratio linear. Second, look make sure model good job fitting data. Just remember data sources variation model accounting plotting. example, batch variation (think PCR machine variable included ). also zeros; just add pseudo-count transform data, internally fido actually modeling zeros appropriate pseudo-count.","code":"library(fido) library(dplyr) library(tidyr) library(ggplot2) set.seed(5903) # First load the data data(pcrbias_mock) Y[1:5,1:5] #> cycle13.1 cycle13.2 cycle13.3 cycle14.1 cycle14.2 #> B.longum 27 28 22 37 44 #> B.subtilis 320 299 272 513 650 #> C.aerofaciens 35 32 39 43 84 #> C.hathewayi 61 52 59 93 117 #> C.innocuum 121 91 112 197 208 head(metadata) #> sample_name sample_num cycle_num machine #> 1 cycle13.1 Calibration 13 3 #> 2 cycle13.2 Calibration 13 3 #> 3 cycle13.3 Calibration 13 3 #> 4 cycle14.1 Calibration 14 4 #> 5 cycle14.2 Calibration 14 4 #> 6 cycle14.3 Calibration 14 4 X <- t(model.matrix(~ cycle_num + sample_num + machine -1, data = metadata)) X[,1:5] #> 1 2 3 4 5 #> cycle_num 13 13 13 14 14 #> sample_numCalibration 1 1 1 1 1 #> sample_numMock1 0 0 0 0 0 #> sample_numMock10 0 0 0 0 0 #> sample_numMock2 0 0 0 0 0 #> sample_numMock3 0 0 0 0 0 #> sample_numMock4 0 0 0 0 0 #> sample_numMock5 0 0 0 0 0 #> sample_numMock6 0 0 0 0 0 #> sample_numMock7 0 0 0 0 0 #> sample_numMock8 0 0 0 0 0 #> sample_numMock9 0 0 0 0 0 #> machine2 0 0 0 0 0 #> machine3 1 1 1 0 0 #> machine4 0 0 0 1 1 fit <- pibble(Y = Y, X=X, Gamma = 10*diag(nrow(X))) fit <- to_clr(fit) # pull out indices for random intercepts corresponding to `sample_num` focus.covariate <- rownames(X)[which(grepl(\"sample_num\", rownames(X)))] # Also just so the plot fits nicely in Rmarkdown we are also going to just # plot a few of the taxa focus.coord <- paste0(\"clr_\", c(\"S.gallolyticus\", \"R.intestinalis\", \"L.ruminis\")) # Also to make the plot fit nicely, I just flip the orientation of the plot plot(fit, par=\"Lambda\", focus.cov=focus.covariate, focus.coord=focus.coord) + theme(strip.text.y=element_text(angle=0, hjust=1)) + facet_grid(.data$covariate~.) #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. # Also to make the plot fit nicely, I just flip the orientation of the plot plot(fit, par=\"Lambda\", focus.cov=\"cycle_num\") #> Scale for 'colour' is already present. Adding another scale for 'colour', which will #> replace the existing scale. # First transform the data into CLR coordinates (requires pseudo-count to deal with # zeros). Then will convert to tidy format for ggplot tidy_calibration <- clr_array(Y+0.5, 1) %>% # transform to CLR as.data.frame() %>% select(starts_with(\"cycle\")) %>% # select only samples from the calibration t() %>% as.data.frame() tidy_calibration$sample_name <- rownames(tidy_calibration) tidy_calibration <- tidy_calibration %>% gather(coord, val, -sample_name) %>% mutate(coord = as.numeric(substr(coord, 2, 4))) %>% left_join(metadata, by=\"sample_name\") %>% mutate(coord = names_coords(fit)[coord]) # Now the important part - lets grab the pibble result of interest X.tmp <- matrix(0, nrow(X), 2) # Create fake covariate data to predict the regression line based on rownames(X.tmp) <- rownames(X) X.tmp[\"cycle_num\",2] <- 35 X.tmp[\"sample_numCalibration\",] <- 1 X.tmp # simple, just going to predict the composition for each of these two samples #> [,1] [,2] #> cycle_num 0 35 #> sample_numCalibration 1 1 #> sample_numMock1 0 0 #> sample_numMock10 0 0 #> sample_numMock2 0 0 #> sample_numMock3 0 0 #> sample_numMock4 0 0 #> sample_numMock5 0 0 #> sample_numMock6 0 0 #> sample_numMock7 0 0 #> sample_numMock8 0 0 #> sample_numMock9 0 0 #> machine2 0 0 #> machine3 0 0 #> machine4 0 0 # for the plot # Now predict the fitted regression line for cycle_num using X.tmp predicted <- predict(fit, newdata=X.tmp, summary=TRUE) %>% mutate(cycle_num = c(0, 35)[sample]) # now plot predicted %>% ggplot(aes(x=cycle_num)) + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill=\"darkgrey\") + geom_line(aes(y=mean)) + geom_point(data=tidy_calibration, aes(y=val)) + facet_grid(coord~.) + theme_bw() + theme(strip.text.y=element_text(angle=0)) + ylab(\"CLR Coordinates\")"},{"path":"https://jsilve24.github.io/fido/articles/mitigating-pcrbias.html","id":"using-maximum-marginal-likelihood-to-estimate-a-scale-of-gamma","dir":"Articles","previous_headings":"","what":"Using Maximum Marginal Likelihood to estimate a scale of Gamma","title":"Example of using Fido for measuring and mitigating PCR Bias","text":"chose prior gamma diagonal matrix multiplied factor 10. choose 10? manuscript used something called maximum marginal likelihood. Essentially refit model different values (just 10) saw one fit data best (one highest marginal likelihood). example can done. notice essentially model tells us just want really big value sigma. ? actually corresponds situation multinomial alone enough explain variation technical replicates. happens occasionally. also see log marginal likelihood pretty much assemptotes around 10. rather picking 100000, just settled 10 numerically stable just seemed reasonable. model basically just says: β€œdon’t choose value less 10”.","code":"sigma <- c(1, 2, 3, 10, 100, 1000) # candidate values lml <- rep(NA, length(sigma)) # log marginal likelihood for (i in seq_along(sigma)){ fit <- pibble(Y=Y, X=X, Gamma = sigma[i]*diag(nrow(X))) lml[i] <- fit$logMarginalLikelihood # this is calculated automatically by fido } base::plot(sigma, lml)"},{"path":"https://jsilve24.github.io/fido/articles/non-linear-models.html","id":"fidobasset-the-model","dir":"Articles","previous_headings":"","what":"fido::basset, the model","title":"Non-linear models with fido::basset","text":"fido can used non-linear modeling. going go one model based multivariate Gaussian processes. Gaussian processes type lazy learner, named model lazy dog: Basset Hound. Hence model called basset. basset model can written \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta &\\sim N(\\Lambda[X], \\Sigma, I_N) \\\\ \\Lambda[X] &\\sim \\textsf{GP}(\\Theta[X], \\Sigma, \\Gamma[X]) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] now label quantities interpreted function square brackets. particular, use notation \\(\\Lambda[X]\\) function maps \\(Q \\times N\\) matrix covariates \\(X\\) matrix \\(\\eta\\). \\(\\Lambda\\) can interpreted smooth function relates covariates \\(X\\) composition \\(\\eta\\) potentially non-linear manner. \\(\\Theta[X]\\) mean function evaluated \\(X\\), \\(\\Gamma[X]\\) covariance matrix (gram matrix) formed evaluating positive semi-definite kernel function \\(K\\) set points \\(\\) \\(j\\), .e., \\(\\Gamma_{ij} = K(X_i, X_j)\\). Many different possible kernel functions makes flexible powerful model.","code":""},{"path":"https://jsilve24.github.io/fido/articles/non-linear-models.html","id":"non-linear-time-series-modeling","dir":"Articles","previous_headings":"","what":"Non-linear time-series modeling","title":"Non-linear models with fido::basset","text":"demonstrate basset going reanalyze mallard1 dataset Silverman et al. (2018) provided phyloseq object fido. dataset features 4 artificial gut vessels sampled daily hourly 1 month many technical replicates. accord prior analyses (make easy visualize results) going just analyze bacterial families frequently observed. Note: full dataset (sequence variant level without preprocessing) available run data(mallard). simplicity just look samples vessel 12. function basset wrapper around fido internals make fitting model easy. basset patterned function pibble requires Theta Gamma given matrix functions rather matrices. Theta must function given X outputs \\(D-1 \\times N\\) matrix (just like give pibble) Gamma must function given X outputs \\(N \\times N\\) covariance matrix (e.g., covariance samples). kernel functions meet requirements Gamma fido already. use Squared Exponential (SE) kernel Gamma set Theta zero function. SE kernel give us non-linear smoothing observed time-series. Important Note: Currently, Theta must output matrix represented default coordinate system (\\(ALR_D\\)). may generalized future. just specify Kernel parameters manually, generally parameters can chosen cross-validation. turns basset really just creating pibblefit object little special represents posterior non-linear functions. benefit many methods available pibblefit objects work bassetfit objects. example, can use transformation methods: Really basset shows power use smooth. Now going create visual shows observed data CLR coordinates (need add pseudo-count) along smoothed estimates.","code":"library(fido) library(dplyr) library(tidyr) library(ggplot2) data(mallard_family) # Just take vessel 1 sample.ids <- mallard_family$sample_data[mallard_family$sample_data$Vessel == 1,] # Just take hourly samples sample.ids <- sample.ids[(sample.ids$time > \"2015-11-20 15:00:00 UTC\") & (sample.ids$time < \"2015-11-25 16:00:00 UTC\"),] # Subsetting the sample data and OTU data subset.sample_data <- mallard_family$sample_data[mallard_family$sample_data$X.SampleID %in% sample.ids$X.SampleID,] subset.otu_table <- mallard_family$otu_table[rownames(mallard_family$otu_table) %in% sample.ids$X.SampleID,] # Order samples - to make plotting easy later o <- order(subset.sample_data$time) subset.otu_table <- subset.otu_table[o,] subset.sample_data <- subset.sample_data[o,] # Extract Data / dimensions from Phyloseq object Y <- t(as(subset.otu_table, \"matrix\")) D <- nrow(Y) N <- nrow(subset.sample_data) # X in hours X <- as.numeric(subset.sample_data$time) X <- t((X-min(X)) / 3600) # Specify Priors Gamma <- function(X) SE(X, sigma=5, rho=10) # Create partial function Theta <- function(X) matrix(0, D-1, ncol(X)) upsilon <- D-1+3 Xi <- matrix(.4, D-1, D-1) diag(Xi) <- 1 # Now fit the model fit <- fido::basset(Y, X, upsilon, Theta, Gamma, Xi) #> No rows of X were specified. Using all rows... fit.clr <- to_clr(fit) # Plot Sigma in CLR plot(fit.clr, par=\"Sigma\", focus.coord=c(\"clr_seq_6\", \"clr_seq_5\", \"clr_seq_2\")) # predict not just missing days but also forecast into future X_predict <- t(1:(max(X))) predicted <- predict(fit.clr, X_predict, jitter=1) family_names <- as(mallard_family$tax_table$Family, \"vector\") Y_clr_tidy <- clr_array(Y+0.65, parts = 1) %>% gather_array(mean, coord, sample) %>% mutate(time = X[1,sample], coord = paste0(\"CLR(\", family_names[coord],\")\")) predicted_tidy <- gather_array(predicted, val, coord, sample, iter) %>% mutate(time = X_predict[1,sample]) %>% filter(!is.na(val)) %>% group_by(time, coord) %>% summarise_posterior(val, na.rm=TRUE) %>% ungroup() %>% mutate(coord = paste0(\"CLR(\", family_names[coord],\")\")) ggplot(predicted_tidy, aes(x = time, y=mean)) + geom_ribbon(aes(ymin=p2.5, ymax=p97.5), fill=\"darkgrey\", alpha=0.5) + geom_ribbon(aes(ymin=p25, ymax=p75), fill=\"darkgrey\", alpha=0.9)+ geom_line(color=\"blue\") + geom_point(data = Y_clr_tidy, alpha=0.5) + facet_wrap(~coord, scales=\"free_y\") + theme_minimal()+ theme(axis.title.y = element_blank(), axis.title.x = element_blank(), axis.text.x = element_text(angle=45))"},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"fidoorthus-the-model","dir":"Articles","previous_headings":"","what":"fido::orthus, the model","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"fido can used jointly modeling multivariate count data multivariate Gaussian data. example, reasonable model jointly model 16S microbiome data metabolomics data jointly. β€œtwo-headed” nature model, e.g., two observed data-sets, named model orthus, two-headed dog brother Cerberus Greek Mythology. orthus model can written \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\begin{bmatrix}\\eta_j \\\\ Z_j \\end{bmatrix} &\\sim N(\\Lambda X, \\Sigma) \\\\ \\Lambda &\\sim N(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon) \\end{align} \\] Note looks nearly identical pibble model appended second (Gaussian) dataset (\\(Z\\)) onto \\(\\eta\\). , definition \\(\\Lambda\\) changes (now larger bottom rows dictating covariates \\(X\\) influence second dataset). Similarly, \\(\\Sigma\\) now much larger can though \\[ \\Sigma = \\begin{bmatrix} \\Sigma_{(\\eta, \\eta)} & \\Sigma_{(\\eta, Z)} \\\\ \\Sigma_{(Z, \\eta)} & \\Sigma_{(Z, Z)}\\end{bmatrix} \\] \\(\\Sigma_{(\\eta, \\eta)}\\) describes covariance log-ratios (e.g., covariance among multinomial categories log-ratio space), \\(\\Sigma_{(Z, Z)}\\) describes covariance dimensions \\(Z\\) (e.g., metabolites Z metabolomics data), \\(\\Sigma_{(\\eta, Z)} = \\Sigma_{(Z, \\eta)}^T\\) represents covariance log-ratios dimensions \\(Z\\) (e.g., microbial taxa metabolites). Similar \\(\\Sigma\\) \\(\\Lambda\\), parameters \\(\\Xi\\) \\(\\Theta\\) undergo similar expansion accommodate second dataset.","code":""},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"joint-modeling-of-microbial-16s-data-and-metabolomics","dir":"Articles","previous_headings":"","what":"Joint modeling of Microbial 16S data and Metabolomics","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"demonstrate orthus perform toy analysis data Kashyap et al. (2013) made available Callahan et al. (2016) part recently published microbiome data analysis workflow (Callahan et al. 2016). follow data preprocessing Callahan et al. (2016) just don’t drop taxa instead amalgamate don’t pass filtering category called β€œβ€. maintain proper variance multinomial model. Now going just bit processing get data format orthus. Note extra metadata just going use intercept model time. Now going set priors. priors going similar pibble now need think prior covariance among metabolites metabolites log-ratios taxa. Remember, priors must defined \\(ALR_D\\) (e.g., ALR reference D-th taxa; may changed future make specifying priors user friendly). going form prior \\(\\Sigma\\) specifying \\(\\upsilon\\) \\(\\Xi\\). specify weak prior belief taxa independent terms log absolute abundance. can translate statement covariance log absolute abundance statement log-ratio covariance pre- post-multiplying \\(ALR_D\\) contrast matrix (refer \\(GG\\) ). Additionally, believe likely substantial covariance taxa metabolites assume metabolites likely independent. Note structure prior, everything independent moderate positive covariance log-ratios based shared definition terms \\(D\\)-th taxa. parts prior less interesting. going state mean \\(\\Lambda\\) centered \\(\\mathbf{0}\\) signal--noise ratio data approximately 1 (later part specified \\(\\Gamma=\\)). Finally fit model. Next going transform log-ratios \\(ALR_D\\) \\(CLR\\). written transformation functions, e.g., to_clr etc… work orthusfit objects similar manner work pibblefit objects. orthusfit objects transform log-ratio components parameters leaving parts inferred model parameters (.e., parts associated metabolites) untouched.","code":"metab_path <- system.file(\"extdata/Kashyap2013\", \"metabolites.csv\", package=\"fido\") microbe_path <- system.file(\"extdata/Kashyap2013\", \"microbe.rda\", package=\"fido\") metab <- read.csv(metab_path, row.names = 1) metab <- as.matrix(metab) microbe <- get(load(microbe_path)) ## Preprocessing ## # Metabolite Preprocessing keep_ix <- rowSums(metab == 0) <= 3 metab <- metab[keep_ix, ] # 16S Preprocesing - plus some weirdness to rename amalgamated category to \"other\" keep_ix <- taxa_sums(microbe) > 4 keep_ix <- keep_ix & (rowSums(otu_table(microbe)>2)>3) microbe <- merge_taxa(microbe, taxa_names(microbe)[!keep_ix]) nms <- taxa_names(microbe) rnm <- which(taxa_names(microbe)==taxa_names(microbe)[!keep_ix][1]) nms[rnm] <- \"other\" taxa_names(microbe) <- nms rm(nms, rnm) # bit of preprocessing metab <- log10(1 + metab) Y <- otu_table(microbe, taxa_are_rows=TRUE) Z <- metab #(metabolites are rows) X <- matrix(1, 1, phyloseq::nsamples(microbe)) # save dims for easy reference N <- ncol(Y) P <- nrow(Z) Q <- nrow(X) D <- nrow(Y) upsilon <- (D-1+P)+10 # weak-ish prior on covariance over joint taxa and metabolites Xi <- diag(D-1+P) GG <- cbind(diag(D-1), -1) Xi[1:(D-1), 1:(D-1)] <- GG%*%diag(D) %*% t(GG) Xi <- Xi * (upsilon-D-P) # this scales Xi to have the proper mean we wanted image(Xi) Gamma <- diag(Q) Theta <- matrix(0, D-1+P, Q) fit <- orthus(Y, Z, X, Theta=Theta, Gamma=Gamma, Xi=Xi, upsilon=upsilon, n_samples=1000) fit <- to_clr(fit) print(fit) #> orthusfit Object: #> Number of Samples: 12 #> Number of Categories: 114 #> Number of Zdimensions: 405 #> Number of Covariates: 1 #> Number of Posterior Samples: 1000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System: clr"},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"investigate-model-results","dir":"Articles","previous_headings":"","what":"Investigate Model Results","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"ton ways visualize inferred model. make network diagrams relating taxa taxa, taxa metabolites metabolites metabolites. look low dimensional representation joint covariance create something much akin canonical correlation analysis (CCA). look well metabolites predict taxa vice-versa. sake simplicity something much simpler. just going find list taxa metabolite covariances model confident . looks hundred covariances can fairly confident .","code":"# First just look ath the cross-covariances fit by the model # (covariance between taxa in CLR coordinates and metabolites) # This requires that we extract the corner of Sigma. xcor <- fit$Sigma[1:D, D:(D-1+P),] # Initial preprocessing to speed up computation of posterior intervals # As there are a lot of cross-covariance terms we are going to first # weed down the list of things we have to look at by first pass # selecting only those taxa that have a large posterior mean for the covariance xcor.mean <- apply(xcor, c(1,2), mean) to.analyze <- fido::gather_array(xcor.mean, cov, taxa, metabolite) %>% arrange(-abs(cov)) %>% .[1:1000,] %>% mutate(tm =paste0(taxa, \"_\", metabolite)) # Subset Covariance to those we are interested in and calculate posterior # confidence intervals. xcor.summary <- fido::gather_array(xcor, cov, taxa, metabolite, iter) %>% mutate(tm=paste0(taxa, \"_\", metabolite)) %>% filter(tm %in% to.analyze$tm) %>% mutate(taxa = rownames(Y)[taxa], metabolite = rownames(Z)[metabolite]) %>% group_by(taxa, metabolite) %>% fido:::summarise_posterior(cov) %>% arrange(mean) %>% filter(taxa != 'other') # we don't care about these # Select those covariances where the model has high certainty (95%) that # the true covariance is not zero. xcor.summary %>% filter(sign(p2.5)==sign(p97.5)) %>% filter(abs(mean) > 2) #> # A tibble: 218 x 8 #> # Groups: taxa [17] #> taxa metabolite p2.5 p25 p50 mean p75 p97.5 #> #> 1 722 206.0445922 -6.55 -3.96 -3.08 -3.33 -2.32 -1.51 #> 2 7816 206.0445922 -5.63 -3.23 -2.45 -2.65 -1.85 -1.05 #> 3 722 290.9298419 -5.18 -3.09 -2.42 -2.62 -1.85 -1.23 #> 4 18182 380.1846197 -5.20 -3.07 -2.38 -2.55 -1.83 -1.03 #> 5 722 181.4504354 -5.19 -3.04 -2.36 -2.55 -1.80 -1.13 #> 6 722 177.0565368 -4.98 -3.01 -2.30 -2.50 -1.78 -1.08 #> 7 722 180.072273 -5.03 -3.06 -2.30 -2.49 -1.71 -0.986 #> 8 19517 380.1846197 -5.15 -3.06 -2.33 -2.49 -1.71 -0.952 #> 9 2943 380.1846197 -4.89 -2.97 -2.34 -2.49 -1.83 -1.03 #> 10 722 176.0343919 -4.93 -2.95 -2.25 -2.48 -1.79 -1.09 #> # ... with 208 more rows"},{"path":"https://jsilve24.github.io/fido/articles/orthus.html","id":"qualifications-and-caution","dir":"Articles","previous_headings":"","what":"Qualifications and Caution","title":"Joint Modeling (e.g., Multiomics) with fido::Orthus","text":"Please note, performed analysis demonstrate use orthus model repeatedly asked . think cool model quite useful right circumstances. like point philosophical points analysis performed . First, performed analysis just demonstrate orthus. really don’t know data showcased . metabolite 206.0445922? idea. reason metabolites dataset named. reason left taxa indexed sequence variant number. Second (important), identifying relationships taxa metabolites (two high-dimensional multivariate data-sets) really difficult! looking just 114 taxa 405 leads 46170 possible covariances 12 samples! Yes orthus Bayesian model, Yes, Bayesian models can quite useful parameters samples, limit reasonability. Really, Bayesian models great can perfectly capture prior beliefs prior. often can really done perfectly? caution users, use orthus carefully. Consider metabolites taxa really care can, isolate analyses . Alright, ’s probably enough philosophizing R package Vignette. hope enjoy orthus.","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"overview","dir":"Articles","previous_headings":"","what":"Overview","title":"Picking Priors","text":"Picking priors important difficult part Bayesian statistics. vignette intended introduction Bayesian statistics, assume readers already know prior/posterior . Just review, prior probability distribution representing analysts belief model parameters prior seeing data. posterior (sense optimal) probability distribution representing belief seen data (given prior beliefs). Since priors represent analysts belief prior seeing data, makes sense priors often specific given study. example, don’t necessarily believe parameters learned RNA-seq data analysis someone studying microbial communities political gerrymandering. ’s , probably different prior beliefs depending microbial community studying study set . (least) two important reasons think carefully priors. First, meaning posterior conditioned prior accurately reflecting beliefs. posterior represents optimal belief given data given prior beliefs. specified prior reflect beliefs well prior won’t right meaning. course priors imperfect best can. Second, practical note, really weird priors can lead numerical issues optimization uncertainty quantification fido. later problem can appear failure reach MAP estimate error trying invert Hessian. Overall, prior single function (probability distribution) specified jointly parameters interest. Still, can confusing think prior joint form. instead try simplify break prior distinct components. numerous models fido, focus prior pibble model , opinion, heart fido. Just review, pibble model given : \\[ \\begin{align} Y_j & \\sim \\text{Multinomial}\\left(\\pi_j \\right) \\\\ \\pi_j & = \\phi^{-1}(\\eta_j) \\\\ \\eta_j &\\sim N(\\Lambda X_j, \\Sigma) \\\\ \\Lambda &\\sim N(\\Theta, \\Sigma, \\Gamma) \\\\ \\Sigma &\\sim W^{-1}(\\Xi, \\upsilon). \\end{align} \\] consider first two lines part likelihood bottom three lines part prior. Therefore following three components prior: prior \\(\\Sigma\\): \\(\\Sigma \\sim W^{-1}(\\Xi, \\upsilon)\\) prior \\(\\Lambda\\): \\(\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma)\\) prior \\(\\eta_j\\): \\(\\eta_j \\sim N(\\Lambda X_j, \\Sigma)\\)","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"background-on-the-matrix-normal","dir":"Articles","previous_headings":"","what":"Background on the Matrix Normal","title":"Picking Priors","text":"three things explain going forward. vec operation, Kronecker product, matrix normal. first two needed understand matrix-normal.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-vec-operation","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"The Vec Operation","title":"Picking Priors","text":"vec operation just special way saying column stacking. matrix \\[X = \\begin{bmatrix} & b \\\\ c & d \\end{bmatrix}\\] \\[vec(X) = \\begin{bmatrix} \\\\ c \\\\ b\\\\d\\end{bmatrix}.\\] ’s simple.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"kronker-products","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"Kronker Products","title":"Picking Priors","text":"turns many different definitions multiply two matrices together. standard matrix multiplication, element-wise multiplication, also something called Kronecker product. Given two matrices \\(X = \\begin{bmatrix} x_{11} & x_{12} \\\\ x_{21} & x_{22} \\end{bmatrix}\\) \\(Y = \\begin{bmatrix} y_{11} & y_{12} \\\\ y_{21} & y_{22} \\end{bmatrix}\\), define Kronecker product \\(X\\) \\(Y\\) \\[ X \\otimes Y = \\begin{bmatrix}x_{11}Y & x_{12}Y \\\\ x_{21}Y & x_{22}Y \\end{bmatrix} = \\begin{bmatrix} x_{11}y_{11} & x_{11}y_{12} & x_{12}y_{11} & x_{12}y_{12} \\\\ x_{11}y_{21} & x_{11}y_{22} & x_{12}y_{21} & x_{12}y_{22} \\\\ x_{21}y_{11} & x_{21}y_{12} & x_{22}y_{11} & x_{22}y_{12} \\\\ x_{21}y_{21} & x_{21}y_{22} & x_{22}y_{21} & x_{22}y_{22} \\\\ \\end{bmatrix}. \\] Notice essentially making larger matrix patterning Y X?","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-matrix-normal","dir":"Articles","previous_headings":"Background on the Matrix Normal","what":"The Matrix Normal","title":"Picking Priors","text":"going forward may wondering normal prior \\(\\Lambda\\) three parameters (\\(\\Theta\\), \\(\\Sigma\\), \\(\\Gamma\\)) rather two. means prior \\(\\Lambda\\) matrix normal rather multivariate normal. matrix normal generalization multivariate normal random matrices (just random vectors). simplified description matrix normal. multivariate normal mean vector covariance matrix describing spread distribution mean. matrix normal mean matrix, two covariance matrices describing spread distribution mean. first covariance matrix (\\(\\Sigma\\)) describes covariance rows \\(\\Lambda\\) second covariance matrix (\\(\\Gamma\\)). describes covariance columns \\(\\Lambda\\). relationship multivariate normal matrix normal follows. \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma) \\leftrightarrow vec(\\Lambda) \\sim N(vec(\\Theta), \\Gamma \\otimes \\Sigma)\\] \\(\\otimes\\) represents Kronecker product \\(vec\\) represents vectorization operation (.e., column stacking matrix produce long vector). can now ask, distribution single element \\(\\Lambda\\)? answer simply \\[\\Lambda_{ij} \\sim N(\\Theta_{ij}, \\Sigma_{ii}\\Gamma_{jj}).\\] Similarly, can ask distribution single column \\(\\Lambda\\): \\[\\Lambda_{\\cdot j} \\sim N(\\Theta_{\\cdot j}, \\Gamma_{jj} \\Sigma).\\] Make sense? take look wikipedia complete treatment matrix-normal.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-sigma","dir":"Articles","previous_headings":"","what":"The prior for \\(\\Sigma\\)","title":"Picking Priors","text":"\\(\\Sigma\\) describes covariance log-ratios. \\(\\phi^{-1}\\) inverse \\(ALR_D\\) transform \\(\\Sigma\\) describes covariance \\(ALR_D\\) coordinates. Also note, section going hardest one, priors components faster describe probably easier understand.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"background-on-the-prior","dir":"Articles","previous_headings":"The prior for \\(\\Sigma\\)","what":"Background on the Prior","title":"Picking Priors","text":"prior \\(\\Sigma\\) Inverse Wishart written \\[\\Sigma \\sim W^{-1}(\\Xi, \\upsilon)\\] \\(\\Xi\\) called scale matrix (must valid covariance matrix ), \\(\\upsilon\\) called degrees freedom parameter. \\(\\Sigma\\) \\((D-1)x(D-1)\\) matrix, constraint \\(\\upsilon\\) \\(\\upsilon \\geq D-1\\). inverse Wishart mildly complex form moments (e.g., mean variance). mean given \\[E[\\Sigma] = \\frac{\\Xi}{\\upsilon-D-2} \\quad \\text{} \\upsilon > D.\\] variance somewhat complicated (Wikipedia gives relationships) purposes can think \\(\\upsilon\\) setting variance, larger \\(\\upsilon\\) means less uncertainty (lower variance) mean, smaller \\(\\upsilon\\) means uncertainty (higher variance) mean.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-upsilon-and-xi-","dir":"Articles","previous_headings":"The prior for \\(\\Sigma\\)","what":"Choosing \\(\\upsilon\\) and \\(\\Xi\\).","title":"Picking Priors","text":"Reading may seem intimidating: ’s form mean… ? ’s-think covariance log-ratios? ’s think . think -terms putting prior true abundances log-space transforming prior log-ratios. can really explain need explain bit background. Compositional Data Analysis Nutshell turns transforms \\(\\phi\\) examples log-ratio transforms studied field called compositional data analysis. Briefly, transforms can written form: \\(\\eta = \\Psi \\log \\pi\\). log-ratios (\\(\\eta\\)) just linear transform log-transformed relative-abundances. turns special properties \\(\\Psi\\), following also holds: \\(\\eta = \\Psi \\log w\\) \\(w\\) absolute (relative) abundances. can say log-ratios also just linear transform log-transformed absolute-abundances. Linear Transformations Covariance Matricies Recall \\(x \\sim N(\\mu, \\Sigma)\\) (multivariate \\(x\\)) matrix \\(\\Psi\\) \\(\\Psi x \\sim N(\\Psi \\mu, \\Psi \\Sigma \\Psi^T)\\). say think linear transformations covariance matrices applied pre post multiplying transformation matrix \\(\\Psi\\). Linear transformation Inverse Wishart turns \\(\\Omega \\sim W^{-1}(\\gamma, S)\\) \\(D\\times D\\) covariance matrix \\(\\Omega\\) \\(M\\times D\\) matrix \\(\\Psi\\) \\(\\Psi \\Omega \\Psi^T \\sim W^{-1}(\\upsilon, \\Psi S \\Psi^T)\\). Putting Together central question: reasonable prior log-ratios? used working log-ratios difficult. potentially simpler problem place prior log-absolute-abundances (\\(\\Omega\\)) whatever measuring, e.g., placing prior covariance log-absolute-abundances bacteria (\\(\\Omega \\sim W^{-1}(\\gamma, S)\\). example: Lets say given microbiome dataset, weak prior belief , average, taxa independent variance 1. want come values \\(\\gamma\\) \\(S\\) prior \\(\\Omega\\) reflect . Lets start specifying mean \\(\\Omega\\). \\[E[\\Omega] =I_D.\\] Next say little certainty mean (want high variance) set \\(\\gamma\\) close lower bound \\(D\\) (often like \\(\\gamma=D+3\\)). Now \\(\\gamma\\) need calculate \\(S\\) solving \\(S\\) equation Inverse-Wishart mean1: \\[S = E[\\Omega](\\gamma -D-1).\\] go ’s prior log-absolute-abundances. Next need transform prior log-ratios. Well allows us simplifying taking contrast matrix \\(\\Psi\\) log-ratio transform want transforming prior \\(\\Omega\\) \\(\\Sigma \\sim W^{-1}(\\gamma, \\Psi S \\Psi^T)\\). ’s prior log-ratios built form prior log-absolute-abundances. Note Phylogenetic priors: phylogenetic linear models, can make \\(S\\) (defined ) covariance derived phylogenetic differences taxa. allows fit phylogenetic linear models fido. Making Even Simpler Say prior \\(\\Omega \\sim W^{-1}(\\gamma, S)\\) covariance log-absolute-abundances (created example ). want transform prior \\(\\Sigma \\sim W^{-1}(\\upsilon, \\Xi)\\). simply taking \\(\\upsilon=\\gamma\\). calculate \\(\\Xi\\), rather worrying \\(\\Psi\\), functions driver package wrote , recipes: Hopefully simple enough useful folks.","code":"# To put prior on ALR_j coordinates for some j in (1,...,D-1) Xi <- clrvar2alrvar(S, j) # To put prior in a particular ILR coordinate defined by contrast matrix V Xi <- clrvar2ilrvar(S, V) # To put prior in CLR coordinates (this one needs two transforms) foo <- clrvar2alrvar(S, D) Xi <- alrvar2clrvar(foo, D)"},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-lambda","dir":"Articles","previous_headings":"","what":"The prior for \\(\\Lambda\\)","title":"Picking Priors","text":"\\(\\Lambda\\) regression parameters linear model. prior \\(\\Lambda\\) just matrix-normal described : \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma).\\] \\(\\Theta\\) mean matrix \\(\\Lambda\\), \\(\\Sigma\\) actually random (.e., don’t specify , specified prior \\(\\Sigma\\) discussed already), \\(\\Gamma\\) \\(QxQ\\)2 covariance matrix describing covariance columns \\(\\Lambda\\) (.e., effect different covariates). really need just discuss specifying \\(\\Theta\\) specifying \\(\\Gamma\\).","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-theta","dir":"Articles","previous_headings":"The prior for \\(\\Lambda\\)","what":"Choosing \\(\\Theta\\)","title":"Picking Priors","text":"really easy, situations simply matrix zeros. implies expect average, covariates interest associated composition.3. helps prevent inferrign effect isn’t one. Outside simple case lets say actually prior knowledge effects covariates. Perhaps knowledge mean effect covariates log-absolute-abundances describe \\(D\\times Q\\) matrix \\(\\). Well can just transform prior log-ratio coordinates want follows:","code":"# Transform from log-absolute-abundance effects to effects on absolute-abundances foo <- exp(A) # To put prior on ALR_j coordinates for some j in (1,...,D-1) Theta <- driver::alr_array(foo, j, parts=1) # To put prior in a particular ILR coordinate defined by contrast matrix V Theta <- driver::ilr_array(foo, V, parts=1) # To put prior in CLR coordinates Theta <- driver::clr_array(foo, parts=1)"},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"choosing-gamma","dir":"Articles","previous_headings":"The prior for \\(\\Lambda\\)","what":"Choosing \\(\\Gamma\\)","title":"Picking Priors","text":"Alright, get break \\(\\Gamma\\) doesn’t care log-ratio coordinates . ’s just \\(Q\\times Q\\) covariance matrix describing covariation effects \\(Q\\) covariates. example, Lets say data microbiome survey disease number healthy controls. goal figure different composition two groups. model may two covariates, intercept binary variable (1 sample disease, 0 healthy). probably want set prior allows intercept moderately large likely believe differences disease health small (want effect binary covariate modest). specify: \\[\\Gamma = \\alpha\\begin{bmatrix} 1 & 0 \\\\ 0& .2 \\end{bmatrix}\\] scalar \\(\\alpha\\) discuss depth . Note diagonals zero also specifies don’t think covariation intercept effect disease state (probably pretty good assumption example). choice alpha can important. describe later section choice \\(\\upsilon\\) \\(\\Xi\\) interact choice \\(\\Gamma\\). First need briefly describe prior \\(\\eta\\).","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"the-prior-for-eta","dir":"Articles","previous_headings":"","what":"The Prior for \\(\\eta\\)","title":"Picking Priors","text":"\\(\\eta\\) log-ratios regression relationship obscured noise. \\[\\eta_j \\sim N(\\Lambda X_j, \\Sigma).\\] Notice \\(\\Sigma\\) shows like prior \\(\\Lambda\\). Actually, parameters need specify, prior \\(\\eta\\) completely induced based priors \\(\\Lambda\\) \\(\\Sigma\\). reason discuss want readers recognize variation \\(\\eta\\) regression relationship specified \\(\\Sigma\\). means \\(\\Sigma\\) large noise, small less noise. also taken account specifying \\(\\upsilon\\) \\(\\Xi\\). next section expand idea.","code":""},{"path":"https://jsilve24.github.io/fido/articles/picking_priors.html","id":"how-the-choice-of-upsilon-and-xi-interacts-with-the-choice-of-gamma","dir":"Articles","previous_headings":"","what":"How the Choice of \\(\\upsilon\\) and \\(\\Xi\\) Interacts With the Choice of \\(\\Gamma\\)","title":"Picking Priors","text":"point subsection following, choice \\(\\Gamma\\), \\(\\Xi\\), \\(\\upsilon\\) senses place prior signal--noise ratio data. short: larger \\(\\Gamma\\) relative \\(\\Sigma\\) (specified \\(\\upsilon\\) \\(\\Xi\\)) signal, smaller \\(\\Gamma\\) realtive \\(\\Sigma\\) noise. describe . Notice alternatively write prior \\(\\eta\\) \\[\\eta \\sim N(\\Lambda X, \\Sigma, )\\] using matrix normal parallel prior \\(\\Lambda\\) \\[\\Lambda \\sim N(\\Theta, \\Sigma, \\Gamma).\\] can write vec form relationships \\[ \\begin{align} vec(\\eta) &\\sim N(vec(\\Lambda X), \\otimes\\Sigma) \\\\ vec(\\Lambda) &\\sim N(vec(\\Theta), \\Gamma \\otimes \\Sigma). \\end{align} \\] write \\(\\Gamma\\) multiplication scalar scaled matrix (matrix scaled sum diagonals equals 1) \\(\\Gamma=\\alpha \\bar{\\Gamma}\\) describing choice \\(\\Gamma\\) , equations turn : \\[ \\begin{align} vec(\\eta) &\\sim N(vec(\\Lambda X), 1(\\otimes\\Sigma)) \\\\ vec(\\Lambda) &\\sim N(vec(\\Theta), \\alpha(\\bar{\\Gamma}\\otimes \\Sigma)). \\end{align} \\] can see magnitude \\(\\Lambda\\) factor \\(\\alpha\\) times noise level. \\(\\alpha<1\\) magnitude \\(\\Lambda\\) smaller magnitude noise. \\(\\alpha > 1\\) magnitude \\(\\Lambda\\) greater magnitude noise. actual β€œsignal” product \\(\\Lambda X\\) (depends scale \\(X\\)) well hopefully point clear: magnitude \\(\\Sigma\\) (specified \\(\\upsilon\\) \\(\\Xi\\)) comparision magnitude \\(\\Gamma\\) sets signal--noise ratio prior.","code":""},{"path":"https://jsilve24.github.io/fido/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Justin Silverman. Author. Kim Roche. Contributor. Michelle Nixon. Contributor, maintainer.","code":""},{"path":"https://jsilve24.github.io/fido/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Silverman, JD, Roche, K, Holmes, ZC, David, LA, Mukherjee, S. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2022, Journal Machine Learning Research.","code":"@Article{, title = {Bayesian Multinomial Logistic Normal Models through Marginally Latent Matrix-T Processes}, author = {Justin D Silverman and Kim Roche and Zachary C Holmes and Lawrence A David and Sayan Mukherjee}, year = {2022}, volume = {23}, journal = {Journal of Machine Learning Research}, url = {https://www.jmlr.org/papers/v23/19-882.html}, }"},{"path":"https://jsilve24.github.io/fido/index.html","id":"fido-formerly-stray","dir":"","previous_headings":"","what":"Bayesian Multiniomial Logisic Normal Models (really fast)","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Multinomial Logistic-Normal Models (really fast) little tar-ball joy","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Silverman, JD, Roche, K, Holmes, ZC, David, LA, Mukherjee, S. Journal Machine Learning Research. 23(7), 2022:1βˆ’42.","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"license","dir":"","previous_headings":"","what":"License","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"source code freely availale GPL-3 License.","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"download development version GitHub: notes: version 1.0.0, fido now CRAN. installation options can greatly speed fido (often much 10-50 fold). detailed description installation, take look installation page. Vignettes prebuilt fido webpage. want vignettes build locally package installation must also pass build=TRUE build_opts = c(\"---resave-data\", \"---manual\") options install_github.","code":"install.packages(\"fido\") devtools::install_github(\"jsilve24/fido\", ref=\"develop\")"},{"path":"https://jsilve24.github.io/fido/index.html","id":"vignettes","dir":"","previous_headings":"","what":"Vignettes","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Introduction fido::Pibble Non-linear models fido::basset Joint Modeling (e.g., Multinomics) fido::Orthus Tips Specifying Priors Mitigating PCR bias","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"research-using-fido","dir":"","previous_headings":"","what":"Research Using fido","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"Silverman et al., Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes Silverman et al., Measuring Mitigating PCR Bias Microbiome Data Holmes et al., Short-Chain Fatty Acid Production Gut Microbiota Children Obesity Differs According Prebiotic Choice Bacterial Community Composition Silverman et al., Using Influenza surveillance ntworks estimate state-specific prevalance SARS-CoV-2 United States","code":""},{"path":"https://jsilve24.github.io/fido/index.html","id":"bugsfeature-requests","dir":"","previous_headings":"","what":"Bugs/Feature requests","title":"Bayesian Multiniomial Logisic Normal Models (really fast)","text":"checked FAQ? appreciate bug reports feature requests. Please post github issue tracker .","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"Generic method accessing model fit dimensions","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"","code":"# S3 method for pibblefit ncategories(m) # S3 method for pibblefit nsamples(m) # S3 method for pibblefit ncovariates(m) # S3 method for pibblefit niter(m) # S3 method for orthusfit ncategories(m) # S3 method for orthusfit nsamples(m) # S3 method for orthusfit ncovariates(m) # S3 method for orthusfit niter(m) ncategories(m) nsamples(m) ncovariates(m) niter(m)"},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"m object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"integer","code":""},{"path":"https://jsilve24.github.io/fido/reference/access_dims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic method for accessing model fit dimensions β€” ncategories.pibblefit","text":"alternative approach accessing dimensions access directly pibblefit object using list indexing. * ncategories equivalent m$D * nsamples equivalent m$N * ncovariates equivalent m$Q","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of a matrix β€” alr","title":"Compute the ALR of a matrix β€” alr","text":"Compute ALR matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of a matrix β€” alr","text":"","code":"alr(x, d = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of a matrix β€” alr","text":"x matrix rows samples d Index column used reference. Defaults last column","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of a matrix β€” alr","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the inverse ALR of a matrix β€” alrInv","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"Compute inverse ALR matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"","code":"alrInv(y, d = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"y ALR transformed matrix d Index column used reference. Defaults last column","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the inverse ALR of a matrix β€” alrInv","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of an array β€” alrInv_array","title":"Compute the ALR of an array β€” alrInv_array","text":"Compute ALR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of an array β€” alrInv_array","text":"","code":"alrInv_array(y, d = dim(y)[coords] + 1, coords)"},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of an array β€” alrInv_array","text":"y multidimensional ALR transformed array d Index column used reference. Defaults last column coords index dimension `x` represents coordinates","code":""},{"path":"https://jsilve24.github.io/fido/reference/alrInv_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of an array β€” alrInv_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the ALR of an array β€” alr_array","title":"Compute the ALR of an array β€” alr_array","text":"Compute ALR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the ALR of an array β€” alr_array","text":"","code":"alr_array(x, d = dim(x)[parts], parts)"},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the ALR of an array β€” alr_array","text":"x multidimensional array simplex d Index column used reference. Defaults last column parts index dimension `x` represents parts","code":""},{"path":"https://jsilve24.github.io/fido/reference/alr_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the ALR of an array β€” alr_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert object of class orthusfit to a list β€” as.list.orthusfit","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"Convert object class orthusfit list","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"","code":"# S3 method for orthusfit as.list(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"x object class orthusfit ... currently unused","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert object of class orthusfit to a list β€” as.list.orthusfit","text":"list converted orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert object of class pibblefit to a list β€” as.list.pibblefit","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"Convert object class pibblefit list","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"","code":"# S3 method for pibblefit as.list(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"x object class pibblefit ... currently unused","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.list.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert object of class pibblefit to a list β€” as.list.pibblefit","text":"list converted pibblefit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"convert list to orthusfit β€” as.orthusfit","title":"convert list to orthusfit β€” as.orthusfit","text":"convert list orthusfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"convert list to orthusfit β€” as.orthusfit","text":"","code":"as.orthusfit(object)"},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"convert list to orthusfit β€” as.orthusfit","text":"object list object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"convert list to orthusfit β€” as.orthusfit","text":"orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"convert list to pibblefit β€” as.pibblefit","title":"convert list to pibblefit β€” as.pibblefit","text":"convert list pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"convert list to pibblefit β€” as.pibblefit","text":"","code":"as.pibblefit(object)"},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"convert list to pibblefit β€” as.pibblefit","text":"object list object","code":""},{"path":"https://jsilve24.github.io/fido/reference/as.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"convert list to pibblefit β€” as.pibblefit","text":"pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit basset models β€” basset_fit","title":"Interface to fit basset models β€” basset_fit","text":"Basset (Lazy Learner) - non-linear regression models fido","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit basset models β€” basset_fit","text":"","code":"basset( Y = NULL, X, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, linear = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), newdata = NULL, ... ) # S3 method for bassetfit refit(m, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ...)"},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit basset models β€” basset_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (NULL) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta function dimensions dim(X) -> (D-1)xN (prior mean gaussian process). additive GP model, can list functions dimensions dim(X) -> (D-1)xN + (optional) matrix size (D-1)xQ prior linear component desired. Gamma function dimension dim(X) -> NxN (kernel matrix gaussian process). additive GP model, can list functions dimension dim(X) -> NxN + QxQ prior covariance matrix linear component specified. assumed order matches order Theta. Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) linear vector denoting rows X used linear component specified. Default rows. init (D-1) x Q initialization Eta optimization pars character vector posterior parameters return newdata Default NULL. non-null, newdata used uncollapse sampler place X. ... arguments passed pibble (used internally fit basset model) m object class bassetfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit basset models β€” basset_fit","text":"object class bassetfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/basset_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit basset models β€” basset_fit","text":"full model given : $$Y_j \\sim Multinomial(\\Pi_j)$$ $$\\Pi_j = \\Phi^{-1}(\\Eta_j)$$ $$\\Eta \\sim MN_{D-1 x N}(\\Lambda, \\Sigma, I_N)$$ $$\\Lambda \\sim GP_{D-1 x Q}(\\Theta(X), \\Sigma, \\Gamma(X))$$ $$\\Sigma \\sim InvWish(\\upsilon, \\Xi)$$ Gamma(X) short hand Gram matrix Kernel function. Alternatively can used fit additive GP form: $$Y_j \\sim Multinomial(\\Pi_j)$$ $$\\Pi_j = \\Phi^{-1}(\\Eta_j)$$ $$\\Eta \\sim MN_{D-1 x N}(\\Lambda, \\Sigma, I_N)$$ $$\\Lambda = \\Lambda_1 + ... + \\Lambda_p + \\Beta X$$ $$\\Lambda_1 \\sim GP_{D-1 x Q}(\\Theta_1(X), \\Sigma, \\Gamma_p(X))$$ ... $$\\Lambda_p \\sim GP_{D-1 x Q}(\\Theta_1(X), \\Sigma, \\Gamma_1(X))$$ $$\\Beta \\sim MN(\\Theta_B, \\Sigma, \\Gamma_B)$$ $$\\Sigma \\sim InvWish(\\upsilon, \\Xi)$$ Gamma(X) short hand Gram matrix Kernel function. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"Check vector/matrix/data.frame expected dimensions throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"","code":"check_dims(x, d, par)"},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"x object check d expected dimensions par character name x (error message)","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"nothing error, otherwise throws error","code":""},{"path":"https://jsilve24.github.io/fido/reference/check_dims.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check vector/matrix/data.frame for expected dimensions or throw error β€” check_dims","text":"","code":"y <- c(1,3,4) check_dims(y, 3, \"y\")"},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute the CLR of an array β€” clr_array","title":"Compute the CLR of an array β€” clr_array","text":"Compute CLR array","code":""},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute the CLR of an array β€” clr_array","text":"","code":"clr_array(x, parts)"},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute the CLR of an array β€” clr_array","text":"x multidimensional array index parts index dimension `x` represents parts","code":""},{"path":"https://jsilve24.github.io/fido/reference/clr_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute the CLR of an array β€” clr_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Return regression coefficients of orthus object β€” coef.orthusfit","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"Orthus: Returned array dimension (D-1+P) x Q x iter (ALR ILR) otherwise (D+P) x Q x iter.","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"","code":"# S3 method for orthusfit coef(object, ...)"},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"object object class orthusfit ... options passed coef.orthusfit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"Array dimension (D-1) x Q x iter","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.orthusfit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Return regression coefficients of orthus object β€” coef.orthusfit","text":"arguments: use_names column row names passed Y X call pibble, names applied output array.","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Return regression coefficients of pibblefit object β€” coef.pibblefit","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"Pibble: Returned array dimension (D-1) x Q x iter (ALR ILR) otherwise DxQxiter (proportions clr).","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"","code":"# S3 method for pibblefit coef(object, ...)"},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"object object class pibblefit ... options passed coef.pibblefit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"Array dimension (D-1) x Q x iter","code":""},{"path":"https://jsilve24.github.io/fido/reference/coef.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Return regression coefficients of pibblefit object β€” coef.pibblefit","text":"arguments: `use_names` column row names passed Y X call pibble, names applied output array.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":null,"dir":"Reference","previous_headings":"","what":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"See details model. Notation: N number samples, D dimension response, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"","code":"conjugateLinearModel(Y, X, Theta, Gamma, Xi, upsilon, n_samples = 2000L)"},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"Y matrix dimension D x N X matrix covariates dimension Q x N Theta matrix prior mean dimension D x Q Gamma covariance matrix dimension Q x Q Xi covariance matrix dimension D x D upsilon scalar (must > D-1) degrees freedom InvWishart prior n_samples number samples draw (default: 2000)","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"List components Lambda Array dimension (D-1) x Q x n_samples (posterior samples) Sigma Array dimension (D-1) x (D-1) x n_samples (posterior samples)","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"$$Y ~ MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda ~ MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma ~ InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma.","code":""},{"path":"https://jsilve24.github.io/fido/reference/conjugateLinearModel.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Solve Bayesian Multivariate Conjugate Linear Model β€” conjugateLinearModel","text":"","code":"sim <- pibble_sim() eta.hat <- t(alr(t(sim$Y+0.65))) fit <- conjugateLinearModel(eta.hat, sim$X, sim$Theta, sim$Gamma, sim$Xi, sim$upsilon, n_samples=2000)"},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"Convert orthus covariance matricies representations","code":""},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"","code":"oilrvar2ilrvar(Sigma, s, V1, V2) oilrvar2clrvar(Sigma, s, V) oclrvar2ilrvar(Sigma, s, V) oalrvar2clrvar(Sigma, s, d1) oclrvar2alrvar(Sigma, s, d2) oalrvar2alrvar(Sigma, s, d1, d2) oalrvar2ilrvar(Sigma, s, d1, V2) oilrvar2alrvar(Sigma, s, V1, d2)"},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"Sigma covariance matrix arrat specified transformed space (dim(Sigma)[3]=iter) s first s rows colums Sigma transformed V1 ILR contrast matrix basis Sigma already V2 ILR contrast matrix basis Sigma desired V ILR contrast matrix (.e., transformation matrix ILR) d1 alr reference element Sigma already expressed respec d2 alr reference element Sigma expressed respect ","code":""},{"path":"https://jsilve24.github.io/fido/reference/convert_orthus_covariance.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert orthus covariance matricies between representations β€” convert_orthus_covariance","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a default ILR base β€” create_default_ilr_base","title":"Create a default ILR base β€” create_default_ilr_base","text":"Create default ILR base","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a default ILR base β€” create_default_ilr_base","text":"","code":"create_default_ilr_base(D)"},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a default ILR base β€” create_default_ilr_base","text":"D number parts (e.g., number columns untransformed data)","code":""},{"path":"https://jsilve24.github.io/fido/reference/create_default_ilr_base.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create a default ILR base β€” create_default_ilr_base","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_package.html","id":null,"dir":"Reference","previous_headings":"","what":"fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package","title":"fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package","text":"Provides methods fitting inspection Bayesian Multinomial Logistic Normal Models using MAP estimation Laplace Approximation. Key functionality implemented C++ scalability.","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/fido_package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"fido: Fitting and Analysis of Multinomial Logistic Normal Models β€” fido_package","text":"Maintainer: Michelle Nixon pistner@psu.edu [contributor] Authors: Justin Silverman Justin.Silverman@psu.edu contributors: Kim Roche kimberly.roche@duke.edu [contributor]","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Fit fido Parameters to other representations β€” fido_transforms","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"collection convenience functions transforming fido fit objects number different representations including ILR bases, CLR coordinates, ALR coordinates, proportions.","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"","code":"to_proportions(m) to_alr(m, d) to_ilr(m, V = NULL) to_clr(m) # S3 method for pibblefit to_proportions(m) # S3 method for orthusfit to_proportions(m) # S3 method for pibblefit to_alr(m, d) # S3 method for orthusfit to_alr(m, d) # S3 method for pibblefit to_ilr(m, V = NULL) # S3 method for orthusfit to_ilr(m, V = NULL) # S3 method for pibblefit to_clr(m) # S3 method for orthusfit to_clr(m)"},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"m object class pibblefit orthusfit (e.g., output pibble orthus) d (integer) multinomial category take new alr reference V (matrix) contrast matrix ILR basis transform (defaults create_default_ilr_base(D))","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"object","code":""},{"path":"https://jsilve24.github.io/fido/reference/fido_transforms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Fit fido Parameters to other representations β€” fido_transforms","text":"orthus, transforms appleid log-ratio parameters Note: degeneracy representations covariance matrix represented terms proportions. function to_proportions attempt transform parameters Sigma prior Xi instead just removes pibblefit object returned.","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"Gather Multidimensional Array Tidy Tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"","code":"gather_array(a, value, ..., .id = NULL)"},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"multidimensional array value unquoted name column values (defaults \"var\") ... unquoted dimension names (defaults \"dim_1\", \"dim_2\", etc...) .id specified, name column created name captured","code":""},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"data.frame","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/gather_array.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Gather Multidimensional Array to Tidy Tibble β€” gather_array","text":"","code":"a <- array(1:100, dim =c(10, 5, 2)) gather_array(a, sequence, A, B, C) #> A B C sequence #> 1 1 1 1 1 #> 2 2 1 1 2 #> 3 3 1 1 3 #> 4 4 1 1 4 #> 5 5 1 1 5 #> 6 6 1 1 6 #> 7 7 1 1 7 #> 8 8 1 1 8 #> 9 9 1 1 9 #> 10 10 1 1 10 #> 11 1 2 1 11 #> 12 2 2 1 12 #> 13 3 2 1 13 #> 14 4 2 1 14 #> 15 5 2 1 15 #> 16 6 2 1 16 #> 17 7 2 1 17 #> 18 8 2 1 18 #> 19 9 2 1 19 #> 20 10 2 1 20 #> 21 1 3 1 21 #> 22 2 3 1 22 #> 23 3 3 1 23 #> 24 4 3 1 24 #> 25 5 3 1 25 #> 26 6 3 1 26 #> 27 7 3 1 27 #> 28 8 3 1 28 #> 29 9 3 1 29 #> 30 10 3 1 30 #> 31 1 4 1 31 #> 32 2 4 1 32 #> 33 3 4 1 33 #> 34 4 4 1 34 #> 35 5 4 1 35 #> 36 6 4 1 36 #> 37 7 4 1 37 #> 38 8 4 1 38 #> 39 9 4 1 39 #> 40 10 4 1 40 #> 41 1 5 1 41 #> 42 2 5 1 42 #> 43 3 5 1 43 #> 44 4 5 1 44 #> 45 5 5 1 45 #> 46 6 5 1 46 #> 47 7 5 1 47 #> 48 8 5 1 48 #> 49 9 5 1 49 #> 50 10 5 1 50 #> 51 1 1 2 51 #> 52 2 1 2 52 #> 53 3 1 2 53 #> 54 4 1 2 54 #> 55 5 1 2 55 #> 56 6 1 2 56 #> 57 7 1 2 57 #> 58 8 1 2 58 #> 59 9 1 2 59 #> 60 10 1 2 60 #> 61 1 2 2 61 #> 62 2 2 2 62 #> 63 3 2 2 63 #> 64 4 2 2 64 #> 65 5 2 2 65 #> 66 6 2 2 66 #> 67 7 2 2 67 #> 68 8 2 2 68 #> 69 9 2 2 69 #> 70 10 2 2 70 #> 71 1 3 2 71 #> 72 2 3 2 72 #> 73 3 3 2 73 #> 74 4 3 2 74 #> 75 5 3 2 75 #> 76 6 3 2 76 #> 77 7 3 2 77 #> 78 8 3 2 78 #> 79 9 3 2 79 #> 80 10 3 2 80 #> 81 1 4 2 81 #> 82 2 4 2 82 #> 83 3 4 2 83 #> 84 4 4 2 84 #> 85 5 4 2 85 #> 86 6 4 2 86 #> 87 7 4 2 87 #> 88 8 4 2 88 #> 89 9 4 2 89 #> 90 10 4 2 90 #> 91 1 5 2 91 #> 92 2 5 2 92 #> 93 3 5 2 93 #> 94 4 5 2 94 #> 95 5 5 2 95 #> 96 6 5 2 96 #> 97 7 5 2 97 #> 98 8 5 2 98 #> 99 9 5 2 99 #> 100 10 5 2 100"},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":null,"dir":"Reference","previous_headings":"","what":"Multivariate RBF Kernel β€” kernels","title":"Multivariate RBF Kernel β€” kernels","text":"Designed partially specified. (see examples)","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Multivariate RBF Kernel β€” kernels","text":"","code":"SE(X, sigma = 1, rho = median(as.matrix(dist(t(X)))), jitter = 1e-10) LINEAR(X, sigma = 1, c = rep(0, nrow(X)))"},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Multivariate RBF Kernel β€” kernels","text":"X covariate (dimension Q x N; .e., covariates x samples) sigma scalar parameter rho scalar bandwidth parameter jitter small scalar add -diagonal gram matrix (numerical underflow issues) c vector parameter defining intercept linear kernel","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Multivariate RBF Kernel β€” kernels","text":"Gram Matrix (N x N) (e.g., Kernel evaluated pair points)","code":""},{"path":"https://jsilve24.github.io/fido/reference/kernels.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Multivariate RBF Kernel β€” kernels","text":"Gram matrix G given SE (squared exponential): $$G = \\sigma^2 * exp(-[(X-c)'(X-c)]/(s*\\rho^2))$$ LINEAR: $$G = \\sigma^2*(X-c)'(X-c)$$","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Takes idea Wu et al. (citation ) calculates IQLR Lambda, potentially useful believe invariant group categories (e.g., taxa / genes) changing (absolute abundance) samples. IQLR defined $$IQLR_x = log(x_i/g(IQVF))$$ 1,...,D. IQVF CLR coordinates whose variance within inter-quantile range (defined probs argument function). different IQVF fit posteior sample IQVFs calculted based posterior estimates Lambda. variance CLR coordinate defined norm row Lambda[,focus.cov] (.e., covariation Eta, explained covariates). definition variance allows uses exclude variation technical / trivial sources calculation IQVF/IQLR.","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"","code":"lambda_to_iqlr(m, focus.cov = NULL, probs = c(0.25, 0.75))"},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"m object class pibblefit (e.g., output pibble) focus.cov vector integers characters specifying columns (covariates) Lambda include calculating IQLR (NULL, default, uses covariates) probs bounds categories (.e., features / genes / taxa) include calculation iqlr (smaller bounds means stringent inclusion criteria)","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"array dimension (D, Q, iter) D number taxa, Q number covariates, iter number posterior samples.","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Primarily intended differential expression analysis assumption small group categories (e.g., taxa / genes) changing","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"Jia R. Wu, Jean M. Macklaim, Briana L. Genge, Gregory B. Gloor (2017) Finding center: corrections asymmetry high-throughput sequencing datasets. arxiv:1704.01841v1","code":""},{"path":"https://jsilve24.github.io/fido/reference/lambda_to_iqlr.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Lambda into IQLR (Inter-Quantile Log-Ratio) β€” lambda_to_iqlr","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) # Use first two covariates to define iqlr, just show first 5 samples lambda_to_iqlr(fit, 1:2)[,,1:5] #> , , 1 #> #> [,1] [,2] #> [1,] 2.58249657 6.8209952 #> [2,] -3.11052569 -2.7167130 #> [3,] 6.49900999 -0.9183486 #> [4,] 0.96090295 -1.3229594 #> [5,] 0.14008132 1.1903585 #> [6,] 0.49972573 -1.3370605 #> [7,] 0.08957466 0.2489264 #> [8,] 0.98513706 2.2548793 #> [9,] -2.44576574 0.4051406 #> [10,] 1.32535003 -0.1768482 #> #> , , 2 #> #> [,1] [,2] #> [1,] 2.5587883 6.1883850 #> [2,] -3.0405870 -3.0912526 #> [3,] 5.8512540 -0.6003824 #> [4,] 0.9609548 -1.9479886 #> [5,] 0.1591712 0.6891760 #> [6,] 1.1055174 -0.9062200 #> [7,] -0.1774132 -0.1424990 #> [8,] 0.2053178 3.0132894 #> [9,] -2.2717900 -0.1590809 #> [10,] 0.8722740 -0.3306140 #> #> , , 3 #> #> [,1] [,2] #> [1,] 2.60530636 5.21789900 #> [2,] -2.54326545 -2.38212939 #> [3,] 7.08497756 -0.21955481 #> [4,] 1.31994025 -0.76897135 #> [5,] 0.31169726 1.00375772 #> [6,] 1.08657901 -1.45658403 #> [7,] 0.04131485 -0.06377461 #> [8,] 0.32288955 2.57115035 #> [9,] -2.72940881 -0.34559497 #> [10,] 1.47805346 -0.38137550 #> #> , , 4 #> #> [,1] [,2] #> [1,] 3.3439506 4.57514801 #> [2,] -3.7370334 -3.32615210 #> [3,] 5.8688759 -0.94841909 #> [4,] 1.0464624 -1.07088958 #> [5,] 0.5365942 -0.07507684 #> [6,] 0.8422877 -1.53300228 #> [7,] -0.1707247 -0.73045076 #> [8,] 0.4358403 2.39571374 #> [9,] -1.1074033 -0.13226070 #> [10,] 1.2253342 -0.65615197 #> #> , , 5 #> #> [,1] [,2] #> [1,] 2.7120487 6.38024654 #> [2,] -2.4680663 -2.88067266 #> [3,] 5.2612425 -0.03676643 #> [4,] 1.1926378 -1.48758213 #> [5,] -0.1243978 0.88179646 #> [6,] 0.8403210 -1.32344167 #> [7,] -0.4971559 -0.48544153 #> [8,] 0.9497406 2.72186980 #> [9,] -2.9826994 0.08915400 #> [10,] 1.1840482 0.09361379 #>"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":null,"dir":"Reference","previous_headings":"","what":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"Log Multivarate Gamma Function - Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"","code":"lmvgamma(a, p)"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"defined Gamma_p() p defined Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"Numeric","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Log of Multivarate Gamma Function - Gamma_p(a) β€” lmvgamma","text":"https://en.wikipedia.org/wiki/Multivariate_gamma_function","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":null,"dir":"Reference","previous_headings":"","what":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"Derivative Log Multivariate Gamma Function - Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"","code":"lmvgamma_deriv(a, p)"},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"defined Gamma_p() p defined Gamma_p()","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"Numeric","code":""},{"path":"https://jsilve24.github.io/fido/reference/lmvgamma_deriv.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Derivative of Log of Multivariate Gamma Function - Gamma_p(a) β€” lmvgamma_deriv","text":"https://en.wikipedia.org/wiki/Multivariate_gamma_function","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"Functions providing access Log Likelihood, Gradient, Hessian collapsed maltipoo model. Note: convenience functions optimized direct coding MaltipooCollapsed C++ class due lack Memoization. contrast function optimMaltipooCollapsed much optimized massively cuts repeated calculations. efficient Rcpp module based implementation functions may following future. model details see optimMaltipooCollapsed documentation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"","code":"loglikMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE) gradMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE) hessMaltipooCollapsed(Y, upsilon, Theta, X, KInv, U, eta, ell, sylv = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"Y D x N matrix counts upsilon (must > D) Theta D-1 x Q matrix prior mean regression coefficients X Q x N matrix covariates KInv D-1 x D-1 symmetric positive-definite matrix U PQxQ matrix stacked variance components eta matrix (D-1)xN parameter values calculate quantities ell P-vector scale factors variance component (aka VCScale) sylv (default:false) true N < D-1 use sylvester determinant identity speed computation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikMaltipooCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculations for the Collapsed Maltipoo Model β€” loglikMaltipooCollapsed","text":"see loglikMaltipooCollapsed - double gradMaltipooCollapsed - vector hessMaltipooCollapsed- matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"Functions providing access Log Likelihood, Gradient, Hessian collapsed pibble model. Note: convenience functions optimized direct coding PibbleCollapsed C++ class due lack Memoization. contrast function optimPibbleCollapsed much optimized massively cuts repeated calculations. efficient Rcpp module based implementation functions may following future. model details see optimPibbleCollapsed documentation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"","code":"loglikPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE) gradPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE) hessPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, eta, sylv = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"Y D x N matrix counts upsilon (must > D) ThetaX D-1 x N matrix formed Theta*X (Theta Prior mean regression coefficients) KInv Inverse K LTP (Pibble defined KInv = solve(Xi)) AInv Inverse LTP (Pibble defined AInv = solve(diag(N)+ X'GammaX) ) eta matrix (D-1)xN parameter values calculate quantities sylv (default:false) true N < D-1 use sylvester determinant identity speed computation","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"see loglikPibbleCollapsed - double gradPibbleCollapsed - vector hessPibbleCollapsed- matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/loglikPibbleCollapsed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculations for the Collapsed Pibble Model β€” loglikPibbleCollapsed","text":"","code":"D <- 10 Q <- 2 N <- 30 # Simulate Data Sigma <- diag(sample(1:8, D-1, replace=TRUE)) Sigma[2, 3] <- Sigma[3,2] <- -1 Gamma <- diag(sqrt(rnorm(Q)^2)) Theta <- matrix(0, D-1, Q) Phi <- Theta + t(chol(Sigma))%*%matrix(rnorm(Q*(D-1)), nrow=D-1)%*%chol(Gamma) X <- matrix(rnorm(N*(Q-1)), Q-1, N) X <- rbind(1, X) Eta <- Phi%*%X + t(chol(Sigma))%*%matrix(rnorm(N*(D-1)), nrow=D-1) Pi <- t(alrInv(t(Eta))) Y <- matrix(0, D, N) for (i in 1:N) Y[,i] <- rmultinom(1, sample(5000:10000), prob = Pi[,i]) # Priors upsilon <- D+10 Xi <- Sigma*(upsilon-D) # Precompute KInv <- solve(Xi) AInv <- solve(diag(N)+ t(X)%*%Gamma%*%X) ThetaX <- Theta%*%X loglikPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta) #> [1] -195095.9 gradPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta)[1:5] #> [1] -4.7284477 -0.1509676 1.2405685 0.2829217 2.6895085 hessPibbleCollapsed(Y, upsilon, ThetaX, KInv, AInv, Eta)[1:5,1:5] #> [,1] [,2] [,3] [,4] [,5] #> [1,] -395.55832129 0.3806120 -0.02360702 -0.06801042 393.92582730 #> [2,] 0.38061199 -8.4987346 -0.31053592 -0.10707949 6.35296890 #> [3,] -0.02360702 -0.3105359 -1.22834285 0.10121428 0.81696424 #> [4,] -0.06801042 -0.1070795 0.10121428 -0.48603619 0.04496538 #> [5,] 393.92582730 6.3529689 0.81696424 0.04496538 -413.36822195"},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2018) Microbiome β€” mallard","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"High Resolution (hourly daily) sampling 4 vitro artificial gut models many technical replicates identify technical variation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"","code":"data(mallard)"},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"list containing \"otu_table\", \"sample_data\", \"tax_table\", \"refseq\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"data sequence variant level. Data family level processed Silverman et al. 2018 given mallard_family","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2018) Microbiome β€” mallard","text":"Silverman et al. \"Dynamic linear models guide design analysis microbiota studies within artificial human guts\". Microbiome 2018 6:202","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"High Resolution (hourly daily) sampling 4 vitro artificial gut models many technical replicates identify technical variation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"","code":"data(mallard_family)"},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"list containing \"otu_table\", \"sample_data\", \"tax_table\", \"refseq\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"data family level processed Silverman et al. 2018. Data sequence variant level without preprocessing given mallard","code":""},{"path":"https://jsilve24.github.io/fido/reference/mallard_family.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2018) Microbiome β€” mallard_family","text":"Silverman et al. \"Dynamic linear models guide design analysis microbiota studies within artificial human guts\". Microbiome 2018 6:202","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create maltipoofit object β€” maltipoofit","title":"Create maltipoofit object β€” maltipoofit","text":"Create maltipoofit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create maltipoofit object β€” maltipoofit","text":"","code":"maltipoofit( D, N, Q, P, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, ellinit = NULL, names_categories = NULL, names_samples = NULL, names_covariates = NULL, VCScale = NULL, U = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create maltipoofit object β€” maltipoofit","text":"D number multinomial categories N number samples Q number covariates P number variance components coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization ellinit P vector initialization values ell optimization names_categories character vector names_samples character vector names_covariates character vector VCScale scale factors (delta) variance components U PQ x Q matrix stacked variance components (dimension Q x Q)","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create maltipoofit object β€” maltipoofit","text":"object class maltipoofit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit maltipoo models β€” maltipoo_fit","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"function largely user friendly wrapper around optimMaltipooCollapsed uncollapsePibble. See details model specification. Notation: N number samples, D number multinomial categories, Q number covariates, P number variance components iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"","code":"maltipoo( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, U = NULL, Xi = NULL, init = NULL, ellinit = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) U PQ x Q matrix stacked variance components (dimension Q x Q) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x Q initialization Eta optimization ellinit P vector initialization values ell optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"object class maltipoofit","code":""},{"path":"https://jsilve24.github.io/fido/reference/maltipoo_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit maltipoo models β€” maltipoo_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Gamma = e^{ell_1} U_1 + ... + e^{ell_P} U_P$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ \\(= (I_N + X * Gamma * X')^{-1}\\), \\(K^{-1} = Xi\\) (D-1)x(D-1) covariance matrix, \\(U_1\\) Q x Q covariance matrix (variance component), \\(e^{ell_i}\\) scale variance component \\(Phi^{-1}\\) ALRInv_D transform. Default behavior use MAP estimate uncollaping collapsed maltipoo model laplace approximation preformed. Parameters ell treated fixed estimated MAP estimation.","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” metadata","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"data.frame metadata associated counts matrix `Y`","code":""},{"path":"https://jsilve24.github.io/fido/reference/metadata.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” metadata","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":null,"dir":"Reference","previous_headings":"","what":"Closure operator β€” miniclo","title":"Closure operator β€” miniclo","text":"Closure operator","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Closure operator β€” miniclo","text":"","code":"miniclo(x)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Closure operator β€” miniclo","text":"x vector matrix (rows samples, parts columns) data simplex","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Closure operator β€” miniclo","text":"x row entries divided sum row (converts vectors row matricies)","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Closure operator β€” miniclo","text":"","code":"x <- matrix(runif(30), 10, 3) x <- miniclo(x)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":null,"dir":"Reference","previous_headings":"","what":"Closure Operation applied to array on margin β€” miniclo_array","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"Array version miniclo.","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"","code":"miniclo_array(x, parts)"},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"x multidimensional array parts index dimension x represents parts (e.g., compositional variables)","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"array","code":""},{"path":"https://jsilve24.github.io/fido/reference/miniclo_array.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Closure Operation applied to array on margin β€” miniclo_array","text":"","code":"x <- array(1:100, dim=c(10, 5, 2)) miniclo_array(x, parts=2) #> , , 1 #> #> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.00952381 0.1047619 0.2 0.2952381 0.3904762 #> [2,] 0.01818182 0.1090909 0.2 0.2909091 0.3818182 #> [3,] 0.02608696 0.1130435 0.2 0.2869565 0.3739130 #> [4,] 0.03333333 0.1166667 0.2 0.2833333 0.3666667 #> [5,] 0.04000000 0.1200000 0.2 0.2800000 0.3600000 #> [6,] 0.04615385 0.1230769 0.2 0.2769231 0.3538462 #> [7,] 0.05185185 0.1259259 0.2 0.2740741 0.3481481 #> [8,] 0.05714286 0.1285714 0.2 0.2714286 0.3428571 #> [9,] 0.06206897 0.1310345 0.2 0.2689655 0.3379310 #> [10,] 0.06666667 0.1333333 0.2 0.2666667 0.3333333 #> #> , , 2 #> #> [,1] [,2] [,3] [,4] [,5] #> [1,] 0.1436620 0.1718310 0.2 0.2281690 0.2563380 #> [2,] 0.1444444 0.1722222 0.2 0.2277778 0.2555556 #> [3,] 0.1452055 0.1726027 0.2 0.2273973 0.2547945 #> [4,] 0.1459459 0.1729730 0.2 0.2270270 0.2540541 #> [5,] 0.1466667 0.1733333 0.2 0.2266667 0.2533333 #> [6,] 0.1473684 0.1736842 0.2 0.2263158 0.2526316 #> [7,] 0.1480519 0.1740260 0.2 0.2259740 0.2519481 #> [8,] 0.1487179 0.1743590 0.2 0.2256410 0.2512821 #> [9,] 0.1493671 0.1746835 0.2 0.2253165 0.2506329 #> [10,] 0.1500000 0.1750000 0.2 0.2250000 0.2500000 #>"},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"mongrel β€” mongrel-deprecated","title":"mongrel β€” mongrel-deprecated","text":"function deprecated, please use pibble instead.","code":""},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"mongrel β€” mongrel-deprecated","text":"","code":"mongrel( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"mongrel β€” mongrel-deprecated","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x N initialization Eta optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/mongrel-deprecated.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"mongrel β€” mongrel-deprecated","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for applying names to an object β€” name","title":"Generic method for applying names to an object β€” name","text":"Intended called internally package","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for applying names to an object β€” name","text":"","code":"name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for applying names to an object β€” name","text":"m object ... arguments passed","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for applying names to an object β€” name","text":"object class names applied dimensions","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"avoid confusion, assigned default names multinomial categories (c1 etc...) zdimensions (z1 etc...)","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"","code":"# S3 method for orthusfit name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"m object class orthusfit ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"S3 for orthusfit apply names to orthusfit object β€” name.orthusfit","text":"object class orthusfit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"S3 pibblefit apply names pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"","code":"# S3 method for pibblefit name(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"m object class pibblefit ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/name.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"S3 for pibblefit apply names to pibblefit object β€” name.pibblefit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"Generic method getting setting dimension names fit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"","code":"# S3 method for pibblefit names_covariates(m) # S3 method for pibblefit names_samples(m) # S3 method for pibblefit names_categories(m) # S3 method for pibblefit names_coords(m) # S3 method for pibblefit names_covariates(m) <- value # S3 method for pibblefit names_samples(m) <- value # S3 method for pibblefit names_categories(m) <- value names_covariates(m) names_samples(m) names_categories(m) names_coords(m) names_covariates(m) <- value names_samples(m) <- value names_categories(m) <- value"},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"m object value character vector (NULL)","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"vector names","code":""},{"path":"https://jsilve24.github.io/fido/reference/name_dims.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic method for getting and setting dimension names of fit object β€” names_covariates.pibblefit","text":"names_coords different names_categories. names_categories provides access basic names multinomial category. contrast, names_coords provides access names coordinates object represented. coordinate names based category names. example, category names may , (OTU1, ..., OTUD) coordinate names (log(OTU1/OTUD), etc...) object default coordinate system.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"See details model. likely followed function uncollapsePibble. Notation: N number samples, D number multinomial categories, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"","code":"optimMaltipooCollapsed( Y, upsilon, Theta, X, KInv, U, init, ellinit, n_samples = 2000L, calcGradHess = TRUE, b1 = 0.9, b2 = 0.99, step_size = 0.003, epsilon = 1e-06, eps_f = 1e-10, eps_g = 1e-04, max_iter = 10000L, verbose = FALSE, verbose_rate = 10L, decomp_method = \"cholesky\", eigvalthresh = 0, jitter = 0 )"},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"Y D x N matrix counts upsilon (must > D) Theta D-1 x Q matrix prior mean regression coefficients X Q x N matrix covariates KInv D-1 x D-1 symmetric positive-definite matrix U PQxQ matrix stacked variance components init D-1 x N matrix initial guess eta used optimization ellinit P vector initial guess ell used optimization n_samples number samples Laplace Approximation (=0 fast inversion decomposition Hessian required) calcGradHess n_samples=0 Gradient Hessian still calculated using closed form solutions? b1 (ADAM) 1st moment decay parameter (recommend 0.9) \"aka momentum\" b2 (ADAM) 2nd moment decay parameter (recommend 0.99 0.999) step_size (ADAM) step size descent (recommend 0.001-0.003) epsilon (ADAM) parameter avoid divide zero eps_f (ADAM) normalized function improvement stopping criteria eps_g (ADAM) normalized gradient magnitude stopping criteria max_iter (ADAM) maximum number iterations stopping verbose (ADAM) true print stats stopping criteria iteration number verbose_rate (ADAM) rate print verbose stats screen decomp_method decomposition hessian Laplace approximation 'eigen' (stable-slightly, slower) 'cholesky' (less stable, faster, default) eigvalthresh threshold negative eigenvalues decomposition negative inverse hessian (<=0) jitter (default: 0) >0 adds factor diagonal Hessian decomposition (improve matrix conditioning)","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"List containing (respect found optima) LogLik - Log Likelihood collapsed model (proportionality constant) Gradient - (calcGradHess=true) Hessian - (calcGradHess=true) POSITIVE log posterior Pars - Parameter value eta Samples - (D-1) x N x n_samples array containing posterior samples eta based Laplace approximation (n_samples>0) VCScale - value e^ell_i optima logInvNegHessDet - log determinant covariacne Laplace approximation, useful calculating marginal likelihood","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"Notation: Let Z_j denote J-th row matrix Z. Model: $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ \\(= (I_N + e^{ell_1}*X*U_1*X' + ... + e^{ell_P}*X*U_P*X' )\\), K D-1xD-1 covariance Phi ALRInv_D transform. Gradient Hessian calculations fast computed using closed form solutions. said, Hessian matrix can quite large [N\\(D-1) x N\\(D-1)] storage may issue. Note: Warnings large negative eigenvalues can either signal optimizer reach optima (commonly experience) prior / degrees freedom covariance (given parameters upsilon KInv) specific odds observed data. get warning try following. Try restarting optimization using different initial guess eta Try decreasing (even increasing)step_size (increments 0.001 0.002) increasing max_iter parameters optimizer. Also can try increasing b1 0.99 decreasing eps_f orders magnitude Try relaxing prior assumptions regarding covariance matrix. (e.g., may want consider decreasing parameter upsilon closer minimum value D) Try adding small amount jitter (e.g., set jitter=1e-5) address potential floating point errors.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimMaltipooCollapsed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Function to Optimize the Collapsed Maltipoo Model β€” optimMaltipooCollapsed","text":"S. Ruder (2016) overview gradient descent optimization algorithms. arXiv 1609.04747","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":null,"dir":"Reference","previous_headings":"","what":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"See details model. likely followed function uncollapsePibble. Notation: N number samples, D number multinomial categories, Q number covariates.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"","code":"optimPibbleCollapsed( Y, upsilon, ThetaX, KInv, AInv, init, n_samples = 2000L, calcGradHess = TRUE, b1 = 0.9, b2 = 0.99, step_size = 0.003, epsilon = 1e-06, eps_f = 1e-10, eps_g = 1e-04, max_iter = 10000L, verbose = FALSE, verbose_rate = 10L, decomp_method = \"cholesky\", optim_method = \"lbfgs\", eigvalthresh = 0, jitter = 0, multDirichletBoot = -1, useSylv = TRUE, ncores = -1L, seed = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"Y D x N matrix counts upsilon (must > D) ThetaX D-1 x N matrix formed Theta*X (Theta Prior mean regression coefficients) KInv D-1 x D-1 precision matrix (inverse Xi) AInv N x N precision matrix given \\((I_N + X'*Gamma*X)^{-1}\\) init D-1 x N matrix initial guess eta used optimization n_samples number samples Laplace Approximation (=0 fast inversion decomposition Hessian required) calcGradHess n_samples=0 Gradient Hessian still calculated using closed form solutions? b1 (ADAM) 1st moment decay parameter (recommend 0.9) \"aka momentum\" b2 (ADAM) 2nd moment decay parameter (recommend 0.99 0.999) step_size (ADAM) step size descent (recommend 0.001-0.003) epsilon (ADAM) parameter avoid divide zero eps_f (ADAM) normalized function improvement stopping criteria eps_g (ADAM) normalized gradient magnitude stopping criteria max_iter (ADAM) maximum number iterations stopping verbose (ADAM) true print stats stopping criteria iteration number verbose_rate (ADAM) rate print verbose stats screen decomp_method decomposition hessian Laplace approximation 'eigen' (stable-slightly, slower) 'cholesky' (less stable, faster, default) optim_method (default:\"lbfgs\") \"adam\" eigvalthresh threshold negative eigenvalues decomposition negative inverse hessian (<=0) jitter (default: 0) >=0 adds factor diagonal Hessian decomposition (improve matrix conditioning) multDirichletBoot >0 overrides laplace approximation samples eta efficiently MAP estimate pseudo Multinomial-Dirichlet posterior. useSylv (default: true) N0) Timer - Vector Execution Times logInvNegHessDet - log determinant covariacne Laplace approximation, useful calculating marginal likelihood logMarginalLikelihood - calculation log marginal likelihood based laplace approximation","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"Notation: Let Z_j denote J-th row matrix Z. Model: $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ \\(= I_N + X * Gamma * X'\\), K (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. Gradient Hessian calculations fast computed using closed form solutions. said, Hessian matrix can quite large [N*(D-1) x N*(D-1)] storage may issue. Note: Warnings large negative eigenvalues can either signal optimizer reach optima (commonly experience) prior / degrees freedom covariance (given parameters upsilon KInv) specific odds observed data. get warning try following. Try restarting optimization using different initial guess eta Try decreasing (even increasing )step_size (increments 0.001 0.002) increasing max_iter parameters optimizer. Also can try increasing b1 0.99 decreasing eps_f orders magnitude Try relaxing prior assumptions regarding covariance matrix. (e.g., may want consider decreasing parameter upsilon closer minimum value D) Try adding small amount jitter (e.g., set jitter=1e-5) address potential floating point errors.","code":""},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"S. Ruder (2016) overview gradient descent optimization algorithms. arXiv 1609.04747 JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2022, Journal Machine Learning","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/optimPibbleCollapsed.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Function to Optimize the Collapsed Pibble Model β€” optimPibbleCollapsed","text":"","code":"sim <- pibble_sim() # Fit model for eta fit <- optimPibbleCollapsed(sim$Y, sim$upsilon, sim$Theta%*%sim$X, sim$KInv, sim$AInv, random_pibble_init(sim$Y))"},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create orthusfit object β€” orthusfit","title":"Create orthusfit object β€” orthusfit","text":"Create orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create orthusfit object β€” orthusfit","text":"","code":"orthusfit( D, N, Q, P, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Z = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, names_categories = NULL, names_samples = NULL, names_Zdimensions = NULL, names_covariates = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create orthusfit object β€” orthusfit","text":"D number multinomial categories N number samples Q number covariates P Dimension second dataset (e.g., nrows(Z) ) coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Z PxN matrix real valued observations Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization names_categories character vector names_samples character vector names_Zdimensions character vector names_covariates character vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create orthusfit object β€” orthusfit","text":"object class orthusfit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit orthus models β€” orthus_fit","title":"Interface to fit orthus models β€” orthus_fit","text":"function largely user friendly wrapper around optimPibbleCollapsed uncollapsePibble fitting orthus models. See details model specification. Notation: N number samples, P number dimensions observations second dataset, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit orthus models β€” orthus_fit","text":"","code":"orthus( Y = NULL, Z = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ... )"},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit orthus models β€” orthus_fit","text":"Y D x N matrix counts (NULL uses priors ) Z P x N matrix counts (NULL uses priors - must present/absent Y present/absent) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1+P) x Q matrix prior mean regression parameters (default: matrix(0, D-1+P, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1+P)x(D-1+P) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x Q initialization Eta optimization pars character vector posterior parameters return ... arguments passed optimPibbleCollapsed uncollapsePibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit orthus models β€” orthus_fit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit orthus models β€” orthus_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$cbind(Eta, Z) \\sim MN_{D-1+P x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1+P x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. , orthus model models latent multinomial log-ratios (Eta) observations second dataset jointly linear model. allows Sigma also describe covariation two datasets. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Interface to fit orthus models β€” orthus_fit","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/orthus_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interface to fit orthus models β€” orthus_fit","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":null,"dir":"Reference","previous_headings":"","what":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"Log-Ratio transforms orthus objects","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"","code":"oglr(x, s, V) oglrInv(x, s, V) oalr(x, s, d = NULL) oalrInv(y, s, d = NULL) oilr(x, s, V = NULL) oilrInv(y, s, V = NULL) oclr(x, s) oclrInv(x, s)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"x orthus data array (e.g., first s rows multinomial parameters log-ratios) s first s rows x transformed V transformation matrix (defines transform) d ALR, component (integer position) take reference (default ncol(x)) alrInv corresponds column position untransformed matrix. y orthus data array (e.g., first s rows multinomial parameters log-ratios)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_lr_transforms.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Log-Ratio transforms for orthus objects β€” orthus_lr_transforms","text":"matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"Simulate simple orthus dataset priors (testing)","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"","code":"orthus_sim( D = 10, P = 10, N = 30, Q = 2, use_names = TRUE, true_priors = FALSE )"},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"D number multinomial categories P number dimensions second dataset Z N number samples Q number covariates (first one intercept, must > 1) use_names samples, covariates, categories named true_priors Xi upsilon chosen mean true simulated value","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_sim.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate simple orthus dataset and priors (for testing) β€” orthus_sim","text":"","code":"sim <- orthus_sim()"},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"Combines single tibble, see example formatting column headers. Primarily designed used summary.orthusfit.","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"","code":"orthus_tidy_samples(m, use_names = FALSE, as_factor = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"m object class orthusfit use_names dimension indices replaced dimension names provided data used fit pibble model. as_factor use_names names returned factor?","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/orthus_tidy_samples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert orthus samples of Eta Lambda and Sigma to tidy format β€” orthus_tidy_samples","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X) fit_tidy <- orthus_tidy_samples(fit, use_names=TRUE) head(fit_tidy) #> Parameter coord sample iter val covariate coord2 #> 1 Eta log(c1/c10) s1 1 1.7727815 #> 2 Eta log(c2/c10) s1 1 1.7654507 #> 3 Eta log(c3/c10) s1 1 -0.6052307 #> 4 Eta log(c4/c10) s1 1 -0.9468327 #> 5 Eta log(c5/c10) s1 1 0.2249392 #> 6 Eta log(c6/c10) s1 1 -2.3106465 "},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"","code":"data(pcrbias_mock)"},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"matrix Y (counts community member) data.frame metadata","code":""},{"path":"https://jsilve24.github.io/fido/reference/pcrbias_mock.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” pcrbias_mock","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Create pibblefit object β€” pibblefit","title":"Create pibblefit object β€” pibblefit","text":"Create pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create pibblefit object β€” pibblefit","text":"","code":"pibblefit( D, N, Q, coord_system, iter = NULL, alr_base = NULL, ilr_base = NULL, Eta = NULL, Lambda = NULL, Sigma = NULL, Sigma_default = NULL, Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Xi = NULL, Xi_default = NULL, Gamma = NULL, init = NULL, names_categories = NULL, names_samples = NULL, names_covariates = NULL )"},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create pibblefit object β€” pibblefit","text":"D number multinomial categories N number samples Q number covariates coord_system coordinate system objects represented (options include \"alr\", \"clr\", \"ilr\", \"proportions\") iter number posterior samples alr_base integer category used reference (required coord_system==\"alr\") ilr_base (D x D-1) contrast matrix (required coord_system==\"ilr\") Eta Array samples Eta Lambda Array samples Lambda Sigma Array samples Sigma (null coord_system==\"proportions\") Sigma_default Array samples Sigma alr base D, used coord_system==\"proportions\" Y DxN matrix observed counts X QxN design matrix upsilon scalar prior dof inverse wishart prior Theta prior mean Lambda Xi Matrix prior covariance inverse wishart (null coord_system==\"proportions\") Xi_default Matrix prior covariance inverse wishart alr base D (used coord_system==\"proportions\") Gamma QxQ covariance matrix prior Lambda init matrix initial guess Lambda used optimization names_categories character vector names_samples character vector names_covariates character vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create pibblefit object β€” pibblefit","text":"object class pibblefit","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":null,"dir":"Reference","previous_headings":"","what":"Interface to fit pibble models β€” pibble_fit","title":"Interface to fit pibble models β€” pibble_fit","text":"function largely user friendly wrapper around optimPibbleCollapsed uncollapsePibble. See details model specification. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Interface to fit pibble models β€” pibble_fit","text":"","code":"pibble( Y = NULL, X = NULL, upsilon = NULL, Theta = NULL, Gamma = NULL, Xi = NULL, init = NULL, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), newdata = NULL, ... ) # S3 method for pibblefit refit(m, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), ...)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Interface to fit pibble models β€” pibble_fit","text":"Y D x N matrix counts (NULL uses priors ) X Q x N matrix covariates (design matrix) (NULL uses priors , must present sample Eta) upsilon dof inverse wishart prior (numeric must > D) (default: D+3) Theta (D-1) x Q matrix prior mean regression parameters (default: matrix(0, D-1, Q)) Gamma QxQ prior covariance matrix (default: diag(Q)) Xi (D-1)x(D-1) prior covariance matrix (default: ALR transform diag(1)*(upsilon-D)/2 - essentially iid \"base scale\" using Aitchison terminology) init (D-1) x N initialization Eta optimization pars character vector posterior parameters return newdata Default NULL. non-null, newdata used uncollapse sampler place X. ... arguments passed optimPibbleCollapsed uncollapsePibble m object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Interface to fit pibble models β€” pibble_fit","text":"object class pibblefit","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Interface to fit pibble models β€” pibble_fit","text":"full model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. Default behavior use MAP estimate uncollaping LTP model laplace approximation preformed.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Interface to fit pibble models β€” pibble_fit","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/pibble_fit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Interface to fit pibble models β€” pibble_fit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"Simulate simple pibble dataset priors (testing)","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"","code":"pibble_sim(D = 10, N = 30, Q = 2, use_names = TRUE, true_priors = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"D number multinomial categories N number samples Q number covariates (first one intercept, must > 1) use_names samples, covariates, categories named true_priors Xi upsilon chosen mean true simulated value","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_sim.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate simple pibble dataset and priors (for testing) β€” pibble_sim","text":"","code":"sim <- pibble_sim()"},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":null,"dir":"Reference","previous_headings":"","what":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"Combines single tibble, see example formatting column headers. Primarily designed used summary.pibblefit.","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"","code":"pibble_tidy_samples(m, use_names = FALSE, as_factor = FALSE)"},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"m object class pibblefit use_names dimension indices replaced dimension names provided data used fit pibble model. as_factor use_names names returned factor?","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"tibble","code":""},{"path":"https://jsilve24.github.io/fido/reference/pibble_tidy_samples.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Convert pibble samples of Eta Lambda and Sigma to tidy format β€” pibble_tidy_samples","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) fit_tidy <- pibble_tidy_samples(fit, use_names=TRUE) head(fit_tidy) #> Parameter coord sample iter val covariate coord2 #> 1 Eta log(c1/c10) s1 1 4.092298753 #> 2 Eta log(c2/c10) s1 1 4.480205759 #> 3 Eta log(c3/c10) s1 1 -0.969638768 #> 4 Eta log(c4/c10) s1 1 5.575328028 #> 5 Eta log(c5/c10) s1 1 0.001909711 #> 6 Eta log(c6/c10) s1 1 1.116070821 "},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"Plot Summaries Posterior Distribution pibblefit Parameters","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"","code":"# S3 method for pibblefit plot(x, ...)"},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"x object class pibblefit ... arguments passed plot.pibblefit (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"ggplot object","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"arguments: `par` parameter plot (options: Lambda, Eta, Sigma) (default=\"Lambda\") `focus.cov` vector covariates include plot (plots NULL) `focus.coord` vector coordinates include plot (plots NULL) `focus.sample` vector samples include plot (plots NULL) `use_names` TRUE, uses dimension names found data plot labels rather using dimension integer indices.","code":""},{"path":"https://jsilve24.github.io/fido/reference/plot.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plot Summaries of Posterior Distribution of pibblefit Parameters β€” plot.pibblefit","text":"","code":"sim <- pibble_sim(N=10, D=4, Q=3) fit <- pibble(sim$Y, sim$X) plot(fit, par=\"Lambda\") #> Scale for colour is already present. #> Adding another scale for colour, which will replace the existing scale. plot(fit, par=\"Sigma\")"},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for visualizing posterior predictive checks β€” ppc","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"Generic method visualizing posterior predictive checks","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"","code":"ppc(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"m object ... arguments passed control visualization","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for visualizing posterior predictive checks β€” ppc","text":"plot","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"Visualization Posterior Predictive Check fit model","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"","code":"# S3 method for pibblefit ppc(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"m object class pibblefit ... options passed ppc (see details)","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"ggplot object","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"ppc.pibblefit accepts following additional arguments: \"type\" type plot (options \"lines\", \"points\", \"bounds\") \"iter\" number samples posterior predictive distribution plot (currently must <= m$iter) type==\"lines\" default 50, type==\"ribbon\" default use available iterations. \"from_scratch\" predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false)","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Visualization of Posterior Predictive Check of fit model β€” ppc.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) ppc(fit)"},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"Generic Method Plot Posterior Predictive Summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"","code":"# S3 method for pibblefit ppc_summary(m, from_scratch = FALSE, ...) ppc_summary(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"m model object from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments pass","code":""},{"path":"https://jsilve24.github.io/fido/reference/ppc_summary.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic Method to Plot Posterior Predictive Summaries β€” ppc_summary.pibblefit","text":"vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict using basset β€” predict.bassetfit","title":"Predict using basset β€” predict.bassetfit","text":"Predict using basset","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict using basset β€” predict.bassetfit","text":"","code":"# S3 method for bassetfit predict( object, newdata = NULL, response = \"Lambda\", size = NULL, use_names = TRUE, summary = FALSE, iter = NULL, from_scratch = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict using basset β€” predict.bassetfit","text":"object object class pibblefit newdata optional matrix evaluate prediction. response Options = \"Lambda\":Mean regression, \"Eta\", \"Y\": counts size number counts per sample response=\"Y\" (vector matrix), default newdata=NULL response=\"Y\" use colsums m$Y. Otherwise uses median colsums object$Y default. passed matrix dimensions ncol(newdata) x iter. use_names TRUE apply names output summary TRUE, posterior summary predictions returned rather samples iter number iterations return NULL uses object$iter from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments passed summarise_posterior","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict using basset β€” predict.bassetfit","text":"(summary==FALSE) array D x N x iter; (summary==TRUE) tibble calculated posterior summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.bassetfit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict using basset β€” predict.bassetfit","text":"currently implemented pibblefit objects coord_system \"default\" \"alr\", \"ilr\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict response from new data β€” predict.pibblefit","title":"Predict response from new data β€” predict.pibblefit","text":"Predict response new data","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict response from new data β€” predict.pibblefit","text":"","code":"# S3 method for pibblefit predict( object, newdata = NULL, response = \"LambdaX\", size = NULL, use_names = TRUE, summary = FALSE, iter = NULL, from_scratch = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict response from new data β€” predict.pibblefit","text":"object object class pibblefit newdata optional matrix evaluate predictions. NULL (default), original data model used. response Options = \"LambdaX\":Mean regression, \"Eta\", \"Y\": counts size number counts per sample response=\"Y\" (vector matrix), default newdata=NULL response=\"Y\" use colsums m$Y. Otherwise uses median colsums m$Y default. passed matrix dimensions ncol(newdata) x iter. use_names TRUE apply names output summary TRUE, posterior summary predictions returned rather samples iter number iterations return NULL uses object$iter from_scratch predictions Y come fitted Eta predictions Eta posterior Lambda? (default: false) ... arguments passed summarise_posterior","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict response from new data β€” predict.pibblefit","text":"(summary==FALSE) array D x N x iter; (summary==TRUE) tibble calculated posterior summaries","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict response from new data β€” predict.pibblefit","text":"currently implemented pibblefit objects coord_system \"default\" \"alr\", \"ilr\".","code":""},{"path":"https://jsilve24.github.io/fido/reference/predict.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict response from new data β€” predict.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) predict(fit)[,,1:2] # just show 2 samples #> , , 1 #> #> s1 s2 s3 s4 s5 #> log(c1/c10) -0.70404170 -1.0723053 -0.5401210 -0.9485413 -0.63356566 #> log(c2/c10) -0.18980937 -7.7979140 3.1966933 -5.2410247 1.26618322 #> log(c3/c10) -2.63165792 -10.9043126 1.0506478 -8.1240850 -1.04848781 #> log(c4/c10) -0.18526606 -8.3487948 3.4484658 -5.6052416 1.37702019 #> log(c5/c10) 2.19245163 6.1463273 0.4325113 4.8175308 1.43578307 #> log(c6/c10) -0.01765007 -0.5256616 0.2084749 -0.3549319 0.07957007 #> log(c7/c10) 3.96296538 0.9533097 5.3026167 1.9647779 4.53893491 #> log(c8/c10) -1.06290426 4.3362744 -3.4661747 2.5217486 -2.09616608 #> log(c9/c10) -4.14987279 -4.2936457 -4.0858769 -4.2453273 -4.12235841 #> s6 s7 s8 s9 s10 #> log(c1/c10) -0.72281157 -0.8824675 -0.7842723 -0.777165454 -0.5425485 #> log(c2/c10) -0.57758358 -3.8759788 -1.8473252 -1.700502257 3.1465432 #> log(c3/c10) -3.05330330 -6.6398056 -4.4339538 -4.274306273 0.9961171 #> log(c4/c10) -0.60134944 -4.1405416 -1.9637876 -1.806245966 3.3946544 #> log(c5/c10) 2.39397502 4.1081266 3.0538503 2.977547539 0.4585739 #> log(c6/c10) -0.04354269 -0.2637845 -0.1283264 -0.118522677 0.2051262 #> log(c7/c10) 3.80956753 2.5047703 3.3072762 3.365357208 5.2827780 #> log(c8/c10) -0.78771584 1.5530281 0.1133708 0.009176261 -3.4305850 #> log(c9/c10) -4.15720069 -4.2195316 -4.1811954 -4.178420864 -4.0868246 #> s11 s12 s13 s14 s15 #> log(c1/c10) -0.70474316 -0.76041767 -0.4192360 -0.776121738 -0.8240135 #> log(c2/c10) -0.20430126 -1.35450317 5.6941047 -1.678939717 -2.6683549 #> log(c3/c10) -2.64741564 -3.89808498 3.7662021 -4.250860296 -5.3266986 #> log(c4/c10) -0.20081592 -1.43498747 6.1281988 -1.783109269 -2.8447560 #> log(c5/c10) 2.19998296 2.79773438 -0.8653749 2.966341646 3.4805334 #> log(c6/c10) -0.01861773 -0.09541948 0.3752331 -0.117082895 -0.1831485 #> log(c7/c10) 3.95723260 3.50222942 6.2905563 3.373887036 2.9824887 #> log(c8/c10) -1.05261992 -0.23636596 -5.2384913 -0.006125842 0.6960240 #> log(c9/c10) -4.15014665 -4.17188240 -4.0386825 -4.178013390 -4.1967107 #> s16 s17 s18 s19 s20 s21 #> log(c1/c10) -0.9556897 -0.8554379 -0.7868995 -0.3634543 -0.8001980 -0.4876735 #> log(c2/c10) -5.3887062 -3.3175632 -1.9016024 6.8465218 -2.1763403 4.2802265 #> log(c3/c10) -8.2846662 -6.0326137 -4.4929720 5.0192802 -4.7917077 2.2288251 #> log(c4/c10) -5.7637045 -3.5413592 -2.0220273 7.3647473 -2.3168223 4.6111015 #> log(c5/c10) 4.8942798 3.8179221 3.0820578 -1.4642776 3.2248371 -0.1305929 #> log(c6/c10) -0.3647929 -0.2264977 -0.1319506 0.4521827 -0.1502955 0.2808250 #> log(c7/c10) 1.9063573 2.7256714 3.2858049 6.7464358 3.1771226 5.7312467 #> log(c8/c10) 2.6265524 1.1567421 0.1518893 -6.0563173 0.3468602 -4.2351164 #> log(c9/c10) -4.2481181 -4.2089790 -4.1822211 -4.0169049 -4.1874129 -4.0654010 #> s22 s23 s24 s25 s26 s27 #> log(c1/c10) -0.8731613 -0.6065824 -0.4267227 -0.65880368 -0.7858590 -0.9922782 #> log(c2/c10) -3.6837192 1.8236416 5.5394347 0.74478081 -1.8801062 -6.1446032 #> log(c3/c10) -6.4307526 -0.4423368 3.5980221 -1.61543349 -4.4695982 -9.1065889 #> log(c4/c10) -3.9342462 1.9751754 5.9622373 0.81755318 -1.9989618 -6.5747852 #> log(c5/c10) 4.0082107 1.1460761 -0.7849941 1.70675204 3.0708864 5.2871139 #> log(c6/c10) -0.2509469 0.1167929 0.3649054 0.04475477 -0.1305153 -0.4152660 #> log(c7/c10) 2.5808254 4.7594573 6.2293711 4.33267568 3.2943085 1.6073354 #> log(c8/c10) 1.4165889 -2.4917728 -5.1287280 -1.72614688 0.1366343 3.1629834 #> log(c9/c10) -4.2158984 -4.1118239 -4.0416053 -4.13221152 -4.1818149 -4.2624025 #> s28 s29 s30 #> log(c1/c10) -0.7340740 -0.6745065 -0.9711141 #> log(c2/c10) -0.8102577 0.4203703 -5.7073648 #> log(c3/c10) -3.3063010 -1.9681804 -8.6311589 #> log(c4/c10) -0.8510098 0.4694594 -6.1056266 #> log(c5/c10) 2.5148941 1.8753458 5.0598843 #> log(c6/c10) -0.0590789 0.0230931 -0.3860706 #> log(c7/c10) 3.7175250 4.2043436 1.7803005 #> log(c8/c10) -0.6225960 -1.4959253 2.8526922 #> log(c9/c10) -4.1615976 -4.1383420 -4.2541399 #> #> , , 2 #> #> s1 s2 s3 s4 s5 #> log(c1/c10) -0.78034714 -0.6578935 -0.83485344 -0.6990470 -0.8037816 #> log(c2/c10) 0.09605189 -7.0955013 3.29714012 -4.6786043 1.4723274 #> log(c3/c10) -3.23050215 -10.4350195 -0.02364334 -8.0137656 -1.8517456 #> log(c4/c10) 0.49931591 -7.0058217 3.83998616 -4.4835370 1.9356033 #> log(c5/c10) 1.35801089 5.7621210 -0.60233686 4.2820123 0.5151792 #> log(c6/c10) -0.30332304 0.9731533 -0.87150535 0.5441622 -0.5476073 #> log(c7/c10) 3.99882759 3.0602134 4.41662145 3.3756576 4.1784538 #> log(c8/c10) -2.04712903 3.5101742 -4.52078356 1.6425068 -3.1106518 #> log(c9/c10) -4.68344683 -2.8566426 -5.49658988 -3.4705848 -5.0330495 #> s6 s7 s8 s9 s10 #> log(c1/c10) -0.7741059 -0.7210177 -0.75366916 -0.75603230 -0.83404626 #> log(c2/c10) -0.2704913 -3.3882960 -1.47071326 -1.33192903 3.24973572 #> log(c3/c10) -3.5977061 -6.7211313 -4.80009170 -4.66105728 -0.07113319 #> log(c4/c10) 0.1167898 -3.1369654 -1.13576733 -0.99093148 3.79051472 #> log(c5/c10) 1.5824821 3.4918270 2.31749851 2.23250699 -0.57330639 #> log(c6/c10) -0.2382629 0.3151369 -0.02522754 -0.04986127 -0.86309123 #> log(c7/c10) 3.9509878 3.5440638 3.79433936 3.81245295 4.41043441 #> log(c8/c10) -1.7638812 0.6454156 -0.83640460 -0.94365071 -4.48415161 #> log(c9/c10) -4.5903372 -3.7983499 -4.28545587 -4.32070995 -5.48454818 #> s11 s12 s13 s14 s15 s16 #> log(c1/c10) -0.78011389 -0.7616012 -0.8750497 -0.7563793 -0.7404546 -0.6966701 #> log(c2/c10) 0.08235345 -1.0048737 5.6578157 -1.3115471 -2.2467908 -4.8182001 #> log(c3/c10) -3.24422529 -4.3334124 2.3412878 -4.6406386 -5.5775682 -8.1536130 #> log(c4/c10) 0.48502016 -0.6496151 6.3035979 -0.9696608 -1.9456854 -4.6292198 #> log(c5/c10) 1.36639982 2.0322182 -2.0480155 2.2200251 2.7927687 4.3675008 #> log(c6/c10) -0.30089161 -0.1079125 -1.2905173 -0.0534790 0.1125236 0.5689400 #> log(c7/c10) 3.99703972 3.8551390 4.7247278 3.8151131 3.6930487 3.3574381 #> log(c8/c10) -2.03654350 -1.1963841 -6.3450056 -0.9594010 -0.2366874 1.7503800 #> log(c9/c10) -4.67996714 -4.4037888 -6.0962506 -4.3258874 -4.0883160 -3.4351245 #> s17 s18 s19 s20 s21 s22 #> log(c1/c10) -0.7300054 -0.75279556 -0.893598 -0.74837361 -0.8522931 -0.7241121 #> log(c2/c10) -2.8604542 -1.52201871 6.747137 -1.78171450 4.3213488 -3.2065628 #> log(c3/c10) -6.1923379 -4.85148964 3.432573 -5.11165358 1.0024117 -6.5390705 #> log(c4/c10) -2.5861073 -1.18930994 7.440418 -1.46032964 4.9088550 -2.9473079 #> log(c5/c10) 3.1685764 2.34891799 -2.715116 2.50795579 -1.2295627 3.3805335 #> log(c6/c10) 0.2214468 -0.01612099 -1.483868 0.02997413 -1.0532989 0.2828799 #> log(c7/c10) 3.6129557 3.78764317 4.866902 3.75374867 4.5502973 3.5677829 #> log(c8/c10) 0.2375236 -0.79675809 -7.186783 -0.59607707 -5.3122451 0.5049805 #> log(c9/c10) -3.9324327 -4.27242321 -6.372961 -4.20645508 -5.7567602 -3.8445139 #> s23 s24 s25 s26 s27 s28 #> log(c1/c10) -0.8127540 -0.8725602 -0.7953895 -0.75314154 -0.6845038 -0.7703609 #> log(c2/c10) 1.9992643 5.5116140 0.9794723 -1.50169947 -5.5327109 -0.4904263 #> log(c3/c10) -1.3238588 2.1948226 -2.3454892 -4.83113377 -8.8694119 -3.8180376 #> log(c4/c10) 2.4855171 6.1510212 1.4212575 -1.16810468 -5.3748866 -0.1127354 #> log(c5/c10) 0.1924828 -1.9584816 0.8170039 2.33647448 4.8050675 1.7171704 #> log(c6/c10) -0.6411368 -1.2645670 -0.4601272 -0.01972759 0.6957633 -0.1992251 #> log(c7/c10) 4.2472276 4.7056462 4.1141283 3.79029516 3.2641829 3.9222827 #> log(c8/c10) -3.5178445 -6.2320277 -2.7297959 -0.81245987 2.3025213 -1.5939255 #> log(c9/c10) -5.1669024 -6.0591124 -4.9078540 -4.27758472 -3.2536239 -4.5344692 #> s29 s30 #> log(c1/c10) -0.7901681 -0.6915412 #> log(c2/c10) 0.6728236 -5.1194118 #> log(c3/c10) -2.6526907 -8.4553677 #> log(c4/c10) 1.1012375 -4.9435658 #> log(c5/c10) 1.0047956 4.5519630 #> log(c6/c10) -0.4056981 0.6224041 #> log(c7/c10) 4.0741056 3.3181251 #> log(c8/c10) -2.4928319 1.9831427 #> log(c9/c10) -4.8299589 -3.3586105 #>"},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"Print dimensions coordinate system information orthusfit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"","code":"# S3 method for orthusfit print(x, summary = FALSE, ...)"},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"x object class orthusfit summary true also calculates prints summary ... arguments pass summary function","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"direct return, prints summary","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/print.orthusfit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print dimensions and coordinate system information for orthusfit object. β€” print.orthusfit","text":"","code":"sim <- orthus_sim() fit <- orthus(sim$Y, sim$Z, sim$X) print(fit) #> orthusfit Object: #> Number of Samples:\t\t 30 #> Number of Categories:\t\t 10 #> Number of Zdimensions:\t 10 #> Number of Covariates:\t\t 2 #> Number of Posterior Samples:\t 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System:\t\t alr, reference category: 10 [c10]"},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"Print dimensions coordinate system information pibblefit object.","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"","code":"# S3 method for pibblefit print(x, summary = FALSE, ...)"},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"x object class pibblefit summary true also calculates prints summary ... arguments pass summary function","code":""},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"direct return, prints summary","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/print.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print dimensions and coordinate system information for pibblefit object. β€” print.pibblefit","text":"","code":"sim <- pibble_sim() fit <- pibble(sim$Y, sim$X) print(fit) #> pibblefit Object: #> Number of Samples:\t\t 30 #> Number of Categories:\t\t 10 #> Number of Covariates:\t\t 2 #> Number of Posterior Samples:\t 2000 #> Contains Samples of Parameters:Eta Lambda Sigma #> Coordinate System:\t\t alr, reference category: 10 [c10] #> Log Marginal Likelihood:\t -1973.695"},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic Method to Calculate R2 for Fitted Model β€” r2","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"Generic Method Calculate R2 Fitted Model","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"","code":"r2(m, ...) # S3 method for pibblefit r2(m, covariates = NULL, ...) # S3 method for bassetfit r2(m, covariates = NULL, components = NULL, ...)"},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"m model object ... arguments pass covariates vector indices covariates include calculation R2 (default:NULL means include covariates default). non-null, covariates specified set zero prediction. components vector indices components GP model include calculation R2, .e. elements list Theta/Gamma used calculating R2 (default:NULL means include components default). non-null, components specified removed prediction.","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"vector","code":""},{"path":"https://jsilve24.github.io/fido/reference/r2.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generic Method to Calculate R2 for Fitted Model β€” r2","text":"Calculates Posterior Linear Model R2 : $$1-\\frac{SS_{res}}{SS_{tot}}$$ \\(SS\\) defined terms trace variances Method calculating R2 multivariate version Bayesian R2 proposed Gelman, Goodrich, Gabry, Vehtari, 2019 Calculates Posterior Basset Model R2 : $$1-\\frac{SS_{res}}{SS_tot}$$ Method calculating R2 multivariate version Bayesian R2 proposed Gelman, Goodrich, Gabry, Vehtari, 2019","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":null,"dir":"Reference","previous_headings":"","what":"Provide random initialization for pibble model β€” random_pibble_init","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Randomly initializes based ALR transform counts plus random pseudocounts uniformily distributed 0 1.","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"","code":"random_pibble_init(Y)"},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Y matrix (D x N) counts","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"(D-1) x N matrix","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"Notation: N number samples D number multinomial categories","code":""},{"path":"https://jsilve24.github.io/fido/reference/random_pibble_init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Provide random initialization for pibble model β€” random_pibble_init","text":"","code":"Y <- matrix(sample(1:100, 100), 10, 10) random_pibble_init(Y) #> [,1] [,2] [,3] [,4] [,5] [,6] #> [1,] -0.13743727 -0.3312002 -1.5952317 2.5896872 1.0364971 0.7134912 #> [2,] -0.03605466 -1.0946291 0.4302611 1.7693657 1.2425171 0.8972791 #> [3,] -0.98053047 -1.0006552 -0.3529571 2.8586754 0.1886809 0.8603231 #> [4,] -0.04712701 0.3486153 -1.2748981 -0.8325446 0.6011610 1.8485723 #> [5,] -0.20535453 0.5282856 -0.6949068 2.4347884 0.7002748 -0.3407350 #> [6,] 0.43013291 -0.2163443 -0.8447681 1.4769015 0.2124275 1.9787427 #> [7,] 0.14265373 -0.0971531 -1.4255502 1.8172756 -0.5752273 1.2281001 #> [8,] -2.58595155 -1.0625784 0.0375343 2.5399985 -0.9885152 1.6870342 #> [9,] -0.46374826 -0.9394908 0.4786111 2.8058892 0.6653587 2.0580245 #> [,7] [,8] [,9] [,10] #> [1,] 0.7968142 0.44298835 -0.15629481 1.6804717 #> [2,] 0.4671822 -1.06688846 -2.42821498 1.9322217 #> [3,] 0.8580515 0.26008043 -0.13261153 2.5100225 #> [4,] 1.0455422 -0.36516180 0.09458404 2.5321603 #> [5,] 0.8988951 0.43221338 -0.67354694 2.3401178 #> [6,] -3.1160542 -0.33808636 -2.04372820 0.9544726 #> [7,] 0.9815253 -0.02679923 0.13288455 -0.7066310 #> [8,] 1.1179594 0.19562534 -0.20936590 1.7681255 #> [9,] 0.6984627 -0.60785405 0.17259204 2.3099825"},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for fitting model from passed model fit object β€” refit","title":"Generic method for fitting model from passed model fit object β€” refit","text":"Generic method fitting model passed model fit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for fitting model from passed model fit object β€” refit","text":"","code":"refit(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for fitting model from passed model fit object β€” refit","text":"m object ... arguments passed control fitting","code":""},{"path":"https://jsilve24.github.io/fido/reference/refit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for fitting model from passed model fit object β€” refit","text":"object class m","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for ensuring object contains required elements β€” req","title":"Generic method for ensuring object contains required elements β€” req","text":"Intended called internally package","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for ensuring object contains required elements β€” req","text":"","code":"req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for ensuring object contains required elements β€” req","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for ensuring object contains required elements β€” req","text":"throws error required element present","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"require elements non-null pibblefit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"","code":"# S3 method for maltipoofit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in pibblefit or throw error β€” req.maltipoofit","text":"Throws error null","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"require elements non-null orthusfit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"","code":"# S3 method for orthusfit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in orthusfit or throw error β€” req.orthusfit","text":"None, throws error NULL","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"require elements non-null pibblefit throw error","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"","code":"# S3 method for pibblefit req(m, r)"},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"m object r vector elements test ","code":""},{"path":"https://jsilve24.github.io/fido/reference/req.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"require elements to be non-null in pibblefit or throw error β€” req.pibblefit","text":"Nothing, throws error NULL","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for sampling from prior distribution of object β€” sample_prior","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"Generic method sampling prior distribution object","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"","code":"sample_prior(m, n_samples = 2000L, ...)"},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"m object n_samples number samples produce ... arguments passed","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for sampling from prior distribution of object β€” sample_prior","text":"object class","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"Note can used sample prior predict can called get counts LambdaX (predict.pibblefit)","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"","code":"# S3 method for pibblefit sample_prior( m, n_samples = 2000L, pars = c(\"Eta\", \"Lambda\", \"Sigma\"), use_names = TRUE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"m object class pibblefit n_samples number samples produce pars parameters sample use_names names used available ... currently ignored","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"greatly speed future needed sampling directly cholesky form inverse wishart (currently implemented header library - see MatDist.h).","code":""},{"path":"https://jsilve24.github.io/fido/reference/sample_prior.pibblefit.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Sample from the prior distribution of pibblefit object β€” sample_prior.pibblefit","text":"","code":"# Sample prior of already fitted pibblefit object sim <- pibble_sim() attach(sim) #> The following object is masked from package:fido: #> #> Y fit <- pibble(Y, X) head(sample_prior(fit)) #> $D #> [1] 10 #> #> $N #> [1] 30 #> #> $Q #> [1] 2 #> #> $iter #> [1] 2000 #> #> $coord_system #> [1] \"alr\" #> #> $alr_base #> [1] 10 #> # Sample prior as part of model fitting m <- pibblefit(N=as.integer(sim$N), D=as.integer(sim$D), Q=as.integer(sim$Q), iter=2000L, upsilon=upsilon, Xi=Xi, Gamma=Gamma, Theta=Theta, X=X, coord_system=\"alr\", alr_base=D) m <- sample_prior(m) plot(m) # plot prior distribution (defaults to parameter Lambda) #> Scale for colour is already present. #> Adding another scale for colour, which will replace the existing scale."},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":null,"dir":"Reference","previous_headings":"","what":"Holds information on coordinates system to later be reapplied β€” store_coord","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"store_coord stores coordinate information pibblefit object can reapplied function reapply_coord. coordinate systems useful computation makes simple keep returned object computations coordinate system input. (Likely useful inside package)","code":""},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"","code":"store_coord(m) reapply_coord(m, l)"},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"m object class pibblefit l object returned function store_coord","code":""},{"path":"https://jsilve24.github.io/fido/reference/store_coord.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Holds information on coordinates system to later be reapplied β€” store_coord","text":"store_coord list important information identify c coordinate system pibblefit object. reapply_coord pibblefit object coordinate system previously stored.","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":null,"dir":"Reference","previous_headings":"","what":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"Shortcut summarize variable quantiles mean","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"","code":"summarise_posterior(data, var, ...)"},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"data tidy data frame var variable name (unquoted) summarised ... expressions pass summarise","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"data.frame","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"Notation: pX refers X% quantile","code":""},{"path":"https://jsilve24.github.io/fido/reference/summarise_posterior.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Shortcut for summarize variable with quantiles and mean β€” summarise_posterior","text":"","code":"d <- data.frame(\"a\"=sample(1:10, 50, TRUE), \"b\"=rnorm(50)) # Summarize posterior for b over grouping of a and also calcuate # minmum of b (in addition to normal statistics returned) d <- dplyr::group_by(d, a) summarise_posterior(d, b, mean.b = mean(b), min=min(b)) #> # A tibble: 10 Γ— 9 #> a p2.5 p25 p50 mean p75 p97.5 mean.b min #> #> 1 1 -1.50 -1.38 -0.644 -0.615 0.123 0.316 -0.615 -1.51 #> 2 2 -0.609 -0.311 0.0189 0.125 0.508 0.949 0.125 -0.642 #> 3 3 -0.227 -0.0597 0.474 0.364 0.765 0.840 0.364 -0.238 #> 4 4 -0.995 -0.306 0.714 0.290 0.904 1.12 0.290 -1.01 #> 5 5 -1.51 -0.202 0.512 -0.00225 0.665 0.668 -0.00225 -1.65 #> 6 6 0.483 0.496 0.591 0.751 0.846 1.29 0.751 0.482 #> 7 7 -0.410 -0.361 -0.230 -0.0870 0.247 0.316 -0.0870 -0.415 #> 8 8 -1.82 -0.494 0.340 0.0668 0.681 1.60 0.0668 -1.99 #> 9 9 -0.0325 0.0389 0.284 0.761 1.13 2.27 0.761 -0.0404 #> 10 10 -0.928 -0.350 -0.106 -0.285 -0.0410 0.0535 -0.285 -0.992"},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"Default calculates median, mean, 50% 95% credible interval","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"","code":"# S3 method for orthusfit summary( object, pars = NULL, use_names = TRUE, as_factor = FALSE, gather_prob = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"object object class orthusfit pars character vector (default: c(\"Eta\", \"Lambda\", \"Sigma\")) use_names summary replace dimension indices orthusfit names names Y X named call orthus as_factor use_names as_factor returns names factors (useful maintaining orderings plotting) gather_prob TRUE prints quantiles long format rather wide (useful plotting functions) ... expressions pass summarise (using name 'val' unquoted probably want)","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summarise orthusfit object and print posterior quantiles β€” summary.orthusfit","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"Default calculates median, mean, 50% 95% credible interval","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"","code":"# S3 method for pibblefit summary( object, pars = NULL, use_names = TRUE, as_factor = FALSE, gather_prob = FALSE, ... )"},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"object object class pibblefit pars character vector (default: c(\"Eta\", \"Lambda\", \"Sigma\")) use_names summary replace dimension indices pibblefit names names Y X named call pibble as_factor use_names as_factor returns names factors (useful maintaining orderings plotting) gather_prob TRUE prints quantiles long format rather wide (useful plotting functions) ... expressions pass summarise (using name 'val' unquoted probably want)","code":""},{"path":"https://jsilve24.github.io/fido/reference/summary.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Summarise pibblefit object and print posterior quantiles β€” summary.pibblefit","text":"list","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":null,"dir":"Reference","previous_headings":"","what":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"See details model. likely called following optimPibbleCollapsed. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"","code":"uncollapsePibble( eta, X, Theta, Gamma, Xi, upsilon, seed, ret_mean = FALSE, ncores = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"eta array dimension (D-1) x N x iter (e.g., Pars output function optimPibbleCollapsed) X matrix covariates dimension Q x N Theta matrix prior mean dimension (D-1) x Q Gamma covariance matrix dimension Q x Q Xi covariance matrix dimension (D-1) x (D-1) upsilon scalar (must > D) degrees freedom InvWishart prior seed seed use random number generation ret_mean true uses posterior mean Lambda Sigma corresponding sample eta rather sampling posterior Lambda Sigma (useful Laplace approximation used (fails) optimPibbleCollapsed) ncores (default:-1) number cores use, ncores==-1 uses default OpenMP typically use available cores.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"List components Lambda Array dimension (D-1) x Q x iter (posterior samples) Sigma Array dimension (D-1) x (D-1) x iter (posterior samples) number cores used Timer","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"Notation: Let Z_j denote J-th row matrix Z. collapsed model given : $$Y_j sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ = I_N + X * Gamma * X', K = Xi (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. uncollapsed model (Full pibble model) given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma given posterior samples Eta collapsed model.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model β€” uncollapsePibble","text":"","code":"sim <- pibble_sim() # Fit model for eta fit <- optimPibbleCollapsed(sim$Y, sim$upsilon, sim$Theta%*%sim$X, sim$KInv, sim$AInv, random_pibble_init(sim$Y)) # Finally obtain samples from Lambda and Sigma fit2 <- uncollapsePibble(fit$Samples, sim$X, sim$Theta, sim$Gamma, sim$Xi, sim$upsilon, seed=2849)"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":null,"dir":"Reference","previous_headings":"","what":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"See details model. likely called following optimPibbleCollapsed. Notation: N number samples, D number multinomial categories, Q number covariates, iter number samples eta (e.g., parameter n_samples function optimPibbleCollapsed)","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"","code":"uncollapsePibble_sigmaKnown( eta, X, Theta, Gamma, GammaComb, Xi, sigma, upsilon, seed, ret_mean = FALSE, linear = FALSE, ncores = -1L )"},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"eta array dimension (D-1) x N x iter (e.g., Pars output function optimPibbleCollapsed) X matrix covariates dimension Q x N Theta matrix prior mean dimension (D-1) x Q Gamma covariance matrix dimension Q x Q GammaComb summed covariance matrix across additive components dimension Q x Q. Xi covariance matrix dimension (D-1) x (D-1) sigma known covariance matrix dimension (D-1) x (D-1) x iter upsilon scalar (must > D) degrees freedom InvWishart prior seed seed use random number generation ret_mean true uses posterior mean Lambda Sigma corresponding sample eta rather sampling posterior Lambda Sigma (useful Laplace approximation used (fails) optimPibbleCollapsed) linear Boolean. linear parameter? ncores (default:-1) number cores use, ncores==-1 uses default OpenMP typically use available cores.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"List components Lambda Array dimension (D-1) x Q x iter (posterior samples) Sigma Array dimension (D-1) x (D-1) x iter (posterior samples) number cores used Timer","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"Notation: Let Z_j denote J-th row matrix Z. collapsed model given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim T_{D-1, N}(upsilon, Theta*X, K, )$$ = I_N + X * Gamma * X', K = Xi (D-1)x(D-1) covariance matrix, Gamma Q x Q covariance matrix, \\(Phi^{-1}\\) ALRInv_D transform. uncollapsed model (Full pibble model) given : $$Y_j \\sim Multinomial(Pi_j)$$ $$Pi_j = Phi^{-1}(Eta_j)$$ $$Eta \\sim MN_{D-1 x N}(Lambda*X, Sigma, I_N)$$ $$Lambda \\sim MN_{D-1 x Q}(Theta, Sigma, Gamma)$$ $$Sigma \\sim InvWish(upsilon, Xi)$$ function provides means sampling posterior distribution Lambda Sigma given posterior samples Eta collapsed model.","code":""},{"path":"https://jsilve24.github.io/fido/reference/uncollapsePibble_sigmaKnown.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Uncollapse output from optimPibbleCollapsed to full pibble Model when Sigma is known β€” uncollapsePibble_sigmaKnown","text":"JD Silverman K Roche, ZC Holmes, LA David, S Mukherjee. Bayesian Multinomial Logistic Normal Models Marginally Latent Matrix-T Processes. 2019, arXiv e-prints, arXiv:1903.11695","code":""},{"path":[]},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed bassetfit object β€” verify.bassetfit","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"Simple verification passed bassetfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"","code":"# S3 method for bassetfit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"m object class bassetfit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.bassetfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed bassetfit object β€” verify.bassetfit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":null,"dir":"Reference","previous_headings":"","what":"Generic method for verifying new objects β€” verify","title":"Generic method for verifying new objects β€” verify","text":"Intended called internally package object creator","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generic method for verifying new objects β€” verify","text":"","code":"verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generic method for verifying new objects β€” verify","text":"m object ... arguments passed verify","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Generic method for verifying new objects β€” verify","text":"throws error verify test fails","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed multipoo object β€” verify.maltipoofit","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"Simple verification passed multipoo object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"","code":"# S3 method for maltipoofit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"m object class multipoo ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.maltipoofit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed multipoo object β€” verify.maltipoofit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed orthusfit object β€” verify.orthusfit","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"Simple verification passed orthusfit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"","code":"# S3 method for orthusfit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"m object class orthusfit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.orthusfit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed orthusfit object β€” verify.orthusfit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":null,"dir":"Reference","previous_headings":"","what":"Simple verification of passed pibblefit object β€” verify.pibblefit","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"Simple verification passed pibblefit object","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"","code":"# S3 method for pibblefit verify(m, ...)"},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"m object class pibblefit ... used","code":""},{"path":"https://jsilve24.github.io/fido/reference/verify.pibblefit.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simple verification of passed pibblefit object β€” verify.pibblefit","text":"throws error verification tests fail","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":null,"dir":"Reference","previous_headings":"","what":"Data from Silverman et al. (2019) bioRxiv β€” Y","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"Mock communities calibration samples created measuring validating model PCR bias. data preprocessed original manuscript.","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"matrix Y (counts community member)","code":""},{"path":"https://jsilve24.github.io/fido/reference/Y.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"Data from Silverman et al. (2019) bioRxiv β€” Y","text":"Justin D. Silverman, Rachael J. Bloom, Sharon Jiang, Heather K. Durand, Sayan Mukherjee, Lawrence . David. (2019) Measuring Mitigating PCR Bias Microbiome Data. bioRxiv 604025; doi: https://doi.org/10.1101/604025","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-110","dir":"Changelog","previous_headings":"","what":"fido 1.1.0","title":"fido 1.1.0","text":"Updating basset model allow additive Gaussian processes Updating random seed generation","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-104","dir":"Changelog","previous_headings":"","what":"fido 1.0.4","title":"fido 1.0.4","text":"CRAN release: 2023-03-24 changing default optimizer (lbfgs rather adam), adam sensitive random seed adding new r2 methods calculating Bayesian R2 pibble basset models predict.bassetfit now accepts newdata=NULL argument predict training set bug fixes fixing discrepancies base R commands (print, summary, etc).","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-103","dir":"Changelog","previous_headings":"","what":"fido 1.0.3","title":"fido 1.0.3","text":"CRAN release: 2022-08-23 bug fixes Updating documentation newest version R (4.2.1)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-102","dir":"Changelog","previous_headings":"","what":"fido 1.0.2","title":"fido 1.0.2","text":"CRAN release: 2022-07-06 bug fixes Removing timing test irrelevant can fail certain set-ups.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-101","dir":"Changelog","previous_headings":"","what":"fido 1.0.1","title":"fido 1.0.1","text":"CRAN release: 2022-05-17 bug fixes Changing phyloseq imports depends, causing issues installing CRAN. Fixing bug configure.ac causing openmp parallelization work machines.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-100","dir":"Changelog","previous_headings":"","what":"fido 1.0.0","title":"fido 1.0.0","text":"CRAN release: 2022-02-16 changes make final push CRAN! Changes include: Updating description file match CRAN’s standards Removing dependency driver Linking one remote package (MicrobeDS) separate CRAN-like Github repo using β€œdrat” package. match CRAN’s policy use β€œRemotes”. Precomputing longer running vignettes, cutting R CMD check times half. original vignettes can found vignettes folder β€œ.orig” extension reproducibility.","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0114","dir":"Changelog","previous_headings":"","what":"fido 0.1.14","title":"fido 0.1.14","text":"changes prepare version 0.2 (CRAN soon), including: Lots cleaning small warnings notes Fixing erorrs base plot function Cleaning manual entries Fixing errors posted Github (to_ilr among others)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0113","dir":"Changelog","previous_headings":"","what":"fido 0.1.13","title":"fido 0.1.13","text":"tons tiny changes prepare version 0.2 (ultimately CRAN) featured changes include: plot coef methods *fit objects now abide CRAN generic naming scheme - may cause problems prior code positional arguments functions now tested using travis integration (vignettes tested due time constraints) merged Kim’s fixes maltipoo code (almost certainly change maltipoo results; bug prior versions) Internally stored mallard mallard_family data now import mallard mallard_family rather importing ps. Solved R CMD CHECK warning. Lots tiny updates documentation","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0112","dir":"Changelog","previous_headings":"","what":"fido 0.1.12","title":"fido 0.1.12","text":"orthus added jointly fitting multinomial gaussian data (e.g., 16S microbiome metabolomics data)","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0111","dir":"Changelog","previous_headings":"","what":"fido 0.1.11","title":"fido 0.1.11","text":"Kim fixed windows installation problems (Thanks Kim!) Fixed bug predict effecting ppc Fixed error pars!=NULL summary lambda_to_iqlr now default behavior focus.cov=NULL Fixed issue Xi=NULL pibblefit trying transform small changes make pibble wrapper around c++ functions faster","code":""},{"path":"https://jsilve24.github.io/fido/news/index.html","id":"fido-0110","dir":"Changelog","previous_headings":"","what":"fido 0.1.10","title":"fido 0.1.10","text":"basset added fitting non-linear regression using fido numerous changes make installation easier Added NEWS.md file track changes package.","code":""}]