diff --git a/1ano/1semestre/iei/infor2022-ap-g16/README.md b/1ano/1semestre/iei/infor2022-ap-g16/README.md new file mode 100755 index 0000000..d71ae3a --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/README.md @@ -0,0 +1,3 @@ +# Introdução à Engenharia Informática - 2022/2023 +## Grupo 16 - [Rúben Gomes](https://github.com/RubenCGomes) e [Tiago Garcia](https://github.com/TiagoRG) +#### Trabalho de Aprofundamento e Projeto Final sobre Cibersegurança diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/about.html b/1ano/1semestre/iei/infor2022-ap-g16/projeto/about.html new file mode 100644 index 0000000..79a88bb --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/about.html @@ -0,0 +1,83 @@ + + + + + Acerca deste projeto + + + + + + + + + + + + + + + + + + + +
+

ACERCA DESTE PROJETO

+
+

SOBRE OS AUTORES

+

+ Trabalho realizado no âmbito da cadeira de Introdução à Engenharia Informática, da Licenciatura em Engenharia de Computadores e Informática.
+ Código fonte disponível no Repositório do GitHub
+ Realizado pelos autores (e respetivas contribuições):
+ Rúben Gomes • (50%)
+ Tiago Garcia • (50%)
+

+

+ 2022-2023
+

+

+ Universidade de Aveiro
+ Departamento de Electrónica, Telecomunicações e Informática
+

+
+
+
+ + +
+ +
+
+

SOBRE O TRABALHO

+ Neste trabalho é abordado o tema de cibersegurança. Tema este que, com o desenvolver gradual das tecnologias, torna-se cada vez mais importante. Vulnerabilidades surgem a cada dia, e há cada vez mais ataques cibernéticos. Com este projeto procuramos tocar nos pontos mais importantes do mundo digital, por isso os autores consideram que este site é ideal para qualquer leitor que deseja saber algo mais sobre o mundo digital. +
+

SOBRE O SITE

+

+ Para este trabalho, foram usadas diversas bibliotecas para um melhor aspeto do mesmo. A biblioteca Bootstrap foi usada para a criação do menu de navegação, e a biblioteca jQuery para a criação do menu de navegação responsivo. Foi usado um Bootstrap de tema escuro para um aspeto visual mais agradável. + Também foi usado o jQuery para a criação de um menu de navegação responsivo. +

+

+ Em grande parte do projeto foram usados stylesheets e scripts personalizados para a criação de efeitos visuais, mapas, entre outros. +

+
+

BIBLIOGRAFIA

+

+

+

+ UA +
+ + + \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/ameacas.html b/1ano/1semestre/iei/infor2022-ap-g16/projeto/ameacas.html new file mode 100644 index 0000000..a64175c --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/ameacas.html @@ -0,0 +1,162 @@ + + + + + Tipos de ameaças + + + + + + + + + + + + + + + + + + + + + +
+

Tipos de Ameaças Cibernéticas

+
+ +

Ameaças Cibernéticas

+

+ Conjunto de malware e software com capacidade de afetar o funcionamento normal de equipamentos digitais. Muitas vezes usadas para ciberterrorismo e causar danos graves com o intuito de lucrar ou impossibilitar o trabalho usual de uma entidade. +

+

Botnets

+

+ Botnets são robos digitais que conseguem infetar dispositivos tal como um vírus e a partir de aí permitir que utilizadores remotos tenham acesso à máquina onde se encontram alojados. Estas máquinas são muitas vezes usadas para realizar tarefas ilícitas e ilegais por parte do utilizador remoto sem este ser exposto por não ser a máquina do mesmo a realizar as ações. +

+

+ Estes botnets podem contaminar computadores, dispositivos móveis, routers e dispositivos IOT (Internet of Things). +

+

+ Da mesma maneira que um vírus tenta infetar o corpo humano por falhas no sistema imunitário, também estes bots tentam infetar os dispositivos através de falhas de segurança. é possível detetar que o dispositivo se encontra infetado a partir da deteção de comportamentos anormais por parte da máquina, por exemplo, quando esta trabalha de forma mais lenta do que o normal ou quando durante a utilização aparecem mensagens de erro aleatórias. +

+

Tipos de Botnets

+

Dentro dos botnets existem dois tipos: Cliente Servidor e Peer-to-Peer

+ +

DDoS

+

+ Estas ameaças são das mais comuns e mais utilizadas pela comunidade de atacantes. O objetivo destes ataques é levar o consumo de recursos do servidor/aplicação ao limite. Uma vez sem recursos disponiveis, o servidor acaba por ter falhas de funcionalidade ou pode chegar mesmo a ir abaixo, ficando offine. A quantidade deste genero de ataques têm aumentado substancialmente, segundo a Microsoft, a Azure Networking registou, em 2021, um aumento de 25% a mais de casos de DDoS em relação a 2020. +

+

Funcionamento de DDoS

+

+ Durante estes ataques, um conjunto de Botnets ataca uma aplicação/servidor visando desgastar e levar o consumo de recursos ao limite. Fazem isto procedendo ao uso exagerado de solicitações Hypertext Transfer Protocol (HTTP). Visto que os atacantes usam estes bots, conseguem também acesso à base de dados, podendo conseguir roubar informação sensivel e, visto que os recursos do servidor já estão no limite, os proprietários e responsáveis pela segurança do servidor têm dificuldade na defesa do seu sistema. Estes ataques podem demorar diversos intervalos de tempo, desde minutos até mesmo dias. +

+

Tipos de ataques DDoS

+ +

+ Durante um ataque DDoS podem ser usados apenas um ou mais destes tipos, muitas vezes começa como um dos tipos para debilitar os sistemas de segurança para que depois possam ser usados ataques de exaustão do sistema. +

+
+

Guerras Cibernéticas

+

Por vezes estas ameaças e armas cibernéticas são usadas para criar guerras. Estas são muito prejudiciais para as vítimas da guerra, mas benificial para o atacante, pois este consegue muitas vezes vencer a guerra sem qualquer custo para si, mas leva a sérios danos à vítima, explorando falhas de segurança nos seus sistemas.

+

As vítimas são muitas vezes países ou empresas e não entidades pequenas, atacados não apenas dados das entidades mas também os próprios sistemas, levando ao corrompimento de parte do functionamento da entidade.

+

Estas guerras são também usadas no roubo de informação desde dados simples até mesmo dados bancários ou na espionagem de dados militares, ou diplomáticos. Outro uso dado a estas guerras é a corrupção e a manipulação de dados para benificio de uma certa entidade como acontece em algumas disputas de poder.

+

Exixtem duas formas de guerras: ARC e ERC.

+

ARC

+

+ Estas guerras são responsáveis pela destruição e degradação de redes e da informação com a qual estas trabalham. Podem ser usados DDoS para provocar sobrecarga no servidor fazendo pedidos de informação de quantidade superior à que o servidor aguenta ou podem-se criar bloqueios nos servidores para impedir o acesso aos mesmos por parte dos utilizadores. +

+

ERC

+

+ Estas guerras são as responsáveis pelo espionamento de entidades e por vezes provocar danos colaterais na rede durante o processo. +

+
+

Internet Banking

+

+ Tal como o nome sugere estas ameaças procuram tirar proveito de falhas em sistemas bancários quer bancos financeiros, quer bancos de dados. Com a exploração de vulnerabilidades nestes bancos, o atacante consegue um grande acesso à informação dos utilizadores, usando essa informação para proveito próprio posteriormente. +

+

+ Muitos dos sistemas usam uma API (Application Programming Interface) que permite a utilização do sistema por parte de aplicações externas. Por exemplo, o PayPal tem uma API que permite que outras aplicações o usem como método de pagamento. No entanto, estas APIs são também bastante sujeitas a ataques DDoS, entre outros. Outro problema com a sua encriptação é o baixo nível da complexidade das chaves de autenticação usadas (muitas vezes são pins numéricos com poucos digitos). +

+
+

Mobile Malware

+

Este género de malware pode conseguir roubar a informação do dispositivo, inutilizar aplicações. Estas ameaças podem facilmente se espalhar através do Bluetooth.

+

Mobile Malware mais usados

+ +

+ Com estes malwares, o utilizador corre o risco de ter dinheiro, informação pessoal/profissional/empresarial roubadas, podendo ser posteriormente vendidas no mercado negro da internet. +

+
+ + + + + + \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/about.css b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/about.css new file mode 100644 index 0000000..896439b --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/about.css @@ -0,0 +1,44 @@ +body { + margin: 0; + text-align: justify; + text-justify: inter-word; + background-image: url("../images/background.png"); + background-size: 100%; + background-attachment: fixed; +} + +.body-content { + background-color: white; + padding-top: 30px; + text-align: center; +} + +h1 { + font-size: 90px; +} +h2 { + font-size: 50px; +} + +a { + color: #727282; +} + +ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +#about-map { + z-index: 1; + width: 100%; + height: 450px; +} + +footer { + position: fixed; + z-index: 2; + bottom: 0; + width: 100%; +} \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/bootstrap-header.min.css b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/bootstrap-header.min.css new file mode 100644 index 0000000..28a5271 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/bootstrap-header.min.css @@ -0,0 +1,2869 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd; +--bs-indigo:#6610f2; +--bs-purple:#6f42c1; +--bs-pink:#d63384; +--bs-red:#dc3545; +--bs-orange:#fd7e14; +--bs-yellow:#ffc107; +--bs-green:#198754; +--bs-teal:#20c997; +--bs-cyan:#0dcaf0; +--bs-black:#000; +--bs-white:#fff; +--bs-gray:#6c757d; +--bs-gray-dark:#343a40; +--bs-gray-100:#f8f9fa; +--bs-gray-200:#e9ecef; +--bs-gray-300:#dee2e6; +--bs-gray-400:#ced4da; +--bs-gray-500:#adb5bd; +--bs-gray-600:#6c757d; +--bs-gray-700:#495057; +--bs-gray-800:#343a40; +--bs-gray-900:#212529; +--bs-primary:#0d6efd; +--bs-secondary:#6c757d; +--bs-success:#198754; +--bs-info:#0dcaf0; +--bs-warning:#ffc107; +--bs-danger:#dc3545; +--bs-light:#f8f9fa; +--bs-dark:#212529; +--bs-primary-rgb:13,110,253; +--bs-secondary-rgb:108,117,125; +--bs-success-rgb:25,135,84; +--bs-info-rgb:13,202,240; +--bs-warning-rgb:255,193,7; +--bs-danger-rgb:220,53,69; +--bs-light-rgb:248,249,250; +--bs-dark-rgb:33,37,41; +--bs-primary-text:#0a58ca; +--bs-secondary-text:#6c757d; +--bs-success-text:#146c43; +--bs-info-text:#087990; +--bs-warning-text:#997404; +--bs-danger-text:#b02a37; +--bs-light-text:#6c757d; +--bs-dark-text:#495057; +--bs-primary-bg-subtle:#cfe2ff; +--bs-secondary-bg-subtle:#f8f9fa; +--bs-success-bg-subtle:#d1e7dd; +--bs-info-bg-subtle:#cff4fc; +--bs-warning-bg-subtle:#fff3cd; +--bs-danger-bg-subtle:#f8d7da; +--bs-light-bg-subtle:#fcfcfd; +--bs-dark-bg-subtle:#ced4da; +--bs-primary-border-subtle:#9ec5fe; +--bs-secondary-border-subtle:#e9ecef; +--bs-success-border-subtle:#a3cfbb; +--bs-info-border-subtle:#9eeaf9; +--bs-warning-border-subtle:#ffe69c; +--bs-danger-border-subtle:#f1aeb5; +--bs-light-border-subtle:#e9ecef; +--bs-dark-border-subtle:#adb5bd; +--bs-white-rgb:255,255,255; +--bs-black-rgb:0,0,0; +--bs-body-color-rgb:33,37,41; +--bs-body-bg-rgb:255,255,255; +--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; +--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; +--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); +--bs-body-font-family:var(--bs-font-sans-serif); +--bs-body-font-size:1rem; +--bs-body-font-weight:400; +--bs-body-line-height:1.5; +--bs-body-color:#212529; +--bs-emphasis-color:#000; +--bs-emphasis-color-rgb:0,0,0; +--bs-secondary-color:rgba(33, 37, 41, 0.75); +--bs-secondary-color-rgb:33,37,41; +--bs-secondary-bg:#e9ecef; +--bs-secondary-bg-rgb:233,236,239; +--bs-tertiary-color:rgba(33, 37, 41, 0.5); +--bs-tertiary-color-rgb:33,37,41; +--bs-tertiary-bg:#f8f9fa; +--bs-tertiary-bg-rgb:248,249,250; +--bs-body-bg:#fff; +--bs-body-bg-rgb:255,255,255; +--bs-link-color:#0d6efd; +--bs-link-color-rgb:13,110,253; +--bs-link-decoration:underline; +--bs-link-hover-color:#0a58ca; +--bs-link-hover-color-rgb:10,88,202; +--bs-code-color:#d63384; +--bs-highlight-bg:#fff3cd; +--bs-border-width:1px; +--bs-border-style:solid; +--bs-border-color:#dee2e6; +--bs-border-color-translucent:rgba(0, 0, 0, 0.175); +--bs-border-radius:0.375rem; +--bs-border-radius-sm:0.25rem; +--bs-border-radius-lg:0.5rem; +--bs-border-radius-xl:1rem; +--bs-border-radius-2xl:2rem; +--bs-border-radius-pill:50rem; +--bs-box-shadow:0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.15); +--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(var(--bs-body-color-rgb), 0.075); +--bs-box-shadow-lg:0 1rem 3rem rgba(var(--bs-body-color-rgb), 0.175); +--bs-box-shadow-inset:inset 0 1px 2px rgba(var(--bs-body-color-rgb), 0.075); +--bs-emphasis-color:#000; +--bs-form-control-bg:var(--bs-body-bg); +--bs-form-control-disabled-bg:var(--bs-secondary-bg); +--bs-highlight-bg:#fff3cd; +--bs-breakpoint-xs:0; +--bs-breakpoint-sm:576px; +--bs-breakpoint-md:768px; +--bs-breakpoint-lg:992px; +--bs-breakpoint-xl:1200px; +--bs-breakpoint-xxl:1400px}[data-bs-theme=dark]{--bs-body-color:#adb5bd; +--bs-body-color-rgb:173,181,189; +--bs-body-bg:#212529; +--bs-body-bg-rgb:33,37,41; +--bs-emphasis-color:#f8f9fa; +--bs-emphasis-color-rgb:248,249,250; +--bs-secondary-color:rgba(173, 181, 189, 0.75); +--bs-secondary-color-rgb:173,181,189; +--bs-secondary-bg:#343a40; +--bs-secondary-bg-rgb:52,58,64; +--bs-tertiary-color:rgba(173, 181, 189, 0.5); +--bs-tertiary-color-rgb:173,181,189; +--bs-tertiary-bg:#2b3035; +--bs-tertiary-bg-rgb:43,48,53; +--bs-emphasis-color:#fff; +--bs-primary-text:#6ea8fe; +--bs-secondary-text:#dee2e6; +--bs-success-text:#75b798; +--bs-info-text:#6edff6; +--bs-warning-text:#ffda6a; +--bs-danger-text:#ea868f; +--bs-light-text:#f8f9fa; +--bs-dark-text:#dee2e6; +--bs-primary-bg-subtle:#031633; +--bs-secondary-bg-subtle:#212529; +--bs-success-bg-subtle:#051b11; +--bs-info-bg-subtle:#032830; +--bs-warning-bg-subtle:#332701; +--bs-danger-bg-subtle:#2c0b0e; +--bs-light-bg-subtle:#343a40; +--bs-dark-bg-subtle:#1a1d20; +--bs-primary-border-subtle:#084298; +--bs-secondary-border-subtle:#495057; +--bs-success-border-subtle:#0f5132; +--bs-info-border-subtle:#055160; +--bs-warning-border-subtle:#664d03; +--bs-danger-border-subtle:#842029; +--bs-light-border-subtle:#495057; +--bs-dark-border-subtle:#343a40; +--bs-heading-color:#fff; +--bs-link-color:#6ea8fe; +--bs-link-hover-color:#9ec5fe; +--bs-link-color-rgb:110,168,254; +--bs-link-hover-color-rgb:158,197,254; +--bs-code-color:#e685b5; +--bs-border-color:#495057; +--bs-border-color-translucent:rgba(255, 255, 255, 0.15)}*,::after,::before{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:transparent}hr{margin:1rem 0; +color:inherit; +border:0; +border-top:var(--bs-border-width) solid; +opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0; +margin-bottom:.5rem; +font-weight:500; +line-height:1.2; +color:var(--bs-heading-color,inherit)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.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]{-webkit-text-decoration:underline dotted; +text-decoration:underline dotted; +cursor:help; +-webkit-text-decoration-skip-ink:none; +text-decoration-skip-ink:none}address{margin-bottom:1rem; +font-style:normal; +line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0; +margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem; +margin-left:0}blockquote{margin:0 0 1rem}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}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}code,kbd,pre,samp{font-family:var(--bs-font-monospace); +font-size:1em}pre{display:block; +margin-top:0; +margin-bottom:1rem; +overflow:auto; +font-size:.875em}pre code{font-size:inherit; +color:inherit; +word-break:normal}code{font-size:.875em; +color:var(--bs-code-color); +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}tbody,td,tfoot,th,thead,tr{border-color:inherit; +border-style:solid; +border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,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}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button: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-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px; +-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit; +-webkit-appearance:button}::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:#6c757d}.blockquote-footer::before{content:"— "}.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-lg,.container-md,.container-sm,.container-xl,.container-xxl{--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,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem; +--bs-gutter-y:0; +display:flex; +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; +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)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto; +width:auto}.row-cols-1>*{flex:0 0 auto; +width:100%}.row-cols-2>*{flex:0 0 auto; +width:50%}.row-cols-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-4>*{flex:0 0 auto; +width:25%}.row-cols-5>*{flex:0 0 auto; +width:20%}.row-cols-6>*{flex:0 0 auto; +width:16.6666666667%}.col-auto{flex:0 0 auto; +width:auto}.col-1{flex:0 0 auto; +width:8.33333333%}.col-2{flex:0 0 auto; +width:16.66666667%}.col-3{flex:0 0 auto; +width:25%}.col-4{flex:0 0 auto; +width:33.33333333%}.col-5{flex:0 0 auto; +width:41.66666667%}.col-6{flex:0 0 auto; +width:50%}.col-7{flex:0 0 auto; +width:58.33333333%}.col-8{flex:0 0 auto; +width:66.66666667%}.col-9{flex:0 0 auto; +width:75%}.col-10{flex:0 0 auto; +width:83.33333333%}.col-11{flex:0 0 auto; +width:91.66666667%}.col-12{flex:0 0 auto; +width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.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%}.row-cols-sm-auto>*{flex:0 0 auto; +width:auto}.row-cols-sm-1>*{flex:0 0 auto; +width:100%}.row-cols-sm-2>*{flex:0 0 auto; +width:50%}.row-cols-sm-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto; +width:25%}.row-cols-sm-5>*{flex:0 0 auto; +width:20%}.row-cols-sm-6>*{flex:0 0 auto; +width:16.6666666667%}.col-sm-auto{flex:0 0 auto; +width:auto}.col-sm-1{flex:0 0 auto; +width:8.33333333%}.col-sm-2{flex:0 0 auto; +width:16.66666667%}.col-sm-3{flex:0 0 auto; +width:25%}.col-sm-4{flex:0 0 auto; +width:33.33333333%}.col-sm-5{flex:0 0 auto; +width:41.66666667%}.col-sm-6{flex:0 0 auto; +width:50%}.col-sm-7{flex:0 0 auto; +width:58.33333333%}.col-sm-8{flex:0 0 auto; +width:66.66666667%}.col-sm-9{flex:0 0 auto; +width:75%}.col-sm-10{flex:0 0 auto; +width:83.33333333%}.col-sm-11{flex:0 0 auto; +width:91.66666667%}.col-sm-12{flex:0 0 auto; +width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.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:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.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%}.row-cols-md-auto>*{flex:0 0 auto; +width:auto}.row-cols-md-1>*{flex:0 0 auto; +width:100%}.row-cols-md-2>*{flex:0 0 auto; +width:50%}.row-cols-md-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto; +width:25%}.row-cols-md-5>*{flex:0 0 auto; +width:20%}.row-cols-md-6>*{flex:0 0 auto; +width:16.6666666667%}.col-md-auto{flex:0 0 auto; +width:auto}.col-md-1{flex:0 0 auto; +width:8.33333333%}.col-md-2{flex:0 0 auto; +width:16.66666667%}.col-md-3{flex:0 0 auto; +width:25%}.col-md-4{flex:0 0 auto; +width:33.33333333%}.col-md-5{flex:0 0 auto; +width:41.66666667%}.col-md-6{flex:0 0 auto; +width:50%}.col-md-7{flex:0 0 auto; +width:58.33333333%}.col-md-8{flex:0 0 auto; +width:66.66666667%}.col-md-9{flex:0 0 auto; +width:75%}.col-md-10{flex:0 0 auto; +width:83.33333333%}.col-md-11{flex:0 0 auto; +width:91.66666667%}.col-md-12{flex:0 0 auto; +width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.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:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.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%}.row-cols-lg-auto>*{flex:0 0 auto; +width:auto}.row-cols-lg-1>*{flex:0 0 auto; +width:100%}.row-cols-lg-2>*{flex:0 0 auto; +width:50%}.row-cols-lg-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto; +width:25%}.row-cols-lg-5>*{flex:0 0 auto; +width:20%}.row-cols-lg-6>*{flex:0 0 auto; +width:16.6666666667%}.col-lg-auto{flex:0 0 auto; +width:auto}.col-lg-1{flex:0 0 auto; +width:8.33333333%}.col-lg-2{flex:0 0 auto; +width:16.66666667%}.col-lg-3{flex:0 0 auto; +width:25%}.col-lg-4{flex:0 0 auto; +width:33.33333333%}.col-lg-5{flex:0 0 auto; +width:41.66666667%}.col-lg-6{flex:0 0 auto; +width:50%}.col-lg-7{flex:0 0 auto; +width:58.33333333%}.col-lg-8{flex:0 0 auto; +width:66.66666667%}.col-lg-9{flex:0 0 auto; +width:75%}.col-lg-10{flex:0 0 auto; +width:83.33333333%}.col-lg-11{flex:0 0 auto; +width:91.66666667%}.col-lg-12{flex:0 0 auto; +width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.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:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.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%}.row-cols-xl-auto>*{flex:0 0 auto; +width:auto}.row-cols-xl-1>*{flex:0 0 auto; +width:100%}.row-cols-xl-2>*{flex:0 0 auto; +width:50%}.row-cols-xl-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto; +width:25%}.row-cols-xl-5>*{flex:0 0 auto; +width:20%}.row-cols-xl-6>*{flex:0 0 auto; +width:16.6666666667%}.col-xl-auto{flex:0 0 auto; +width:auto}.col-xl-1{flex:0 0 auto; +width:8.33333333%}.col-xl-2{flex:0 0 auto; +width:16.66666667%}.col-xl-3{flex:0 0 auto; +width:25%}.col-xl-4{flex:0 0 auto; +width:33.33333333%}.col-xl-5{flex:0 0 auto; +width:41.66666667%}.col-xl-6{flex:0 0 auto; +width:50%}.col-xl-7{flex:0 0 auto; +width:58.33333333%}.col-xl-8{flex:0 0 auto; +width:66.66666667%}.col-xl-9{flex:0 0 auto; +width:75%}.col-xl-10{flex:0 0 auto; +width:83.33333333%}.col-xl-11{flex:0 0 auto; +width:91.66666667%}.col-xl-12{flex:0 0 auto; +width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.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:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.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%}.row-cols-xxl-auto>*{flex:0 0 auto; +width:auto}.row-cols-xxl-1>*{flex:0 0 auto; +width:100%}.row-cols-xxl-2>*{flex:0 0 auto; +width:50%}.row-cols-xxl-3>*{flex:0 0 auto; +width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto; +width:25%}.row-cols-xxl-5>*{flex:0 0 auto; +width:20%}.row-cols-xxl-6>*{flex:0 0 auto; +width:16.6666666667%}.col-xxl-auto{flex:0 0 auto; +width:auto}.col-xxl-1{flex:0 0 auto; +width:8.33333333%}.col-xxl-2{flex:0 0 auto; +width:16.66666667%}.col-xxl-3{flex:0 0 auto; +width:25%}.col-xxl-4{flex:0 0 auto; +width:33.33333333%}.col-xxl-5{flex:0 0 auto; +width:41.66666667%}.col-xxl-6{flex:0 0 auto; +width:50%}.col-xxl-7{flex:0 0 auto; +width:58.33333333%}.col-xxl-8{flex:0 0 auto; +width:66.66666667%}.col-xxl-9{flex:0 0 auto; +width:75%}.col-xxl-10{flex:0 0 auto; +width:83.33333333%}.col-xxl-11{flex:0 0 auto; +width:91.66666667%}.col-xxl-12{flex:0 0 auto; +width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.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:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.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:var(--bs-body-color); +--bs-table-bg:transparent; +--bs-table-border-color:var(--bs-border-color); +--bs-table-accent-bg:transparent; +--bs-table-striped-color:var(--bs-body-color); +--bs-table-striped-bg:rgba(0, 0, 0, 0.05); +--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, 0, 0, 0.075); +width:100%; +margin-bottom:1rem; +color:var(--bs-table-color); +vertical-align:top; +border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem; +background-color:var(--bs-table-bg); +border-bottom-width:var(--bs-border-width); +box-shadow:inset 0 0 0 9999px 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(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg); +color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-accent-bg:var(--bs-table-striped-bg); +color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg); +color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg); +color:var(--bs-table-hover-color)}.table-primary{--bs-table-color:#000; +--bs-table-bg:#cfe2ff; +--bs-table-border-color:#bacbe6; +--bs-table-striped-bg:#c5d7f2; +--bs-table-striped-color:#000; +--bs-table-active-bg:#bacbe6; +--bs-table-active-color:#000; +--bs-table-hover-bg:#bfd1ec; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000; +--bs-table-bg:#e2e3e5; +--bs-table-border-color:#cbccce; +--bs-table-striped-bg:#d7d8da; +--bs-table-striped-color:#000; +--bs-table-active-bg:#cbccce; +--bs-table-active-color:#000; +--bs-table-hover-bg:#d1d2d4; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000; +--bs-table-bg:#d1e7dd; +--bs-table-border-color:#bcd0c7; +--bs-table-striped-bg:#c7dbd2; +--bs-table-striped-color:#000; +--bs-table-active-bg:#bcd0c7; +--bs-table-active-color:#000; +--bs-table-hover-bg:#c1d6cc; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000; +--bs-table-bg:#cff4fc; +--bs-table-border-color:#badce3; +--bs-table-striped-bg:#c5e8ef; +--bs-table-striped-color:#000; +--bs-table-active-bg:#badce3; +--bs-table-active-color:#000; +--bs-table-hover-bg:#bfe2e9; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000; +--bs-table-bg:#fff3cd; +--bs-table-border-color:#e6dbb9; +--bs-table-striped-bg:#f2e7c3; +--bs-table-striped-color:#000; +--bs-table-active-bg:#e6dbb9; +--bs-table-active-color:#000; +--bs-table-hover-bg:#ece1be; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000; +--bs-table-bg:#f8d7da; +--bs-table-border-color:#dfc2c4; +--bs-table-striped-bg:#eccccf; +--bs-table-striped-color:#000; +--bs-table-active-bg:#dfc2c4; +--bs-table-active-color:#000; +--bs-table-hover-bg:#e5c7ca; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000; +--bs-table-bg:#f8f9fa; +--bs-table-border-color:#dfe0e1; +--bs-table-striped-bg:#ecedee; +--bs-table-striped-color:#000; +--bs-table-active-bg:#dfe0e1; +--bs-table-active-color:#000; +--bs-table-hover-bg:#e5e6e7; +--bs-table-hover-color:#000; +color:var(--bs-table-color); +border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff; +--bs-table-bg:#212529; +--bs-table-border-color:#373b3e; +--bs-table-striped-bg:#2c3034; +--bs-table-striped-color:#fff; +--bs-table-active-bg:#373b3e; +--bs-table-active-color:#fff; +--bs-table-hover-bg:#323539; +--bs-table-hover-color:#fff; +color: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{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:var(--bs-secondary-color)}.form-control{display:block; +width:100%; +padding:.375rem .75rem; +font-size:1rem; +font-weight:400; +line-height:1.5; +color:var(--bs-body-color); +background-color:var(--bs-form-control-bg); +background-clip:padding-box; +border:var(--bs-border-width) solid var(--bs-border-color); +-webkit-appearance:none; +-moz-appearance:none; +appearance:none; +border-radius:.375rem; +transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color); +background-color:var(--bs-form-control-bg); +border-color:#86b7fe; +outline:0; +box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-webkit-datetime-edit{display:block; +padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color); +opacity:1}.form-control::placeholder{color:var(--bs-secondary-color); +opacity:1}.form-control:disabled{background-color:var(--bs-form-control-disabled-bg); +opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem; +margin:-.375rem -.75rem; +-webkit-margin-end:.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; +-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem; +margin:-.375rem -.75rem; +-webkit-margin-end:.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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none; +transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.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-lg,.form-control-plaintext.form-control-sm{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:.25rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem; +margin:-.25rem -.5rem; +-webkit-margin-end:.5rem; +margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem; +margin:-.25rem -.5rem; +-webkit-margin-end:.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:.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem; +margin:-.5rem -1rem; +-webkit-margin-end:1rem; +margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem; +margin:-.5rem -1rem; +-webkit-margin-end: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:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.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='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); +display:block; +width:100%; +padding:.375rem 2.25rem .375rem .75rem; +-moz-padding-start:calc(0.75rem - 3px); +font-size:1rem; +font-weight:400; +line-height:1.5; +color:var(--bs-body-color); +background-color:var(--bs-form-control-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 var(--bs-border-color); +border-radius:.375rem; +transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out; +-webkit-appearance:none; +-moz-appearance:none; +appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe; +outline:0; +box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem; +background-image:none}.form-select:disabled{background-color:var(--bs-form-control-disabled-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:.25rem}.form-select-lg{padding-top:.5rem; +padding-bottom:.5rem; +padding-left:1rem; +font-size:1.25rem; +border-radius:.5rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23adb5bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block; +min-height:1.5rem; +padding-left:1.5em; +margin-bottom:.125rem}.form-check .form-check-input{float:left; +margin-left:-1.5em}.form-check-reverse{padding-right:1.5em; +padding-left:0; +text-align:right}.form-check-reverse .form-check-input{float:right; +margin-right:-1.5em; +margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-form-control-bg); +width:1em; +height:1em; +margin-top:.25em; +vertical-align:top; +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); +-webkit-appearance:none; +-moz-appearance:none; +appearance:none; +-webkit-print-color-adjust:exact; +color-adjust:exact; +print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe; +outline:0; +box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd; +border-color:#0d6efd}.form-check-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]{--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{background-color:#0d6efd; +border-color:#0d6efd; +--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{pointer-events:none; +filter:none; +opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default; +opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); +width:2em; +margin-left:-2.5em; +background-image:var(--bs-form-switch-bg); +background-position:left center; +border-radius:2em; +transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%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; +background-color:transparent; +-webkit-appearance:none; +-moz-appearance:none; +appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem; +height:1rem; +margin-top:-.25rem; +background-color:#0d6efd; +border:0; +border-radius:1rem; +-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +-webkit-appearance:none; +appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none; +transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%; +height:.5rem; +color:transparent; +cursor:pointer; +background-color:var(--bs-tertiary-bg); +border-color:transparent; +border-radius:1rem}.form-range::-moz-range-thumb{width:1rem; +height:1rem; +background-color:#0d6efd; +border:0; +border-radius:1rem; +-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +-moz-appearance:none; +appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none; +transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%; +height:.5rem; +color:transparent; +cursor:pointer; +background-color: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::before:not(.form-control:disabled){position:absolute; +top:var(--bs-border-width); +left:var(--bs-border-width); +width:calc(100% - (calc(calc(.375em + .1875rem) + calc(.75em + .375rem)))); +height:1.875em; +content:""; +background-color:var(--bs-form-control-bg); +border-radius:.375rem}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2)); +line-height:1.25}.form-floating>label{position:absolute; +top:0; +left:0; +width:100%; +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 .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem; +padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem; +padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem; +padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem; +padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65; +transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65; +transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65; +transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label{color:#6c757d}.input-group{position:relative; +display:flex; +flex-wrap:wrap; +align-items:stretch; +width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative; +flex:1 1 auto; +width:1%; +min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative; +z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex; +align-items:center; +padding:.375rem .75rem; +font-size:1rem; +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 var(--bs-border-color); +border-radius:.375rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem; +font-size:1.25rem; +border-radius:.5rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem; +font-size:.875rem; +border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.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,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0; +border-bottom-right-radius:0}.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,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){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-success-text)}.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)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-success); +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='%23198754' 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)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-success); +box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.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)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-success)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select: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='%23198754' 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)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-success); +box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-success)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-success-text)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-success-text)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none; +width:100%; +margin-top:.25rem; +font-size:.875em; +color:var(--bs-danger-text)}.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)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-danger); +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='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); +background-repeat:no-repeat; +background-position:right calc(.375em + .1875rem) center; +background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-danger); +box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.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)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-danger)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select: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='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); +padding-right:4.125rem; +background-position:right .75rem center,center right 2.25rem; +background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-danger); +box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-danger)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-danger-text)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-danger-text)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem; +--bs-btn-padding-y:0.375rem; +--bs-btn-font-family: ; +--bs-btn-font-size:1rem; +--bs-btn-font-weight:400; +--bs-btn-line-height:1.5; +--bs-btn-color:#212529; +--bs-btn-bg:transparent; +--bs-btn-border-width:var(--bs-border-width); +--bs-btn-border-color:transparent; +--bs-btn-border-radius:0.375rem; +--bs-btn-hover-border-color:transparent; +--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075); +--bs-btn-disabled-opacity:0.65; +--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); +display:inline-block; +padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x); +font-family:var(--bs-btn-font-family); +font-size:var(--bs-btn-font-size); +font-weight:var(--bs-btn-font-weight); +line-height:var(--bs-btn-line-height); +color:var(--bs-btn-color); +text-align:center; +text-decoration:none; +vertical-align:middle; +cursor:pointer; +-webkit-user-select:none; +-moz-user-select:none; +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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color); +background-color:var(--bs-btn-hover-bg); +border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color); +background-color:var(--bs-btn-bg); +border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color); +background-color:var(--bs-btn-hover-bg); +border-color:var(--bs-btn-hover-border-color); +outline:0; +box-shadow:var(--bs-btn-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,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{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,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active: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-primary{--bs-btn-color:#fff; +--bs-btn-bg:#0d6efd; +--bs-btn-border-color:#0d6efd; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#0b5ed7; +--bs-btn-hover-border-color:#0a58ca; +--bs-btn-focus-shadow-rgb:49,132,253; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#0a58ca; +--bs-btn-active-border-color:#0a53be; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#fff; +--bs-btn-disabled-bg:#0d6efd; +--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff; +--bs-btn-bg:#6c757d; +--bs-btn-border-color:#6c757d; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#5c636a; +--bs-btn-hover-border-color:#565e64; +--bs-btn-focus-shadow-rgb:130,138,145; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#565e64; +--bs-btn-active-border-color:#51585e; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#fff; +--bs-btn-disabled-bg:#6c757d; +--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff; +--bs-btn-bg:#198754; +--bs-btn-border-color:#198754; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#157347; +--bs-btn-hover-border-color:#146c43; +--bs-btn-focus-shadow-rgb:60,153,110; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#146c43; +--bs-btn-active-border-color:#13653f; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#fff; +--bs-btn-disabled-bg:#198754; +--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000; +--bs-btn-bg:#0dcaf0; +--bs-btn-border-color:#0dcaf0; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#31d2f2; +--bs-btn-hover-border-color:#25cff2; +--bs-btn-focus-shadow-rgb:11,172,204; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#3dd5f3; +--bs-btn-active-border-color:#25cff2; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#000; +--bs-btn-disabled-bg:#0dcaf0; +--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000; +--bs-btn-bg:#ffc107; +--bs-btn-border-color:#ffc107; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#ffca2c; +--bs-btn-hover-border-color:#ffc720; +--bs-btn-focus-shadow-rgb:217,164,6; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#ffcd39; +--bs-btn-active-border-color:#ffc720; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#000; +--bs-btn-disabled-bg:#ffc107; +--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff; +--bs-btn-bg:#dc3545; +--bs-btn-border-color:#dc3545; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#bb2d3b; +--bs-btn-hover-border-color:#b02a37; +--bs-btn-focus-shadow-rgb:225,83,97; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#b02a37; +--bs-btn-active-border-color:#a52834; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#fff; +--bs-btn-disabled-bg:#dc3545; +--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000; +--bs-btn-bg:#f8f9fa; +--bs-btn-border-color:#f8f9fa; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#d3d4d5; +--bs-btn-hover-border-color:#c6c7c8; +--bs-btn-focus-shadow-rgb:211,212,213; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#c6c7c8; +--bs-btn-active-border-color:#babbbc; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#000; +--bs-btn-disabled-bg:#f8f9fa; +--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff; +--bs-btn-bg:#212529; +--bs-btn-border-color:#212529; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#424649; +--bs-btn-hover-border-color:#373b3e; +--bs-btn-focus-shadow-rgb:66,70,73; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#4d5154; +--bs-btn-active-border-color:#373b3e; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#fff; +--bs-btn-disabled-bg:#212529; +--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd; +--bs-btn-border-color:#0d6efd; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#0d6efd; +--bs-btn-hover-border-color:#0d6efd; +--bs-btn-focus-shadow-rgb:13,110,253; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#0d6efd; +--bs-btn-active-border-color:#0d6efd; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#0d6efd; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#0d6efd; +--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d; +--bs-btn-border-color:#6c757d; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#6c757d; +--bs-btn-hover-border-color:#6c757d; +--bs-btn-focus-shadow-rgb:108,117,125; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#6c757d; +--bs-btn-active-border-color:#6c757d; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#6c757d; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#6c757d; +--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754; +--bs-btn-border-color:#198754; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#198754; +--bs-btn-hover-border-color:#198754; +--bs-btn-focus-shadow-rgb:25,135,84; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#198754; +--bs-btn-active-border-color:#198754; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#198754; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#198754; +--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0; +--bs-btn-border-color:#0dcaf0; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#0dcaf0; +--bs-btn-hover-border-color:#0dcaf0; +--bs-btn-focus-shadow-rgb:13,202,240; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#0dcaf0; +--bs-btn-active-border-color:#0dcaf0; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#0dcaf0; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#0dcaf0; +--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107; +--bs-btn-border-color:#ffc107; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#ffc107; +--bs-btn-hover-border-color:#ffc107; +--bs-btn-focus-shadow-rgb:255,193,7; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#ffc107; +--bs-btn-active-border-color:#ffc107; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#ffc107; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#ffc107; +--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545; +--bs-btn-border-color:#dc3545; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#dc3545; +--bs-btn-hover-border-color:#dc3545; +--bs-btn-focus-shadow-rgb:220,53,69; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#dc3545; +--bs-btn-active-border-color:#dc3545; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#dc3545; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#dc3545; +--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa; +--bs-btn-border-color:#f8f9fa; +--bs-btn-hover-color:#000; +--bs-btn-hover-bg:#f8f9fa; +--bs-btn-hover-border-color:#f8f9fa; +--bs-btn-focus-shadow-rgb:248,249,250; +--bs-btn-active-color:#000; +--bs-btn-active-bg:#f8f9fa; +--bs-btn-active-border-color:#f8f9fa; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#f8f9fa; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#f8f9fa; +--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529; +--bs-btn-border-color:#212529; +--bs-btn-hover-color:#fff; +--bs-btn-hover-bg:#212529; +--bs-btn-hover-border-color:#212529; +--bs-btn-focus-shadow-rgb:33,37,41; +--bs-btn-active-color:#fff; +--bs-btn-active-bg:#212529; +--bs-btn-active-border-color:#212529; +--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125); +--bs-btn-disabled-color:#212529; +--bs-btn-disabled-bg:transparent; +--bs-btn-disabled-border-color:#212529; +--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:#6c757d; +--bs-btn-disabled-border-color:transparent; +--bs-btn-box-shadow:none; +--bs-btn-focus-shadow-rgb:49,132,253; +text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem; +--bs-btn-padding-x:1rem; +--bs-btn-font-size:1.25rem; +--bs-btn-border-radius:0.5rem}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem; +--bs-btn-padding-x:0.5rem; +--bs-btn-font-size:0.875rem; +--bs-btn-border-radius:0.25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0; +overflow:hidden; +transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0; +height:auto; +transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-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:0.5rem; +--bs-dropdown-spacer:0.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:0.375rem; +--bs-dropdown-border-width:var(--bs-border-width); +--bs-dropdown-inner-border-radius:calc(0.375rem - var(--bs-border-width)); +--bs-dropdown-divider-bg:var(--bs-border-color-translucent); +--bs-dropdown-divider-margin-y:0.5rem; +--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.15); +--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:#0d6efd; +--bs-dropdown-link-disabled-color:#adb5bd; +--bs-dropdown-item-padding-x:1rem; +--bs-dropdown-item-padding-y:0.25rem; +--bs-dropdown-header-color:#6c757d; +--bs-dropdown-header-padding-x:1rem; +--bs-dropdown-header-padding-y:0.5rem; +position:absolute; +z-index:var(--bs-dropdown-zindex); +display:none; +min-width:var(--bs-dropdown-min-width); +padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); +margin:0; +font-size:var(--bs-dropdown-font-size); +color:var(--bs-dropdown-color); +text-align:left; +list-style:none; +background-color:var(--bs-dropdown-bg); +background-clip:padding-box; +border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); +border-radius:var(--bs-dropdown-border-radius)}.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; +white-space:nowrap; +background-color:transparent; +border:0; +border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{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:#343a40; +--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:#0d6efd; +--bs-dropdown-link-disabled-color:#adb5bd; +--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative; +display:inline-flex; +vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative; +flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex; +flex-wrap:wrap; +justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0; +border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0; +border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem; +padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem; +padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem; +padding-left:.75rem}.btn-group-vertical{flex-direction:column; +align-items:flex-start; +justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0; +border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0; +border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem; +--bs-nav-link-padding-y:0.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; +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; +transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.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)); +background:0 0; +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:focus,.nav-tabs .nav-link:hover{isolation:isolate; +border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color); +background-color:transparent; +border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color); +background-color:var(--bs-nav-tabs-link-active-bg); +border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width)); +border-top-left-radius:0; +border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:0.375rem; +--bs-nav-pills-link-active-color:#fff; +--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{background:0 0; +border:0; +border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color); +background-color:transparent; +border-color:transparent}.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-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto; +text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0; +flex-grow:1; +text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0; +--bs-navbar-padding-y:0.5rem; +--bs-navbar-color:rgba(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:0.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:0.5rem; +--bs-navbar-toggler-padding-y:0.25rem; +--bs-navbar-toggler-padding-x:0.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%2833, 37, 41, 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:0.375rem; +--bs-navbar-toggler-focus-width:0.25rem; +--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out; +position:relative; +display:flex; +flex-wrap:wrap; +align-items:center; +justify-content:space-between; +padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex; +flex-wrap:inherit; +align-items:center; +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; +white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0; +--bs-nav-link-padding-y:0.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; +flex-direction:column; +padding-left:0; +margin-bottom:0; +list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{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:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%; +flex-grow:1; +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; +justify-content:flex-start}.navbar-expand-sm .navbar-nav{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; +flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap; +justify-content:flex-start}.navbar-expand-md .navbar-nav{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; +flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap; +justify-content:flex-start}.navbar-expand-lg .navbar-nav{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; +flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap; +justify-content:flex-start}.navbar-expand-xl .navbar-nav{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; +flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap; +justify-content:flex-start}.navbar-expand-xxl .navbar-nav{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; +flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}}.navbar-expand{flex-wrap:nowrap; +justify-content:flex-start}.navbar-expand .navbar-nav{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; +flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static; +z-index:auto; +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; +flex-grow:0; +padding:0; +overflow-y:visible}.navbar-dark{--bs-navbar-color:rgba(255, 255, 255, 0.55); +--bs-navbar-hover-color:rgba(255, 255, 255, 0.75); +--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25); +--bs-navbar-active-color:#fff; +--bs-navbar-brand-color:#fff; +--bs-navbar-brand-hover-color:#fff; +--bs-navbar-toggler-border-color:rgba(255, 255, 255, 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.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar{--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.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem; +--bs-card-spacer-x:1rem; +--bs-card-title-spacer-y:0.5rem; +--bs-card-title-color: ; +--bs-card-subtitle-color: ; +--bs-card-border-width:var(--bs-border-width); +--bs-card-border-color:var(--bs-border-color-translucent); +--bs-card-border-radius:var(--bs-border-radius); +--bs-card-box-shadow: ; +--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width))); +--bs-card-cap-padding-y:0.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:0.75rem; +position:relative; +display:flex; +flex-direction:column; +min-width:0; +height:var(--bs-card-height); +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; +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-bottom,.card-img-top{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; +flex-flow:row wrap}.card-group>.card{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-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{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-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{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='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +--bs-accordion-btn-icon-width:1.25rem; +--bs-accordion-btn-icon-transform:rotate(-180deg); +--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out; +--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230a58ca'%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:#86b7fe; +--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25); +--bs-accordion-body-padding-x:1.25rem; +--bs-accordion-body-padding-y:1rem; +--bs-accordion-active-color:var(--bs-primary-text); +--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative; +display:flex; +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; +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='%236ea8fe'%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='%236ea8fe'%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:0.5rem; +--bs-breadcrumb-item-active-color:var(--bs-secondary-color); +display:flex; +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, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem; +--bs-pagination-padding-y:0.375rem; +--bs-pagination-font-size:1rem; +--bs-pagination-color: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 0.25rem rgba(13, 110, 253, 0.25); +--bs-pagination-active-color:#fff; +--bs-pagination-active-bg:#0d6efd; +--bs-pagination-active-border-color:#0d6efd; +--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; +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; +background-color:var(--bs-pagination-bg); +border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); +transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2; +color:var(--bs-pagination-hover-color); +background-color:var(--bs-pagination-hover-bg); +border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3; +color:var(--bs-pagination-focus-color); +background-color:var(--bs-pagination-focus-bg); +outline:0; +box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3; +color:var(--bs-pagination-active-color); +background-color:var(--bs-pagination-active-bg); +border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{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:0.75rem; +--bs-pagination-font-size:1.25rem; +--bs-pagination-border-radius:0.5rem}.pagination-sm{--bs-pagination-padding-x:0.5rem; +--bs-pagination-padding-y:0.25rem; +--bs-pagination-font-size:0.875rem; +--bs-pagination-border-radius:0.25rem}.badge{--bs-badge-padding-x:0.65em; +--bs-badge-padding-y:0.35em; +--bs-badge-font-size:0.75em; +--bs-badge-font-weight:700; +--bs-badge-color:#fff; +--bs-badge-border-radius:0.375rem; +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:0.375rem; +--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-primary{--bs-alert-color:var(--bs-primary-text); +--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)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text); +--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)}.alert-success{--bs-alert-color:var(--bs-success-text); +--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)}.alert-info{--bs-alert-color:var(--bs-info-text); +--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)}.alert-warning{--bs-alert-color:var(--bs-warning-text); +--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)}.alert-danger{--bs-alert-color:var(--bs-danger-text); +--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)}.alert-light{--bs-alert-color:var(--bs-light-text); +--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)}.alert-dark{--bs-alert-color:var(--bs-dark-text); +--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)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem; +--bs-progress-font-size:0.75rem; +--bs-progress-bg: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:#0d6efd; +--bs-progress-bar-transition:width 0.6s ease; +display: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; +flex-direction:column; +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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.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:0.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:#0d6efd; +--bs-list-group-active-border-color:#0d6efd; +display:flex; +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:focus,.list-group-item-action:hover{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; +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}.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}.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}.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}.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}.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}.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-primary{--bs-list-group-color:var(--bs-primary-text); +--bs-list-group-bg:var(--bs-primary-bg-subtle); +--bs-list-group-border-color:var(--bs-primary-border-subtle)}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle)}.list-group-item-primary.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-primary-text); +--bs-list-group-active-border-color:var(--bs-primary-text)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text); +--bs-list-group-bg:var(--bs-secondary-bg-subtle); +--bs-list-group-border-color:var(--bs-secondary-border-subtle)}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle)}.list-group-item-secondary.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-secondary-text); +--bs-list-group-active-border-color:var(--bs-secondary-text)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text); +--bs-list-group-bg:var(--bs-success-bg-subtle); +--bs-list-group-border-color:var(--bs-success-border-subtle)}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-success-border-subtle)}.list-group-item-success.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-success-text); +--bs-list-group-active-border-color:var(--bs-success-text)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text); +--bs-list-group-bg:var(--bs-info-bg-subtle); +--bs-list-group-border-color:var(--bs-info-border-subtle)}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-info-border-subtle)}.list-group-item-info.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-info-text); +--bs-list-group-active-border-color:var(--bs-info-text)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text); +--bs-list-group-bg:var(--bs-warning-bg-subtle); +--bs-list-group-border-color:var(--bs-warning-border-subtle)}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle)}.list-group-item-warning.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-warning-text); +--bs-list-group-active-border-color:var(--bs-warning-text)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text); +--bs-list-group-bg:var(--bs-danger-bg-subtle); +--bs-list-group-border-color:var(--bs-danger-border-subtle)}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle)}.list-group-item-danger.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-danger-text); +--bs-list-group-active-border-color:var(--bs-danger-text)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text); +--bs-list-group-bg:var(--bs-light-bg-subtle); +--bs-list-group-border-color:var(--bs-light-border-subtle)}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-light-border-subtle)}.list-group-item-light.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-light-text); +--bs-list-group-active-border-color:var(--bs-light-text)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text); +--bs-list-group-bg:var(--bs-dark-bg-subtle); +--bs-list-group-border-color:var(--bs-dark-border-subtle)}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{--bs-list-group-action-hover-color:var(--bs-emphasis-color); +--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle)}.list-group-item-dark.list-group-item-action:active{--bs-list-group-active-color:var(--bs-emphasis-color); +--bs-list-group-active-bg:var(--bs-dark-text); +--bs-list-group-active-border-color:var(--bs-dark-text)}.btn-close{--bs-btn-close-color:#000; +--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); +--bs-btn-close-opacity:0.5; +--bs-btn-close-hover-opacity:0.75; +--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25); +--bs-btn-close-focus-opacity:1; +--bs-btn-close-disabled-opacity:0.25; +--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%); +box-sizing:content-box; +width:1em; +height:1em; +padding:.25em .25em; +color:var(--bs-btn-close-color); +background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat; +border:0; +border-radius:.375rem; +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; +-webkit-user-select:none; +-moz-user-select:none; +user-select:none; +opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090; +--bs-toast-padding-x:0.75rem; +--bs-toast-padding-y:0.5rem; +--bs-toast-spacing:1.5rem; +--bs-toast-max-width:350px; +--bs-toast-font-size:0.875rem; +--bs-toast-color: ; +--bs-toast-bg:rgba(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:-webkit-max-content; +width:-moz-max-content; +width:max-content; +max-width:100%; +pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex; +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:0.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:0 0.125rem 0.25rem rgba(var(--bs-body-color-rgb), 0.075); +--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:1rem 1rem; +--bs-modal-header-border-color:var(--bs-border-color); +--bs-modal-header-border-width:var(--bs-border-width); +--bs-modal-title-line-height:1.5; +--bs-modal-footer-gap:0.5rem; +--bs-modal-footer-bg: ; +--bs-modal-footer-border-color:var(--bs-border-color); +--bs-modal-footer-border-width:var(--bs-border-width); +position:fixed; +top:0; +left:0; +z-index:var(--bs-modal-zindex); +display:none; +width:100%; +height:100%; +overflow-x:hidden; +overflow-y:auto; +outline:0}.modal-dialog{position:relative; +width:auto; +margin:var(--bs-modal-margin); +pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out; +transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%; +overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex; +align-items:center; +min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative; +display:flex; +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:#000; +--bs-backdrop-opacity:0.5; +position:fixed; +top:0; +left:0; +z-index:var(--bs-backdrop-zindex); +width:100vw; +height:100vh; +background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex; +flex-shrink:0; +align-items:center; +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; +padding:var(--bs-modal-padding)}.modal-footer{display:flex; +flex-shrink:0; +flex-wrap:wrap; +align-items:center; +justify-content:flex-end; +padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5); +background-color:var(--bs-modal-footer-bg); +border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); +border-bottom-right-radius:var(--bs-modal-inner-border-radius); +border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem; +--bs-modal-box-shadow:0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.15)}.modal-dialog{max-width:var(--bs-modal-width); +margin-right:auto; +margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw; +max-width:none; +height:100%; +margin:0}.modal-fullscreen .modal-content{height:100%; +border:0; +border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{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-footer,.modal-fullscreen-sm-down .modal-header{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-footer,.modal-fullscreen-md-down .modal-header{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-footer,.modal-fullscreen-lg-down .modal-header{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-footer,.modal-fullscreen-xl-down .modal-header{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-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080; +--bs-tooltip-max-width:200px; +--bs-tooltip-padding-x:0.5rem; +--bs-tooltip-padding-y:0.25rem; +--bs-tooltip-margin: ; +--bs-tooltip-font-size:0.875rem; +--bs-tooltip-color:var(--bs-body-bg); +--bs-tooltip-bg:var(--bs-emphasis-color); +--bs-tooltip-border-radius:var(--bs-border-radius); +--bs-tooltip-opacity:0.9; +--bs-tooltip-arrow-width:0.8rem; +--bs-tooltip-arrow-height:0.4rem; +z-index:var(--bs-tooltip-zindex); +display:block; +padding:var(--bs-tooltip-arrow-height); +margin:var(--bs-tooltip-margin); +font-family:var(--bs-font-sans-serif); +font-style:normal; +font-weight:400; +line-height:1.5; +text-align:left; +text-align:start; +text-decoration:none; +text-shadow:none; +text-transform:none; +letter-spacing:normal; +word-break:normal; +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-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-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-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0; +width:var(--bs-tooltip-arrow-height); +height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .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-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-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-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0; +width:var(--bs-tooltip-arrow-height); +height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px; +border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); +border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width); +padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); +color:var(--bs-tooltip-color); +text-align:center; +background-color:var(--bs-tooltip-bg); +border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070; +--bs-popover-max-width:276px; +--bs-popover-font-size:0.875rem; +--bs-popover-bg: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:0 0.5rem 1rem rgba(var(--bs-body-color-rgb), 0.15); +--bs-popover-header-padding-x:1rem; +--bs-popover-header-padding-y:0.5rem; +--bs-popover-header-font-size:1rem; +--bs-popover-header-color: ; +--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:0.5rem; +--bs-popover-arrow-border:var(--bs-popover-border-color); +z-index:var(--bs-popover-zindex); +display:block; +max-width:var(--bs-popover-max-width); +font-family:var(--bs-font-sans-serif); +font-style:normal; +font-weight:400; +line-height:1.5; +text-align:left; +text-align:start; +text-decoration:none; +text-shadow:none; +text-transform:none; +letter-spacing:normal; +word-break:normal; +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::after,.popover .popover-arrow::before{position:absolute; +display:block; +content:""; +border-color:transparent; +border-style:solid; +border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0; +border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width); +border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.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-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0; +border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width); +border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0; +border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width); +border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-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-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.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-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0; +border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.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}.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%; +-webkit-backface-visibility:hidden; +backface-visibility:hidden; +transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0; +transition-property:opacity; +transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1; +opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0; +opacity:0; +transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute; +top:0; +bottom:0; +z-index:1; +display:flex; +align-items:center; +justify-content:center; +width:15%; +padding:0; +color:#fff; +text-align:center; +background:0 0; +border:0; +opacity:.5; +transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff; +text-decoration:none; +outline:0; +opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-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; +justify-content:center; +padding:0; +margin-right:15%; +margin-bottom:1rem; +margin-left:15%; +list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box; +flex:0 1 auto; +width:30px; +height:3px; +padding:0; +margin-right:3px; +margin-left:3px; +text-indent:-999px; +cursor:pointer; +background-color:#fff; +background-clip:padding-box; +border:0; +border-top:10px solid transparent; +border-bottom:10px solid transparent; +opacity:.5; +transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute; +right:15%; +bottom:1.25rem; +left:15%; +padding-top:1.25rem; +padding-bottom:1.25rem; +color:#fff; +text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-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-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{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)}}.spinner-border{--bs-spinner-width:2rem; +--bs-spinner-height:2rem; +--bs-spinner-vertical-align:-0.125em; +--bs-spinner-border-width:0.25em; +--bs-spinner-animation-speed:0.75s; +--bs-spinner-animation-name:spinner-border; +border:var(--bs-spinner-border-width) solid currentcolor; +border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem; +--bs-spinner-height:1rem; +--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1; +transform:none}}.spinner-grow{--bs-spinner-width:2rem; +--bs-spinner-height:2rem; +--bs-spinner-vertical-align:-0.125em; +--bs-spinner-animation-speed:0.75s; +--bs-spinner-animation-name:spinner-grow; +background-color:currentcolor; +opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem; +--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--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:0 0.125rem 0.25rem rgba(var(--bs-body-color-rgb), 0.075); +--bs-offcanvas-transition:transform 0.3s ease-in-out; +--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed; +bottom:0; +z-index:var(--bs-offcanvas-zindex); +display:flex; +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%)}}@media (max-width:575.98px){.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%)}}@media (max-width:575.98px){.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%)}}@media (max-width:575.98px){.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%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{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; +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; +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%)}}@media (max-width:767.98px){.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%)}}@media (max-width:767.98px){.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%)}}@media (max-width:767.98px){.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%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{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; +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; +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%)}}@media (max-width:991.98px){.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%)}}@media (max-width:991.98px){.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%)}}@media (max-width:991.98px){.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%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{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; +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; +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%)}}@media (max-width:1199.98px){.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%)}}@media (max-width:1199.98px){.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%)}}@media (max-width:1199.98px){.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%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{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; +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; +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%)}}@media (max-width:1399.98px){.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%)}}@media (max-width:1399.98px){.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%)}}@media (max-width:1399.98px){.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%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{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; +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; +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.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed; +top:0; +left:0; +z-index:1040; +width:100vw; +height:100vh; +background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex; +align-items:center; +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; +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{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%); +mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%); +-webkit-mask-size:200% 100%; +mask-size:200% 100%; +animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%; +mask-position:-200% 0%}}.clearfix::after{display:block; +clear:both; +content:""}.text-bg-primary{color:#fff!important; +background-color:RGBA(13,110,253,var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important; +background-color:RGBA(108,117,125,var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important; +background-color:RGBA(25,135,84,var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important; +background-color:RGBA(13,202,240,var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important; +background-color:RGBA(255,193,7,var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important; +background-color:RGBA(220,53,69,var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important; +background-color:RGBA(248,249,250,var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important; +background-color:RGBA(33,37,41,var(--bs-bg-opacity,1))!important}.link-primary{color:#0d6efd!important}.link-primary:focus,.link-primary:hover{color:#0a58ca!important}.link-secondary{color:#6c757d!important}.link-secondary:focus,.link-secondary:hover{color:#565e64!important}.link-success{color:#198754!important}.link-success:focus,.link-success:hover{color:#146c43!important}.link-info{color:#0dcaf0!important}.link-info:focus,.link-info:hover{color:#3dd5f3!important}.link-warning{color:#ffc107!important}.link-warning:focus,.link-warning:hover{color:#ffcd39!important}.link-danger{color:#dc3545!important}.link-danger:focus,.link-danger:hover{color:#b02a37!important}.link-light{color:#f8f9fa!important}.link-light:focus,.link-light:hover{color:#f9fafb!important}.link-dark{color:#212529!important}.link-dark:focus,.link-dark:hover{color:#1a1e21!important}.ratio{position:relative; +width:100%}.ratio::before{display:block; +padding-top:var(--bs-aspect-ratio); +content:""}.ratio>*{position:absolute; +top:0; +left:0; +width:100%; +height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed; +top:0; +right:0; +left:0; +z-index:1030}.fixed-bottom{position:fixed; +right:0; +bottom:0; +left:0; +z-index:1030}.sticky-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-sm-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-md-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-lg-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-xl-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky; +position:sticky; +top:0; +z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky; +position:sticky; +bottom:0; +z-index:1020}}.hstack{display:flex; +flex-direction:row; +align-items:center; +align-self:stretch}.vstack{display:flex; +flex:1 1 auto; +flex-direction:column; +align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important; +width:1px!important; +height:1px!important; +padding:0!important; +margin:-1px!important; +overflow:hidden!important; +clip:rect(0,0,0,0)!important; +white-space:nowrap!important; +border:0!important}.stretched-link::after{position:absolute; +top:0; +right:0; +bottom:0; +left:0; +z-index:1; +content:""}.text-truncate{overflow:hidden; +text-overflow:ellipsis; +white-space:nowrap}.vr{display:inline-block; +align-self:stretch; +width:1px; +min-height:1em; +background-color:currentcolor; +opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important; +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-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(var(--bs-body-color-rgb),.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(var(--bs-body-color-rgb),.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(var(--bs-body-color-rgb),.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important; +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-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-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{--bs-border-width:1px}.border-2{--bs-border-width:2px}.border-3{--bs-border-width:3px}.border-4{--bs-border-width:4px}.border-5{--bs-border-width:5px}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important; +margin-left:0!important}.mx-1{margin-right:.25rem!important; +margin-left:.25rem!important}.mx-2{margin-right:.5rem!important; +margin-left:.5rem!important}.mx-3{margin-right:1rem!important; +margin-left:1rem!important}.mx-4{margin-right:1.5rem!important; +margin-left:1.5rem!important}.mx-5{margin-right:3rem!important; +margin-left:3rem!important}.mx-auto{margin-right:auto!important; +margin-left:auto!important}.my-0{margin-top:0!important; +margin-bottom:0!important}.my-1{margin-top:.25rem!important; +margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important; +margin-bottom:.5rem!important}.my-3{margin-top:1rem!important; +margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important; +margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important; +margin-bottom:3rem!important}.my-auto{margin-top:auto!important; +margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important; +padding-left:0!important}.px-1{padding-right:.25rem!important; +padding-left:.25rem!important}.px-2{padding-right:.5rem!important; +padding-left:.5rem!important}.px-3{padding-right:1rem!important; +padding-left:1rem!important}.px-4{padding-right:1.5rem!important; +padding-left:1.5rem!important}.px-5{padding-right:3rem!important; +padding-left:3rem!important}.py-0{padding-top:0!important; +padding-bottom:0!important}.py-1{padding-top:.25rem!important; +padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important; +padding-bottom:.5rem!important}.py-3{padding-top:1rem!important; +padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important; +padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important; +padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important; +column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!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-primary{--bs-text-opacity:1; +color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1; +color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1; +color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1; +color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1; +color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1; +color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1; +color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1; +color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1; +color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1; +color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1; +color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1; +color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1; +color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1; +color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1; +color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1; +color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1; +color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1; +color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text)!important}.text-secondary-emphasis{color:var(--bs-secondary-text)!important}.text-success-emphasis{color:var(--bs-success-text)!important}.text-info-emphasis{color:var(--bs-info-text)!important}.text-warning-emphasis{color:var(--bs-warning-text)!important}.text-danger-emphasis{color:var(--bs-danger-text)!important}.text-light-emphasis{color:var(--bs-light-text)!important}.text-dark-emphasis{color:var(--bs-dark-text)!important}.bg-primary{--bs-bg-opacity:1; +background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1; +background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1; +background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1; +background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1; +background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1; +background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1; +background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1; +background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1; +background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1; +background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1; +background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1; +background-color:transparent!important}.bg-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-body-emphasis{--bs-bg-opacity:1; +background-color:rgba(var(--bs-emphasis-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important; +-moz-user-select:all!important; +user-select:all!important}.user-select-auto{-webkit-user-select:auto!important; +-moz-user-select:auto!important; +user-select:auto!important}.user-select-none{-webkit-user-select:none!important; +-moz-user-select:none!important; +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-2xl)!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-2xl)!important; +border-top-right-radius:var(--bs-border-radius-2xl)!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-2xl)!important; +border-bottom-right-radius:var(--bs-border-radius-2xl)!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-2xl)!important; +border-bottom-left-radius:var(--bs-border-radius-2xl)!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-2xl)!important; +border-top-left-radius:var(--bs-border-radius-2xl)!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{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important; +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-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{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important; +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{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important; +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-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{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important; +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{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important; +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-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{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important; +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{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important; +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-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{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important; +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{-o-object-fit:contain!important; +object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important; +object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important; +object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important; +object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important; +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-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{-moz-column-gap:0!important; +column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important; +column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important; +column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important; +column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important; +column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important; +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}}@media (min-width:1200px){.fs-1{font-size:2.5rem!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-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}}; +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/headers.css b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/headers.css new file mode 100644 index 0000000..8230c9a --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/headers.css @@ -0,0 +1,15 @@ +.form-control-dark { + border-color: var(--bs-gray); +} +.form-control-dark:focus { + border-color: #fff; + box-shadow: 0 0 0 .25rem rgba(255, 255, 255, .25); +} + +.text-small { + font-size: 85%; +} + +.dropdown-toggle { + outline: 0; +} diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/style.css b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/style.css new file mode 100644 index 0000000..490bfe5 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/css/style.css @@ -0,0 +1,151 @@ +body { + margin: 0; + text-align: justify; + text-justify: inter-word; + background-image: url("../images/background.png"); + background-size: 100%; + background-attachment: fixed; +} + +.body-content { + padding-bottom: 50px; + background-color: white; +} + +#goToTopButton { + display: none; + position: fixed; + bottom: 20px; + right: 20px; + z-index: 99; + font-size: 24px; + background-color: #212529; + color: #505050; + cursor: pointer; + border-radius: 100%; + border: #505050 2px solid; + height: 50px; + width: 50px; +} + +footer { + alignment: center; + border-top: solid #353436; + border-top-width: 1px; + padding-top: 25px; + padding-bottom: 45px; + background-color: #2b3035; + color: whitesmoke; +} + +a { + /*text-decoration: none;*/ + color: #727282 ; +} + +footer a { + text-decoration: none; + color: #8f8f8f ; +} + +.page-title { + padding-top: 45px; + padding-bottom: 25px; + font-size: 70px; +} + + +.bd-placeholder-img { + font-size: 1.125rem; + text-anchor: middle; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +@media (min-width: 768px) { + .bd-placeholder-img-lg { + font-size: 3.5rem; + } +} + +.b-example-divider { + height: 3rem; + background-color: rgba(0, 0, 0, .1); + border: solid rgba(0, 0, 0, .15); + border-width: 1px 0; + box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15); +} + +.b-example-vr { + flex-shrink: 0; + width: 1.5rem; + height: 100vh; +} + +.bi { + vertical-align: -.125em; + fill: currentColor; +} + +.nav-scroller { + position: relative; + z-index: 2; + height: 2.75rem; + overflow-y: hidden; +} + +.nav-scroller .nav { + display: flex; + flex-wrap: nowrap; + padding-bottom: 1rem; + margin-top: -1px; + overflow-x: auto; + text-align: center; + white-space: nowrap; + -webkit-overflow-scrolling: touch; +} +.center-image{ + display: block; + margin-left: auto; + margin-right: auto; + width: 60%; +} + +.image-w-text{ + text-align: center; + width: 100%; +} + +.table-w-text{ + text-align: center; + width: 100%; +} + +@keyframes fadeIn { + 0% { opacity: 0;} + 100% { opacity: 1;} +} + +@keyframes fadeOut { + 0% { opacity: 1;} + 100% { opacity: 0;} +} + +#contents-list { + border: 1px solid #ddd; +} + +/* Styles for index */ + +.index-title { + font-size: 70px; + text-align: center; + text-decoration: none; + color: black; + cursor: auto; +} + +#ciberseguranca-title { + text-shadow: black 0.1em 0.1em 0.9em; +} \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/arrow-up.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/arrow-up.png new file mode 100644 index 0000000..f7b2daa Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/arrow-up.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/background.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/background.png new file mode 100644 index 0000000..dad778d Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/background.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cyber_kill_chain.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cyber_kill_chain.png new file mode 100644 index 0000000..71f0551 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cyber_kill_chain.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cybercrime-clock-graphic.jpg b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cybercrime-clock-graphic.jpg new file mode 100644 index 0000000..920dc01 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/cybercrime-clock-graphic.jpg differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/docker-scheme.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/docker-scheme.png new file mode 100644 index 0000000..2ecf9bb Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/docker-scheme.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/favicon.jpeg b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/favicon.jpeg new file mode 100644 index 0000000..e50e02e Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/favicon.jpeg differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/top10-2021.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/top10-2021.png new file mode 100644 index 0000000..a268e97 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/top10-2021.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/ualogo.png b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/ualogo.png new file mode 100644 index 0000000..2d14198 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/projeto/images/ualogo.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/index.html b/1ano/1semestre/iei/infor2022-ap-g16/projeto/index.html new file mode 100644 index 0000000..96a7f3c --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/index.html @@ -0,0 +1,152 @@ + + + + + Cibersegurança + + + + + + + + + + + + + + + + + + + + +
+
+

CIBERSEGURANÇA

+ +
+ +

Lista de conteúdos

+ +
+

Introdução

+

+ Com o passar dos anos, as tecnologias que temos ao nosso dispor têm evoluído de uma forma rápida e sem fim, como, por exemplo, o hardware de um computador. Mas, com constantes evoluções, também vem uma necessidade de responsabilidade, pois com quanto mais recursos existirem, maior será o impacto de danos a indivíduos ou entidades. +

+

+ Dito isto, neste website iremos apresentar diversos tipos de ameaças cibernéticas, bem como as principais vulnerabilidades métodos para as detetar e as soluções de segurança que existem para as ameaças. +

+
+

Conceito

+

+ Quando os sistemas e ambientes digitais foram criados não existia quase nenhuma interação entre dispositivos e a pouca que existia era efetuada por cabo. Porém, quando a internet foi criada, a interação entre dispositivos digitais aumentou e com isso, tal como acontece com interações humanas, vieram diversos perigos e ameaças aos utilizadores. Da mesma forma que existem crimes no mundo físico também existem crimes digitais e da mesma forma que existem soluções e entidades responsáveis pela prevenção e combate a crimes físicos, também os mesmos existem para o mundo digital, proporcionando cibersegurança aos utilizadores da internet e ambientes digitais. +

+
+

Programação aplicada à Cibersegurança

+

+ Como é óbvio, para a automatização quer seja para os sistemas de ataque ou para os sistemas de defesa é usada bastante programação e como isto não são sistemas dísponíveis a todos os utilizadores, cada hacker cria a sua aplicação à sua maneira para atingir os seus objetivos. +

+

Linguagens mais usadas em Cibersegurança

+ +

Sistema mais usados em Cibersegurança

+

+ Todos os hackers optam pelo uso de uma distribuição de linux a seu gosto e embora a maioria delas funcionem, o Kali Linux é o mais usado por ter uma grande quantidade de ferramentas dedicadas à área. Esta ferramenta encontra-se mais detalhado aqui. +

+
+ + + + + + \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/bootstrap.bundle.min.js b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/bootstrap.bundle.min.js new file mode 100644 index 0000000..da8d852 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/bootstrap.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),i=e=>{e.dispatchEvent(new Event(t))},n=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),s=t=>n(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(e(t)):null,o=t=>{if(!n(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},r=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),a=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?a(t.parentNode):null},l=()=>{},c=t=>{t.offsetHeight},h=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,d=[],u=()=>"rtl"===document.documentElement.dir,f=t=>{var e;e=()=>{const e=h();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(d.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of d)t()})),d.push(e)):e()},p=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,m=(e,n,s=!0)=>{if(!s)return void p(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(n)+5;let r=!1;const a=({target:i})=>{i===n&&(r=!0,n.removeEventListener(t,a),p(e))};n.addEventListener(t,a),setTimeout((()=>{r||i(n)}),o)},g=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},_=/[^.]*(?=\..*)\.|.*/,b=/\..*/,v=/::\d+$/,y={};let w=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},E=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function T(t,e){return e&&`${e}::${w++}`||t.uidEvent||w++}function C(t){const e=T(t);return t.uidEvent=e,y[e]=y[e]||{},y[e]}function O(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function x(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=D(t);return E.has(o)||(o=t),[n,s,o]}function k(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=x(e,i,n);if(e in A){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=C(t),c=l[a]||(l[a]={}),h=O(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=T(r,e.replace(_,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return N(s,{delegateTarget:r}),n.oneOff&&I.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return N(n,{delegateTarget:t}),i.oneOff&&I.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function L(t,e,i,n,s){const o=O(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function S(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&L(t,e,i,r.callable,r.delegationSelector)}function D(t){return t=t.replace(b,""),A[t]||t}const I={on(t,e,i,n){k(t,e,i,n,!1)},one(t,e,i,n){k(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=x(e,i,n),a=r!==e,l=C(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))S(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(v,"");a&&!e.includes(s)||L(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;L(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=h();let s=null,o=!0,r=!0,a=!1;e!==D(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=N(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function N(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}const P=new Map,j={set(t,e,i){P.has(t)||P.set(t,new Map);const n=P.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>P.has(t)&&P.get(t).get(e)||null,remove(t,e){if(!P.has(t))return;const i=P.get(t);i.delete(e),0===i.size&&P.delete(t)}};function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const H={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${F(e)}`))};class ${static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=n(e)?H.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...n(e)?H.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[s,o]of Object.entries(e)){const e=t[s],r=n(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${o}".`)}var i}}class W extends ${constructor(t,e){super(),(t=s(t))&&(this._element=t,this._config=this._getConfig(e),j.set(this._element,this.constructor.DATA_KEY,this))}dispose(){j.remove(this._element,this.constructor.DATA_KEY),I.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){m(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return j.get(s(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.0-alpha1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let i=t.getAttribute("data-bs-target");if(!i||"#"===i){let e=t.getAttribute("href");if(!e||!e.includes("#")&&!e.startsWith("."))return null;e.includes("#")&&!e.startsWith("#")&&(e=`#${e.split("#")[1]}`),i=e&&"#"!==e?e.trim():null}return e(i)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!r(t)&&o(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;I.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),r(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))};class q extends W{static get NAME(){return"alert"}close(){if(I.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),I.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(q,"close"),f(q);const V='[data-bs-toggle="button"]';class K extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=K.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}I.on(document,"click.bs.button.data-api",V,(t=>{t.preventDefault();const e=t.target.closest(V);K.getOrCreateInstance(e).toggle()})),f(K);const Q={endCallback:null,leftCallback:null,rightCallback:null},X={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Y extends ${constructor(t,e){super(),this._element=t,t&&Y.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Q}static get DefaultType(){return X}static get NAME(){return"swipe"}dispose(){I.off(this._element,".bs.swipe")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),p(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&p(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(I.on(this._element,"pointerdown.bs.swipe",(t=>this._start(t))),I.on(this._element,"pointerup.bs.swipe",(t=>this._end(t))),this._element.classList.add("pointer-event")):(I.on(this._element,"touchstart.bs.swipe",(t=>this._start(t))),I.on(this._element,"touchmove.bs.swipe",(t=>this._move(t))),I.on(this._element,"touchend.bs.swipe",(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const U="next",G="prev",J="left",Z="right",tt="slid.bs.carousel",et="carousel",it="active",nt={ArrowLeft:Z,ArrowRight:J},st={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class rt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===et&&this.cycle()}static get Default(){return st}static get DefaultType(){return ot}static get NAME(){return"carousel"}next(){this._slide(U)}nextWhenVisible(){!document.hidden&&o(this._element)&&this.next()}prev(){this._slide(G)}pause(){this._isSliding&&i(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?I.one(this._element,tt,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void I.one(this._element,tt,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?U:G;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&I.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(I.on(this._element,"mouseenter.bs.carousel",(()=>this.pause())),I.on(this._element,"mouseleave.bs.carousel",(()=>this._maybeEnableCycle()))),this._config.touch&&Y.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))I.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(J)),rightCallback:()=>this._slide(this._directionToOrder(Z)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Y(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=nt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(it),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===U,s=e||g(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>I.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r("slide.bs.carousel").defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",h=n?"carousel-item-next":"carousel-item-prev";s.classList.add(h),c(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,h),s.classList.add(it),i.classList.remove(it,h,l),this._isSliding=!1,r(tt)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(".active.carousel-item",this._element)}_getItems(){return z.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return u()?t===J?G:U:t===J?U:G}_orderToDirection(t){return u()?t===G?J:Z:t===G?Z:J}static jQueryInterface(t){return this.each((function(){const e=rt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}I.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(et))return;t.preventDefault();const i=rt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),I.on(window,"load.bs.carousel.data-api",(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)rt.getOrCreateInstance(e)})),f(rt);const at="show",lt="collapse",ct="collapsing",ht='[data-bs-toggle="collapse"]',dt={parent:null,toggle:!0},ut={parent:"(null|element)",toggle:"boolean"};class ft extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(ht);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return dt}static get DefaultType(){return ut}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>ft.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(I.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(lt),this._element.classList.add(ct),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ct),this._element.classList.add(lt,at),this._element.style[e]="",I.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(I.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,c(this._element),this._element.classList.add(ct),this._element.classList.remove(lt,at);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ct),this._element.classList.add(lt),I.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(at)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=s(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(ht);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(":scope .collapse .collapse",this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=ft.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}I.on(document,"click.bs.collapse.data-api",ht,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))ft.getOrCreateInstance(t,{toggle:!1}).toggle()})),f(ft);var pt="top",mt="bottom",gt="right",_t="left",bt="auto",vt=[pt,mt,gt,_t],yt="start",wt="end",At="clippingParents",Et="viewport",Tt="popper",Ct="reference",Ot=vt.reduce((function(t,e){return t.concat([e+"-"+yt,e+"-"+wt])}),[]),xt=[].concat(vt,[bt]).reduce((function(t,e){return t.concat([e,e+"-"+yt,e+"-"+wt])}),[]),kt="beforeRead",Lt="read",St="afterRead",Dt="beforeMain",It="main",Nt="afterMain",Pt="beforeWrite",jt="write",Mt="afterWrite",Ft=[kt,Lt,St,Dt,It,Nt,Pt,jt,Mt];function Ht(t){return t?(t.nodeName||"").toLowerCase():null}function $t(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Wt(t){return t instanceof $t(t).Element||t instanceof Element}function Bt(t){return t instanceof $t(t).HTMLElement||t instanceof HTMLElement}function zt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof $t(t).ShadowRoot||t instanceof ShadowRoot)}const Rt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];Bt(s)&&Ht(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});Bt(n)&&Ht(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function qt(t){return t.split("-")[0]}var Vt=Math.max,Kt=Math.min,Qt=Math.round;function Xt(){var t=navigator.userAgentData;return null!=t&&t.brands?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Yt(){return!/^((?!chrome|android).)*safari/i.test(Xt())}function Ut(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&Bt(t)&&(s=t.offsetWidth>0&&Qt(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Qt(n.height)/t.offsetHeight||1);var r=(Wt(t)?$t(t):window).visualViewport,a=!Yt()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Gt(t){var e=Ut(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Jt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&zt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Zt(t){return $t(t).getComputedStyle(t)}function te(t){return["table","td","th"].indexOf(Ht(t))>=0}function ee(t){return((Wt(t)?t.ownerDocument:t.document)||window.document).documentElement}function ie(t){return"html"===Ht(t)?t:t.assignedSlot||t.parentNode||(zt(t)?t.host:null)||ee(t)}function ne(t){return Bt(t)&&"fixed"!==Zt(t).position?t.offsetParent:null}function se(t){for(var e=$t(t),i=ne(t);i&&te(i)&&"static"===Zt(i).position;)i=ne(i);return i&&("html"===Ht(i)||"body"===Ht(i)&&"static"===Zt(i).position)?e:i||function(t){var e=/firefox/i.test(Xt());if(/Trident/i.test(Xt())&&Bt(t)&&"fixed"===Zt(t).position)return null;var i=ie(t);for(zt(i)&&(i=i.host);Bt(i)&&["html","body"].indexOf(Ht(i))<0;){var n=Zt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function oe(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function re(t,e,i){return Vt(t,Kt(e,i))}function ae(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function le(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const ce={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=qt(i.placement),l=oe(a),c=[_t,gt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return ae("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:le(t,vt))}(s.padding,i),d=Gt(o),u="y"===l?pt:_t,f="y"===l?mt:gt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=se(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=re(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Jt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(t){return t.split("-")[1]}var de={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ue(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=_t,y=pt,w=window;if(c){var A=se(i),E="clientHeight",T="clientWidth";A===$t(i)&&"static"!==Zt(A=ee(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===pt||(s===_t||s===gt)&&o===wt)&&(y=mt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==_t&&(s!==pt&&s!==mt||o!==wt)||(v=gt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&de),x=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:Qt(e*n)/n||0,y:Qt(i*n)/n||0}}({x:f,y:m}):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const fe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:qt(e.placement),variation:he(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,ue(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,ue(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var pe={passive:!0};const me={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=$t(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,pe)})),a&&l.addEventListener("resize",i.update,pe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,pe)})),a&&l.removeEventListener("resize",i.update,pe)}},data:{}};var ge={left:"right",right:"left",bottom:"top",top:"bottom"};function _e(t){return t.replace(/left|right|bottom|top/g,(function(t){return ge[t]}))}var be={start:"end",end:"start"};function ve(t){return t.replace(/start|end/g,(function(t){return be[t]}))}function ye(t){var e=$t(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function we(t){return Ut(ee(t)).left+ye(t).scrollLeft}function Ae(t){var e=Zt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Ht(t))>=0?t.ownerDocument.body:Bt(t)&&Ae(t)?t:Ee(ie(t))}function Te(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=$t(n),r=s?[o].concat(o.visualViewport||[],Ae(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Te(ie(r)))}function Ce(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e,i){return e===Et?Ce(function(t,e){var i=$t(t),n=ee(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Yt();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+we(t),y:l}}(t,i)):Wt(e)?function(t,e){var i=Ut(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ce(function(t){var e,i=ee(t),n=ye(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Vt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Vt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+we(t),l=-n.scrollTop;return"rtl"===Zt(s||i).direction&&(a+=Vt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(ee(t)))}function xe(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?qt(s):null,r=s?he(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case pt:e={x:a,y:i.y-n.height};break;case mt:e={x:a,y:i.y+i.height};break;case gt:e={x:i.x+i.width,y:l};break;case _t:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?oe(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case yt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case wt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?At:a,c=i.rootBoundary,h=void 0===c?Et:c,d=i.elementContext,u=void 0===d?Tt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=ae("number"!=typeof g?g:le(g,vt)),b=u===Tt?Ct:Tt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Te(ie(t)),i=["absolute","fixed"].indexOf(Zt(t).position)>=0&&Bt(t)?se(t):t;return Wt(i)?e.filter((function(t){return Wt(t)&&Jt(t,i)&&"body"!==Ht(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=Oe(t,i,n);return e.top=Vt(s.top,e.top),e.right=Kt(s.right,e.right),e.bottom=Kt(s.bottom,e.bottom),e.left=Vt(s.left,e.left),e}),Oe(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(Wt(y)?y:y.contextElement||ee(t.elements.popper),l,h,r),A=Ut(t.elements.reference),E=xe({reference:A,element:v,strategy:"absolute",placement:s}),T=Ce(Object.assign({},v,E)),C=u===Tt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Tt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[gt,mt].indexOf(t)>=0?1:-1,i=[pt,mt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?xt:l,h=he(n),d=h?a?Ot:Ot.filter((function(t){return he(t)===h})):vt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[qt(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const Se={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=qt(g),b=l||(_!==g&&p?function(t){if(qt(t)===bt)return[];var e=_e(t);return[ve(t),e,ve(e)]}(g):[_e(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(qt(i)===bt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ke(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),I=L?k?gt:_t:k?mt:pt;y[S]>w[S]&&(I=_e(I));var N=_e(I),P=[];if(o&&P.push(D[x]<=0),a&&P.push(D[I]<=0,D[N]<=0),P.every((function(t){return t}))){T=O,E=!1;break}A.set(O,P)}if(E)for(var j=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Ie(t){return[pt,gt,mt,_t].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Ie(l),d=Ie(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Pe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=xt.reduce((function(t,i){return t[i]=function(t,e,i){var n=qt(t),s=[_t,pt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[_t,gt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},je={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=xe({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Me={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=qt(e.placement),b=he(e.placement),v=!b,y=oe(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?pt:_t,D="y"===y?mt:gt,I="y"===y?"height":"width",N=A[y],P=N+g[S],j=N-g[D],M=f?-T[I]/2:0,F=b===yt?E[I]:T[I],H=b===yt?-T[I]:-E[I],$=e.elements.arrow,W=f&&$?Gt($):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=re(0,E[I],W[I]),V=v?E[I]/2-M-q-z-O.mainAxis:F-q-z-O.mainAxis,K=v?-E[I]/2+M+q+R+O.mainAxis:H+q+R+O.mainAxis,Q=e.elements.arrow&&se(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=N+K-Y,G=re(f?Kt(P,N+V-Y-X):P,N,f?Vt(j,U):j);A[y]=G,k[y]=G-N}if(a){var J,Z="x"===y?pt:_t,tt="x"===y?mt:gt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[pt,_t].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=re(t,e,i);return n>i?i:n}(at,et,lt):re(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function Fe(t,e,i){void 0===i&&(i=!1);var n,s,o=Bt(e),r=Bt(e)&&function(t){var e=t.getBoundingClientRect(),i=Qt(e.width)/t.offsetWidth||1,n=Qt(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=ee(e),l=Ut(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==Ht(e)||Ae(a))&&(c=(n=e)!==$t(n)&&Bt(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ye(n)),Bt(e)?((h=Ut(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=we(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var $e={placement:"bottom",modifiers:[],strategy:"absolute"};function We(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...p(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>o(t)));i.length&&g(i,e,t===Xe,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=ci.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ze);for(const i of e){const e=ci.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Qe,Xe].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Je)?this:z.prev(this,Je)[0]||z.next(this,Je)[0]||z.findOne(Je,t.delegateTarget.parentNode),o=ci.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}I.on(document,Ue,Je,ci.dataApiKeydownHandler),I.on(document,Ue,ti,ci.dataApiKeydownHandler),I.on(document,Ye,ci.clearMenus),I.on(document,"keyup.bs.dropdown.data-api",ci.clearMenus),I.on(document,Ye,Je,(function(t){t.preventDefault(),ci.getOrCreateInstance(this).toggle()})),f(ci);const hi=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",di=".sticky-top",ui="padding-right",fi="margin-right";class pi{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ui,(e=>e+t)),this._setElementAttributes(hi,ui,(e=>e+t)),this._setElementAttributes(di,fi,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ui),this._resetElementAttributes(hi,ui),this._resetElementAttributes(di,fi)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&H.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=H.getDataAttribute(t,e);null!==i?(H.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(n(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const mi="show",gi="mousedown.bs.backdrop",_i={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},bi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class vi extends ${constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return _i}static get DefaultType(){return bi}static get NAME(){return"backdrop"}show(t){if(!this._config.isVisible)return void p(t);this._append();const e=this._getElement();this._config.isAnimated&&c(e),e.classList.add(mi),this._emulateAnimation((()=>{p(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(mi),this._emulateAnimation((()=>{this.dispose(),p(t)}))):p(t)}dispose(){this._isAppended&&(I.off(this._element,gi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=s(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),I.on(t,gi,(()=>{p(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){m(t,this._getElement(),this._config.isAnimated)}}const yi=".bs.focustrap",wi="backward",Ai={autofocus:!0,trapElement:null},Ei={autofocus:"boolean",trapElement:"element"};class Ti extends ${constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ai}static get DefaultType(){return Ei}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),I.off(document,yi),I.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),I.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,I.off(document,yi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===wi?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?wi:"forward")}}const Ci="hidden.bs.modal",Oi="show.bs.modal",xi="modal-open",ki="show",Li="modal-static",Si={backdrop:!0,focus:!0,keyboard:!0},Di={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ii extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new pi,this._addEventListeners()}static get Default(){return Si}static get DefaultType(){return Di}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||I.trigger(this._element,Oi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(xi),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(I.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(ki),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])I.off(t,".bs.modal");this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new vi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ti({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),c(this._element),this._element.classList.add(ki),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,I.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){I.on(this._element,"keydown.dismiss.bs.modal",(t=>{if("Escape"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),I.on(window,"resize.bs.modal",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),I.on(this._element,"mousedown.dismiss.bs.modal",(t=>{I.one(this._element,"click.dismiss.bs.modal",(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(xi),this._resetAdjustments(),this._scrollBar.reset(),I.trigger(this._element,Ci)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(I.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Li)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Li),this._queueCallback((()=>{this._element.classList.remove(Li),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=u()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=u()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ii.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}I.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),I.one(e,Oi,(t=>{t.defaultPrevented||I.one(e,Ci,(()=>{o(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&Ii.getInstance(i).hide(),Ii.getOrCreateInstance(e).toggle(this)})),R(Ii),f(Ii);const Ni="show",Pi="showing",ji="hiding",Mi=".offcanvas.show",Fi="hidePrevented.bs.offcanvas",Hi="hidden.bs.offcanvas",$i={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Bi extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return $i}static get DefaultType(){return Wi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||I.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new pi).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Pi),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Ni),this._element.classList.remove(Pi),I.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(I.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ji),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Ni,ji),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new pi).reset(),I.trigger(this._element,Hi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new vi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():I.trigger(this._element,Fi)}:null})}_initializeFocusTrap(){return new Ti({trapElement:this._element})}_addEventListeners(){I.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():I.trigger(this._element,Fi))}))}static jQueryInterface(t){return this.each((function(){const e=Bi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}I.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),r(this))return;I.one(e,Hi,(()=>{o(this)&&this.focus()}));const i=z.findOne(Mi);i&&i!==e&&Bi.getInstance(i).hide(),Bi.getOrCreateInstance(e).toggle(this)})),I.on(window,"load.bs.offcanvas.data-api",(()=>{for(const t of z.find(Mi))Bi.getOrCreateInstance(t).show()})),I.on(window,"resize.bs.offcanvas",(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Bi.getOrCreateInstance(t).hide()})),R(Bi),f(Bi);const zi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ri=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,qi=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Vi=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!zi.has(i)||Boolean(Ri.test(t.nodeValue)||qi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Ki={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Qi={allowList:Ki,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Xi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Yi={entry:"(string|element|function|null)",selector:"(string|element)"};class Ui extends ${constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Qi}static get DefaultType(){return Xi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Yi)}_setContent(t,e,i){const o=z.findOne(i,t);o&&((e=this._resolvePossibleFunction(e))?n(e)?this._putElementInTemplate(s(e),o):this._config.html?o.innerHTML=this._maybeSanitize(e):o.textContent=e:o.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Vi(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return p(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Gi=new Set(["sanitize","allowList","sanitizeFn"]),Ji="fade",Zi="show",tn=".modal",en="hide.bs.modal",nn="hover",sn="focus",on={AUTO:"auto",TOP:"top",RIGHT:u()?"left":"right",BOTTOM:"bottom",LEFT:u()?"right":"left"},rn={allowList:Ki,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},an={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class ln extends W{constructor(t,e){if(void 0===Ve)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return rn}static get DefaultType(){return an}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),I.off(this._element.closest(tn),en,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=I.trigger(this._element,this.constructor.eventName("show")),e=(a(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),I.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Zi),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))I.on(t,"mouseover",l);this._queueCallback((()=>{I.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!I.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Zi),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))I.off(t,"mouseover",l);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),I.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ji,Zi),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(Ji),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ui({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ji)}_isShown(){return this.tip&&this.tip.classList.contains(Zi)}_createPopper(t){const e=p(this._config.placement,[this,t,this._element]),i=on[e.toUpperCase()];return qe(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return p(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...p(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)I.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===nn?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===nn?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");I.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?sn:nn]=!0,e._enter()})),I.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?sn:nn]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},I.on(this._element.closest(tn),en,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=H.getDataAttributes(this._element);for(const t of Object.keys(e))Gi.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:s(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}f(ln);const cn={...ln.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},hn={...ln.DefaultType,content:"(null|string|element|function)"};class dn extends ln{static get Default(){return cn}static get DefaultType(){return hn}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=dn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}f(dn);const un="click.bs.scrollspy",fn="active",pn="[href]",mn={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},gn={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class _n extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return mn}static get DefaultType(){return gn}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=s(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(I.off(this._config.target,un),I.on(this._config.target,un,pn,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(pn,this._config.target);for(const e of t){if(!e.hash||r(e))continue;const t=z.findOne(e.hash,this._element);o(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(fn),this._activateParents(t),I.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(fn);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,".nav-link, .nav-item > .nav-link, .list-group-item"))t.classList.add(fn)}_clearActiveClass(t){t.classList.remove(fn);const e=z.find("[href].active",t);for(const t of e)t.classList.remove(fn)}static jQueryInterface(t){return this.each((function(){const e=_n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}I.on(window,"load.bs.scrollspy.data-api",(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))_n.getOrCreateInstance(t)})),f(_n);const bn="ArrowLeft",vn="ArrowRight",yn="ArrowUp",wn="ArrowDown",An="active",En="fade",Tn="show",Cn='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',On=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${Cn}`;class xn extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),I.on(this._element,"keydown.bs.tab",(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?I.trigger(e,"hide.bs.tab",{relatedTarget:t}):null;I.trigger(t,"show.bs.tab",{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(An),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),I.trigger(t,"shown.bs.tab",{relatedTarget:e})):t.classList.add(Tn)}),t,t.classList.contains(En)))}_deactivate(t,e){t&&(t.classList.remove(An),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),I.trigger(t,"hidden.bs.tab",{relatedTarget:e})):t.classList.remove(Tn)}),t,t.classList.contains(En)))}_keydown(t){if(![bn,vn,yn,wn].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[vn,wn].includes(t.key),i=g(this._getChildren().filter((t=>!r(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),xn.getOrCreateInstance(i).show())}_getChildren(){return z.find(On,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",An),n(".dropdown-menu",Tn),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(An)}_getInnerElement(t){return t.matches(On)?t:z.findOne(On,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}I.on(document,"click.bs.tab",Cn,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),r(this)||xn.getOrCreateInstance(this).show()})),I.on(window,"load.bs.tab",(()=>{for(const t of z.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))xn.getOrCreateInstance(t)})),f(xn);const kn="hide",Ln="show",Sn="showing",Dn={animation:"boolean",autohide:"boolean",delay:"number"},In={animation:!0,autohide:!0,delay:5e3};class Nn extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return In}static get DefaultType(){return Dn}static get NAME(){return"toast"}show(){I.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(kn),c(this._element),this._element.classList.add(Ln,Sn),this._queueCallback((()=>{this._element.classList.remove(Sn),I.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(I.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(Sn),this._queueCallback((()=>{this._element.classList.add(kn),this._element.classList.remove(Sn,Ln),I.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Ln),super.dispose()}isShown(){return this._element.classList.contains(Ln)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){I.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),I.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),I.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),I.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Nn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Nn),f(Nn),{Alert:q,Button:K,Carousel:rt,Collapse:ft,Dropdown:ci,Modal:Ii,Offcanvas:Bi,Popover:dn,ScrollSpy:_n,Tab:xn,Toast:Nn,Tooltip:ln}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/chart.js b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/chart.js new file mode 100644 index 0000000..ebc1c20 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/chart.js @@ -0,0 +1,11 @@ +$("#grafico-ataques-anuais").highcharts({ + chart: { type: "column" }, + title: { text: "Ciberataques Anuais" }, + xAxis: { categories: ["2016", "2017", "2018", "2019", "2020", "2021", "2022 (primeira metade)"] }, + series:[ + { + name: "Ciberataques (milhões)", + data: [638, 183.6, 206.4, 187.9, 304.6, 623.3, 236.1] + } + ] +}); \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/map.js b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/map.js new file mode 100644 index 0000000..7aeca1f --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/map.js @@ -0,0 +1,45 @@ +let map = new L.Map("about-map", {center: [40.633258,-8.659097],zoom: 15}); +let osmUrl="http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"; +let osmAttrib="Map data OpenStreetMap contributors"; +let osm = new L.TileLayer(osmUrl, {attribution: osmAttrib}); +map.addLayer(osm); + +map.on("click", showCoordinates); + +function showCoordinates(e){ + var s = document.getElementById("coordinates"); + s.innerHTML = "Latitude, Longitude = "+e.latlng.lat+", "+e.latlng.lng; +} + +let pontos = [ + L.marker([40.633258, -8.659097]), + L.marker([40.63130996789477, -8.657639622688295]) +] + +for (let i in pontos) { + pontos[i].addTo(map) +} + +L.marker([40.633258, -8.659097]).bindPopup("LABI@DETI").addTo(map); + +let grupo = new L.featureGroup(pontos); +map.fitBounds(grupo.getBounds()); + +let iconeUA = L.icon({ iconUrl: "images/ualogo.png", iconSize: [40, 40] }); +L.marker([40.633258, -8.659097]).bindPopup("LABI@DETI").addTo(map); +L.marker([40.63130996789477, -8.657639622688295]).bindPopup("REITORIA").addTo(map); + +let reitoria = L.polygon( + [ [40.63102, -8.65793], [40.63149, -8.65731], + [40.63126, -8.65699], [40.63078, -8.65759] ], + { color: "red" } ); +reitoria.addTo(map); +reitoria.bindPopup("Reitoria") + +let deti = L.polygon( + [ [40.632806095219365, -8.659114837646486], [40.63281016626841, -8.65928113460541], + [40.63307478392277, -8.659291863441469], [40.63308292598783, -8.659313321113588], + [40.63318470171706, -8.659313321113588], [40.63318063069089, -8.65928113460541], + [40.63322948298879, -8.65928113460541], [40.633225411965334, -8.659120202064516] ], + {color: "green"} ); +deti.bindPopup("DETI").addTo(map); \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/topButton.js b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/topButton.js new file mode 100644 index 0000000..8729cc1 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/js/topButton.js @@ -0,0 +1,14 @@ +let mybutton = document.getElementById("goToTopButton"); + +window.onscroll = function() {scrollFunction()}; + +function scrollFunction(){ + if (document.body.scrollTop >= 1 || document.documentElement.scrollTop >= 1) { + mybutton.style.display = "block"; + mybutton.style.animation = "fadeIn 0.5s"; + } + else { + mybutton.style.animation = "fadeOut 0.5s"; + setTimeout(() => {mybutton.style.display = "none"}, 500) + } +} diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/solucoes.html b/1ano/1semestre/iei/infor2022-ap-g16/projeto/solucoes.html new file mode 100644 index 0000000..65a7332 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/solucoes.html @@ -0,0 +1,115 @@ + + + + + Soluções de Cibersegurança + + + + + + + + + + + + + + + + + + + +
+

Soluções de Cibersegurança

+
+

+ Para combater todas as ameaças cibernéticas e combater possíveis falhas de segurança, é necessário encontrar soluções de defesa do sistema e dos servidores. Há diversas formas de melhorar a segurança e de testar o sistema contra as ameaças, mesmo sem o danificar. +

+ +
+ +

Soluções para o usuário

+

+ Por mais que a cibersegurança tenha de ser assegurada pela entidade responsável pelo sistema em questão, a verdade é que o usuário comum deve ajudar no combate às ameaças e ataques cibernéticos. Pode começar pela instrução dos usuários para um melhor uso da internet e outras tecnologias web no intuito de não serem tão facilmente expostas. O não abrir ligações desconhecidos ou suspeitos, não cofiança em toda a informação disponível online (pois acaba por vezes por ser maliciosa), a não transferência de ficheiros e aplicações sem que o seu criador ou gerenciador seja confiável e o não uso de sistemas web piratas, pois com eles podem vir uma data de problemas. +

+
+

Soluções para empresas

+

+ As empresas de tecnologia têm um papel bastante importante no que toca à segurança tanto dos seus sistemas como dos usuários dos seus serviços. Para isto as empresas têm de implementar medidas para promover esta mesma segurança. Para isto, um dos primeiros passos pode ser o teste da sua segurança que passa por provocar um ataque aos seus próprios sistemas (usando Owasp-Zap para realizar Pen Testing para poderem proceder à deteção das suas vulnerabilidades para posteriormente corrigirem os seus problemas e falhas de segurança. Outra medida que podem tomar é a monitorização a tempo inteira dos seus recursos e do tráfego dos seus serviços para garantir o bom funcionamento dos mesmos (principalmente para empresas grandes) bem como a resposta rápida por parte da empresa no evento de um ataque. Outro possível método, para a proteção de dados dos usuários, é o uso de diferentes servidores para que a informação não roubada caso algum tenha problemas. +

+
+

Ataques cibernéticos por ano e custos associados

+
+

+ O gráfico seguinte apresenta o número de ataques cibernéticos por ano desde 2016 até à primeira metade de 2022, dados da Statista. +

+
+
+

+ A imagem representa os custos atuais gastos em soluções de cibersegurança, em Dólares Americanos. +

+ +
+ +
+ + + + + + \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/projeto/vulnerabilidades.html b/1ano/1semestre/iei/infor2022-ap-g16/projeto/vulnerabilidades.html new file mode 100644 index 0000000..abda476 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/projeto/vulnerabilidades.html @@ -0,0 +1,374 @@ + + + + + Vulnerabilidades + + + + + + + + + + + + + + + + + + +
+

Vulnerabilidades

+ +
+ +

Análise de vulnerabilidades

+

+ A análise de vulnerabilidades no papel da Cibersegurança é muito importante. Sem ela, não existiria nenhuma melhoria no ramo de combate às ameaças cibernéticas, pois sem desenvolvimento, não haveria métodos de nos proteger dos diversos tipos de ataque que se conhecemos. +

+

+ Este tópico é dividido em vários ramos, como a Digital Forensics, a Incident Response, entre outros. +

+ +
+ +

Digital Forensics

+

+ A Digital Forensics é, como o nome indica, a forense digital, e é a obtenção e análise de dados de uma forma pura, sem quais quer tipos de distorção e sem tendências para qualquer lado, de modo a reconstruír o que se passou no passado com o sistema. +

+

+ Tem como objetivo examinar dados de sistemas, ativdidade de utilizadores do sistema, programas em execução, entre outras métricas que possam ajudar a determinar se está a decorrer um ataque e quem está por detrás do ataque. +

+

+ Deve-se ter sempre em conta a preservação dos dados. Se o caso a ser estudado for levado a tribunal e se descobrir que os dados foram, de qualquer forma, manipulados, é o suficiente para a prova de esses mesmos dados ser completamente anulada, e até mesmo levar o caso contra quem apresentou essa prova. +

+ +

Digital Forensic Investigation (DFI)

+

+ Com a DFI, entra-se na parte judicial das investigações. É uma investigação mais especializada, pois devem-se usar métodos e técnicas que permitam a que as evidências apresentadas possam ser admissíveis num tribunal. +

+

+ O grande objetivo é chegar à causa raíz do problema/evento e garantir com clareza que as evidências não foram manipuladas de forma alguma, não levantando quaisquer questões ou dúvidas. +

+

Deve ser realizado um DFI, por exemplo:

+ +
    +
  • Resposta a um incidente
  • +
  • Investigações criminais
  • +
  • Corrigir falhas de segurança
  • +
+ +
+ +

Métodos de Análise

+

+ Existem dois tipos conhecidos de métodos de análise de evidências, o Método Tradicional e Método Vivo +

+ +

Método Tradicional(Post mortem)

+

+ O método tradicional consiste na análise de evidências com o sistema desligado, acedendo ao disco num modo inalterável(read-only), e examinar, por exemplo: +

+
    +
  • Logs do sistema
  • +
  • E-mails
  • +
  • Ficheiros
  • +
  • Metadados
  • +
+ +

Método Vivo (Live forensic)

+

+ O método vivo resulta da análise da máquina, com a mesma ligada. Pode ser usado como prova um screenshot da máquina. No caso de ser necessário examinar um disco, pode demorar algum tempo, especialmente se for de grande capacidade de armazenamento. +

+ +
+ +

Incident Response

+

+ Incident Response(resposta ao incidente) é o procedimento que um sujeito ou, nomeadamente uma empresa toma para que se prepare, detete, contenha e recupere de uma eventual perda de dados. +

+

+ Esta é bastante importante em empresas para minimizar os danos eventuais de uma invasão de dados, ou seja, não haver perda de dados e, até mesmo, impedir que a mesma aconteça. +

+

+ Existem várias equipas específicas para cada tipo de invasão, como Computer Incident Response Teams (CIRTs), Computer Emergency Response Teams (CERTs), entre outras. +

+

Threat Intelligence

+

+ A Threat Intelligence baseia-se na obtenção e análise de informações que ajudem a identificar possíveis ataques. Esta vem com o benefício de ter uma segurança proativa, ou seja, evitar qualquer tipo de ameaças a uma empresa. +

+

O seguinte esquema demonstra no que constitui uma Kill Chain:

+ +
+ +

As 7 fases de um ataque cibernético

+
+ +

+ Também é importante mencionar as inúmeras organizações que ajudam e facilitam o combate aos ataques cibernéticos, sendo a mais destacada a MITRE ATT&CK. +

+

+ A MITRE ATT&CK é uma organização focada na obtenção de informações de ciberataques apenas por observação do que acontece no mundo digital. É conhecida por ter uma vasta base de dados de ataques com informações de quase todos os ataques que aconteceram. +

+

+ Além de identificar os problemas, também disponibiliza soluções para os mesmos, tudo isto sem qualquer custo tanto para uso pessoal como para uso empresarial. Isto obviamente reforça a ideia de colaboração, que é bastante importante no ramo da informática. +

+ +

Ordem de Volatilidade

+

+ É muito importante ter em conta a ordem de volatilidade dos ficheiros criados por um sistema, pois devemos começar sempre pelos ficheiros que estão mais em contacto com o sistema (como ficheiros cache, RAM, etc.). A ordem por base no tempo em que estão disponíveis e acessíveis é, respetivamente, pela seguinte ordem: +

+
    +
  1. Ficheiros cache
  2. +
  3. Memória(RAM)
  4. +
  5. Estado da rede
  6. +
  7. Processos ativos
  8. +
  9. Armazenamento
  10. +
  11. Backups / Cópias de Segurança
  12. +
  13. DVD's ou impressões
  14. +
+

+ A seguinte ordem é importante pelo facto de ao examinar um sistema, é preciso ter precisão para encontrar a origem do problema, e na maioria dos casos essas evidências estão na memória gerada pelo sistema no instante em que ocorre o ataque, sendo esse o foco principal de um investigador. +

+ +
+ +

Análise de evidências

+ +

+ A análise de evidências é muito importante para o desenvolvimento de métodos eficazes para combate a malwares, pois permite-nos examinar máquinas afetadas por qualquer tipo de ameaça. Estas podem ser, por exemplo: +

+
    +
  • Malware
  • +
  • Spyware
  • +
  • Trojans
  • +
  • Ransomware
  • +
+ +
+ +

Vulnerabilidades e como combatê-las

+

+ Quando se fala em vulnerabilidades, refere-se a uma possível falha num sistema que, a partir da mesma, pode ser comprometido o sistema, o utilizador ou uma empresa. Deve ser encarada como algo de alta prioridade, e deve ser resolvida o quão antes possível, antes que ocorra algo inesperado. Por este motivo deve sempre existir a identificação, análise e retificação de vulnerabilidades. +

+

+ Como forma de ajuda a combater vulnerabilidades, existem vários websites com as vulnerabilidades mais comuns, e todas as informações necessárias para poder saber a sua origem e como combatê-las. +

+ +

Common Vulnerabilities and Exposures (CVE)

+

+ A CVE é um projeto da MITRE, cujo intuito é identificar, definir e catalogar as várias vulnerabilidades que existem no mundo digital. Estas ameaças são sempre publicadas por parceiros da própria CVE, obtendo assim uma consistência nas descrições das vulnerabilidades, para quem desejar explorar múltiplas vulnerabilidades e não ter muitos conflitos com as explicações das mesmas. +

+ +

Common Vulnerability Scoring System (CVSS)

+

+ A CVSS é um sistema que atribui a cada vulnerabilidade um grau de gravidade. Este é classificado do seguinte modo: +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityBase Score Range
None0.0
Low0.1 - 3.9
Medium4.0 - 6.9
High7.0 - 8.9
Critical9.0 - 10.0
+

+ A tabela acima representa os graus de gravidade na classificação CVSS +

+
+ +
+ +

+ Apenas são usados valores definitivos, que significa que não vai existir mudança de valores para uma vulnerabilidade. Daí surgir a importância de uma calculadora capaz de medir com precisão o grau de gravidade de uma vulnerabilidade. Se a mesma se agravar, é criado um novo catálogo com a nova ameaça. +

+ +

Common Weakness and Enumeration (CWE)

+

+ A CWE é outro projeto da MITRE, que lista todos os tipos de fraquezas de software e hardware comuns. Uma fraqueza é uma condição num software, hardware, firmware ou serviço que pode vir a introduzir uma vulnerabilidade a partir delas. +

+

+ O grande objetivo da CWE é parar as vulnerabilidades na sua raíz, educando qualquer pessoa que trabalha no ramo da informática, de modo a evitar erros comuns e contribuir para um espaço mais seguro numa empresa. +

+ +

Open Web Application Security Project (OWASP)

+

+ O OWASP é uma fundação open-source com o intuito de melhorar a segurança de software no geral, ensinando pessoas pelo mundo todo para existir uma web mais segura. +

+

+ Dentro desta fundação, foi criada um projeto bastante importante no mundo + cibernético, o OWASP Top Ten. Este projeto consiste em, no final de cada ano, organizar um top 10 das ameaças mais comuns nesse mesmo ano. É feito sempre uma comparação com anos anteriores para verificar as mudanças e melhorias que aconteceram. Ao ser realizada a comparação, consegue-se saber se houve melhorias face ao combate de vulnerabilidades anteriores, as novas vulnerabilidades introduzidas e uma breve explicação de cada uma delas. +

+

+ No seguinte esquema, está representada a comparação das vulnerabilidades do ano 2017, e do ano 2021: +

+ +
+ +

Comparação das ameaças mais comuns entre 2017 e 2021

+
+ +
+ +

Softwares usados para análises

+

+ Para poder examinar e tirar conclusões de anomalias nos sistemas, é necessário utilizar ‘software’ dedicado para este tipo de problemas. Os softwares mais utilizados são o Autopsy, o OWASP-ZAP, e o Docker. +

+

+ Também é importante referir que para examinar discos e outras unidades de memória, é necessário usar uma máquina virtual Kali. +

+ +

Kali

+

+ O Kali é um sistema operativo Linux de base Debian. É usada especificamente para análise de vulnerabilidades, invasão de redes, entre outros fins de forense. No website oficial existem várias opções de download do Kali. Uma das mais utilizadas para análise de máquinas é a Live Boot. +

+

+ A Live Boot consiste num sistema operativo temporário e inalterável, ou seja, ao reiniciar ou desligar, volta às definições default. Como não se pode fazer alterações definitivas na máquina, ela tem de estar pré-definida com os programas necessários para qualquer tipo de análise. Por ser um sistema inalterável, tem a vantagem de ser possível mexer nas evidências sem correr o risco de alterar as mesmas, algo que invalidaria automaticamente as provas. +

+

+ Por ser um sistema de base Linux, grande parte dos sistemas de ficheiros são acessíveis, algo que não é possível num sistema Windows. +

+

+ Existe também a possibilidade de usar o Kali em máquina virtual, usando um disco virtual, que significa que guarda todas as alterações como um computador faria. Este tipo de máquina é usada para explorar vulnerabilidades, por exemplo, em redes. +

+

+ Estas ferramentas devem ser usadas explicitamente com o consentimento total da vítima, sendo estritamente proibido realizar um ataque não autorizado a qualquer empresa ou indivíduo. São apenas ferramentas para fundos de educação. +

+ +

Autopsy

+

+ O Autopsy é uma aplicação open-source que é capaz de analisar quase todos os tipos de discos, e foi escrita em Java. Esta usa plugins feitos pela comunidade para uma experiência customizável para cada utilizador, permitindo assim uma livre escolha dependendo das necessidades de cada pessoa. +

+

Esta aplicação é focada em vários campos, como, por exemplo:

+
    +
  • Pesquisas em Universidades/Academias
  • +
  • Investigações em empresas
  • +
  • Governo e Órgãos militares
  • +
  • Investigações na polícia
  • +
+

+ A grande vantagem de usar o Autopsy ao invés de usar um sistema Kali por Live Boot, é que pode-se analisar unidades de disco diretamente a partir do sistema operativo principal, aumentando significamente o desempenho da análise, pois não se usa uma pen ou uma máquina virtual para usar o sistema operativo. +

+

OWASP - Zed Attack Proxy (OWASP-ZAP)

+

+ A OWASP-ZAP é uma aplicação open-source desenvolvida pela OWASP, com o objetivo de explorar vulnerabilidades num website. O programa vem com inúmeras ferramentas de Penetration Testing, para detetar o máximo de vulnerabiliades possíveis. +

+

Esta aplicação tem como vantagens:

+
    +
  • Ser reutilizável, sendo capaz de guardar reports
  • +
  • Bom para iniciantes
  • +
  • É grátis
  • +
+

+ Por outro lado, não é a ferramenta mais prática de usar em empresas, pelo facto de ser open-source e não ter tanta privacidade como outras ferramentas pagas. +

+

+ É recomendado pela OWASP-ZAP o uso desta aplicação juntamente com o Docker, para a automatização das ferramentas existentes no programa. +

+

+ Também é importante referir o projeto Juice Shop, que consiste numa aplicação escrita em JavaScript e que simula uma loja genérica de vários produtos, que contém uma série de vulnerabilidades. +

+

+ É aconselhado usar a imagem deste projeto no Docker, para a exploração dos erros ser efetuada local e eficientemente. Estes erros têm vários graus de dificuldade de serem explorados, e à medida que se descobre os erros, eles vão sendo guardados num ficheiro log. que contém o que já foi descoberto pelo utilizador. +

+ +

Docker

+

+ O Docker é um programa usado para desenvolver, enviar e correr aplicações. Desta forma, pode-se criar vários containers para correr ou enviar qualquer tipo de aplicação num espaço isolado. Tem a vantagem de poder ter várias aplicações a correr localmente no mesmo sistema sem consumir muito hardware, que é um grande benefício na área da cibersegurança, pois é usado vários programas ao mesmo tempo. +

+

No seguinte esquema é apresentado que mostra a lógica por detrás do Docker:

+ +
+ +

Esquema que representa o funcionamento do Docker

+
+ +

+ Os containers são feitos e funcionam em base de imagens, semelhante a um sistema operativo. Estas são normalmente imagens de outras imagens, apenas com algumas modificações feitas. +

+

+ Uma imagem bastante conhecida neste campo é a imagem do Juice Shop, um projeto referido na Seção OWASP-ZAP. Com o Docker e a imagem deste projeto, podemos criar um container que vai correr o site, localmente. A grande vantagem de correr ficheiros localmente é que pode-se fazer os testes sem qualquer problema, é possível fazer certos tipos de ataque que na Internet seriam considerados ilegais mas que são, sem dúvida alguma, cruciais para o bom funcionamento de um website. +

+ +
+ + + + + + \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/Makefile b/1ano/1semestre/iei/infor2022-ap-g16/report-template/Makefile new file mode 100755 index 0000000..9aacf00 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/report-template/Makefile @@ -0,0 +1,16 @@ +.PHONY: all clean cleanall + +all: documento.pdf + +documento.pdf: documento.tex bibliografia.bib + pdflatex documento.tex + biber documento + pdflatex documento.tex + pdflatex documento.tex + +clean: + rm -f *.aux *.blg *.bbl *.toc *.log *.lof *.lot *.log.xml *.bcf *.out *.run.xml + +cleanall: clean + rm -f documento.pdf + diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/bibliografia.bib b/1ano/1semestre/iei/infor2022-ap-g16/report-template/bibliografia.bib new file mode 100755 index 0000000..7d64789 --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/report-template/bibliografia.bib @@ -0,0 +1,28 @@ +@misc{glisc, + author={{Grey Literature International Steering Committee}}, + title={{GLISC}}, + month={oct}, + year={2014}, + note = "[Online; acedido em Outubro 2014]" +} + +@article{kill-chain, + author = {Supragya Karki}, + title = {Cyber Kill Chain — Offensive and Defensive Approach}, + journal = {CryptoGen Nepal}, + year = {2021}, +} + +@misc{top-10, + author = {The OWASP Foundation}, + title = {OWASP Top Ten}, + year = {2021}, + note = "[Edição mais recente]", + url = {https://owasp.org/www-project-top-ten/}, +} + +@misc{docker-logic, + author = {The Docker Team}, + title = {Docker Overview}, + url = {https://docs.docker.com/get-started/overview/}, +} \ No newline at end of file diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/cyber_kill_chain.png b/1ano/1semestre/iei/infor2022-ap-g16/report-template/cyber_kill_chain.png new file mode 100644 index 0000000..71f0551 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/report-template/cyber_kill_chain.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/docker-scheme.png b/1ano/1semestre/iei/infor2022-ap-g16/report-template/docker-scheme.png new file mode 100644 index 0000000..2ecf9bb Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/report-template/docker-scheme.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.pdf b/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.pdf new file mode 100644 index 0000000..1fcae19 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.pdf differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.tex b/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.tex new file mode 100644 index 0000000..f18208d --- /dev/null +++ b/1ano/1semestre/iei/infor2022-ap-g16/report-template/documento.tex @@ -0,0 +1,455 @@ +\documentclass{report} +\usepackage[T1]{fontenc} % Fontes T1 +\usepackage[utf8]{inputenc} % Input UTF8 +\usepackage[backend=biber, style=ieee]{biblatex} % para usar bibliografia +\usepackage{csquotes} +\usepackage[portuguese]{babel} %Usar língua portuguesa +\usepackage{blindtext} % Gerar texto automaticamente +\usepackage{hyperref} % para autoref +\usepackage{graphicx} +\usepackage{indentfirst} +\usepackage[printonlyused]{acronym} + + +\bibliography{bibliografia} + + +\begin{document} +%% +% Definições +% +\def\titulo{CIBERSEGURANÇA} +\def\data{DATA} +\def\autores{Rúben Gomes, Tiago Garcia} +\def\autorescontactos{113435 rlcg@ua.pt, 114184 tiago.rgarcia@ua.pt} +\def\versao{VERSÃO 1} +\def\departamento{Dept. de Eletrónica, Telecomunicações e Informática} +\def\empresa{Universidade de Aveiro} +\def\logotipo{ua.pdf} + +% +%%%%%% CAPA %%%%%% +% +\begin{titlepage} + +\begin{center} +% +\vspace*{50mm} +% +{\Huge \titulo}\\ +% +\vspace{10mm} +% +{\Large \empresa}\\ +% +\vspace{10mm} +% +{\LARGE \autores}\\ +% +\vspace{30mm} +% +\begin{figure}[h] + \center + \includegraphics{ua} +\end{figure} +% +\vspace{30mm} +\end{center} +% +\begin{flushright} +\versao +\end{flushright} +\end{titlepage} + +%% Página de Título %% +\title{% +{\Huge\textbf{\titulo}}\\ +{\Large \departamento\\ \empresa} +} +% +\author{% + \autores \\ + \autorescontactos +} +% +\date{\today} +% +\maketitle + +\pagenumbering{roman} + +%%%%%% RESUMO %%%%%% +\begin{abstract} +Neste trabalho é abordado o tema de cibersegurança, tema este que, com desenvolver gradual das tecnologias, torna-se cada vez mais importante. \ Vulnerabilidades surgem a cada dia, e há cada vez mais ataques cibernéticos. \ Com este projeto procuramos tocar nos pontos mais importantes do mundo digital. \bigskip + +Este trabalho está dividido em 2 grandes capítulos, a Cibersegurança no geral e as Vulnerabilidades. \par +O capítulo da Cibersegurança no geral fala de uma ideia geral da cibersegurança, a sua importância, os tipos de ameaças existentes, como ataques, botnets, malware, entre muitos outros. \ O grande objetivo deste capítulo é introduzir ao leitor o conceito de cibersegurança, o que é, para que é importante bem como os diversos perigos a que o usuário comum está exposto nos dias que correm. \par +O capítulo das Vulnerabilidades fala, como o nome indica, de vulnerabilidades em sistemas. \ Entre os métodos de análise, definições de termos usados em cibersegurança, e programas utilizados para o combate às mesmas, procura-se demonstrar ao leitor o quão vasto é o mundo online, e que o mundo todo está constantemente exposto a vários tipos de vulnerabilidades. \ Embora acabem por existir soluções, cada um deve ter sempre o seu cuidado a usar uma máquina. \ É também importante reforçar a ideia que o software usado em análises é permutável, ou seja, ao usá-lo mutuamente, obtém-se melhores resultados(desde que não tenham os mesmos propósitos!). \bigskip + +Com isto, os autores consideram que este relatório é ideal para qualquer leitor que deseja saber algo mais sobre o mundo digital. +\end{abstract} + +%%%%%% Agradecimentos %%%%%% +%Segundo glisc deveria aparecer após conclusão +%\renewcommand{\abstractname}{Agradecimentos} +%\begin{abstract} +%Eventuais agradecimentos. +%Comentar bloco caso não existam agradecimentos a fazer. +%\end{abstract} + + +\tableofcontents +\listoftables % descomentar se necessário +\listoffigures % descomentar se necessário + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\clearpage +\pagenumbering{arabic} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter*{Introdução} +\label{ch:introducao} + +Com o passar dos anos, as tecnologias que temos ao nosso dispor tem evoluído de uma forma rápida e sem fim, como, por exemplo, o \textit{hardware} de um computador.\ Mas, com constantes evoluções, também vem uma necessidade de responsabilidade, pois com quanto mais recursos existirem, maior será o impacto de danos a indivíduos ou entidades.\\ + +Com este relatório, irá ser abordado um tópico bastante sensível na atualidade, a Cibersegurança, bem como as diversas vulnerabilidades associadas de formas de nos protegermos contra as mesmas. + +\chapter{Cibersegurança no geral} +\label{ch:ciberseguranca-no-geral} +\section{Conceito} +Quando os sistemas e ambientes digitais foram criados não existia quase nenhuma interação entre dispositivos e a pouca que existia era efetuada por cabo.\ Porém, quando a internet foi criada, a interação entra dispositivos digitais aumentou e com isso, tal como acontece com interações humanas, vieram diversos perigos e ameaças aos utilizadores.\ Da mesma forma que existem crimes no mundo físico também existem crimes digitais e da mesma forma que existem soluções e entidades responsáveis pela prevenção e combate a crimes físicos, também os mesmos existem para o mundo digital, proporcionando cibersegurança aos utilizadores da internet e ambientes digitais. + +\section{Tipos de ameaças} +\label{sec:ameacas} +\subsection{Ameaças cibernéticas} +Conjunto de malware e software com capacidade de afetar o funcionamento normal de equipamentos digitais.\ Muitas vezes usadas para ciberterrorismo e causar danos graves com o intuito de lucrar ou impossibilitar o trabalho usual de uma entidade.\\ +\subsubsection{\large Botnets} +\label{subsubsec:botnets} +Botnets são robos digitais que conseguem infetar dispositivos, tal como um vírus e a partir daí permitir que utilizadores remotos tenham acesso à máquina onde se encontram alojados.\ Estas máquinas são muitas vezes usadas para fazer tarefas ilícitas e ilegais por parte do utilizador remoto sem que este seja exposto por não ser a máquina do mesmo a realizar as ações. +\par Estes botnets podem contaminar computadores, dispositivos móveis, \textit{routers} e dispositivos \ac{iot}. +\par Da mesma maneira que um vírus tenta infetar o corpo humano através de falhas no sistema imunitário, também estes bots tentam infetar os dispositivos através de falhas de segurança.\ É possível detetar que o dispositivo se encontra infetado a partir da deteção de comportamentos anormais por parte da máquina, por exemplo quando esta trabalha de forma mais lenta do que o normal ou quando durante a utilização aparecem mensagens de erro aleatórias.\\ +\subsubsection{Tipos de botnets} +Dentro dos botnets existem dois tipos: \underline{Cliente Servidor} e \underline{Peer-to-Peer} + +\begin{itemize} +\item Cliente servidor $\rightarrow$ +Este é o modelo dos botnets mais antigos em que os dispositivos infetados (clientes) recebem intruções de um outro dispositivo que os controla (servidor) +\item Peer-to-peer $\rightarrow$ Este modelo corrige algumas falhas que o modelo de cliente servidor tinha.\ Em vez de ser establecida apenas uma conexão entre dois dispositivos (cliente e servidor), neste modelo todos os dispositivos infetados estão conectados entre si, todos a ser controlados pelo mesmo dispositivo que dá as intruções a todos os outros.\ Isto permite que no caso de haver uma falha com um dos dispositivos infetados, a rede continue online e funcional.\\ +\end{itemize} +\subsubsection{\large \ac{ddos}} +\label{subsubsec:ddos} +Estas ameaças são das mais comuns e mais utilizadas pela comunidade de atacantes.\ O objetivo destes ataques é levar o consumo de recursos do servidor/aplicação ao limite.\ Uma vez sem recursos disponiveis, o servidor acaba por ter falhas de funcionalidade ou pode chegar mesmo a ir abaixo e ficar offline.\\ +A quantidade dste tipo de ataques têm vindo a aumentar substancialmente, segundo a Microsoft\footnote{Fonte: \url{https://www.microsoft.com/en-us/security/business/security-101/what-is-a-ddos-attack}}, a Azure Networking registou, em 2021, um aumento de 25\% a mais de casos de \ac{ddos} em relação a 2020. + +\subsubsection{Functionamento de \ac{ddos}} +Durante estes ataques, um conjunto de Botnets~(\ref{subsubsec:botnets}) ataca uma aplicação/servidor com o objetivo de desgastar e levar o consumo de recursos ao limite.\ Fazem isto procedendo ao uso exagerado de solicitações \ac{http}.\ Uma vez que os atacantes usam estes bots, conseguem também acesso à base de dados, podendo conseguir roubar informação sensivel e, uma vez que os recursos do servidor já estão no limite, os proprietários e responsáveis pela segurança do servidor têm dificuldade na defesa do seu sistema.\ Estes ataques podem demorar diversos intervalos de tempo, desde minutos até mesmo dias. + +\subsubsection{Tipos de ataques \ac{ddos}} +Existem três tipos de ataques \ac{ddos}: +\begin{itemize} + \item Ataque volumétrico $\rightarrow$ estes ataques baseam-se na sobrecarga do servidor com tráfego, sendo o tipo de ataque mais comum. + \item Ataque de protocolo $\rightarrow$ estes ataques atacam certas camadas de protocolos de segurança eliminando limites de tráfego o que permite uma mais fácil sobrecarga dos recursos. + \item Ataque a camadas de recursos $\rightarrow$ estes ataques são usados principalmente em redes de servidores pois permitem o bloqueio na troca de informação entre os diversos hospedeiros. +\end{itemize} +Durante um ataque \ac{ddos} podem ser usados apenas um ou mais destes tipos, muitas vezes começa como um dos tipos para debilitar os sistemas de segurança para que depois possam ser usados ataques de exaustão do sistema. + +\subsection{Guerras cibernéticas} +Por vezes estas ameaças e armas cibernéticas são usadas para criar guerras.\ Estas são muito prejudiciais para as vítimas da guerra mas benificial para o atacante pois este consegue muitas vezes vencer a guerra sem qualquer custo para si mas leva a sérios danos à vítimas, explorando falhas de segurança nos seus sistemas. +\par As vítimas são muitas vezes países ou empresas e não entidades pequenas, sendo atacados não apenas dados das entidades mas também os próprios sistemas, levando ao corrompimento de parte do functionamento da entidade. +\par Estas guerras são também usadas no roubo de informação desde dados simples até mesmo dados bancários ou na espionagem de dados militares ou diplomáticos.\ Outro uso dado a estas guerras é a corrupção e a manipulação de dados para benificio de uma certa entidade como acontece em algumas disputas de poder. +\par Exixtem duas formas de guerras: ARC e ERC . + +\subsubsection{ARC} +Estas guerras são responsáveis pela destruição e degradação de redes e da informação com a qual estas trabalham.\ Podem ser usados \ac{ddos} para provocar sobrecarga no servidor fazendo pedidos de informação de quantidade superior à que o servidor aguenta ou podem-se criar bloqueios nos servidores para impedir o acesso aos mesmos por parte dos utilizadores. +\subsubsection{ERC} +Estas guerras são as responsáveis pelo espionamento de entidades e por vezes provocar danos colaterais na rede durante o processo. + +\subsection{Internet banking} +Tal como o nome sugere estas ameaças procuram tirar proveito de falhas em sistemas bancários quer bancos financeiros quer bancos de dados.\ Com a exploração de vulnerabilidades nestes bancos, o atacante consegue um grande acesso à informação dos utilizadores, usando essa informação para proveito próprio posteriormente. +\par Muitos dos sistemas usam uma \ac{api} que permite a utilização do sistema por parte de aplicações externas.\ Por exemplo, o \href{https://www.paypal.com/}{PayPal} tem uma \ac{api} que permite que outras aplicações o usem como método de pagamento.\ No entanto, estas \ac{api} são também bastante sujeitas a ataques \ac{ddos}~(\ref{subsubsec:ddos}), entre outros.\ Outro problema com a sua encriptação é o baixo nível da complexidade das chaves de autenticação usadas (muitas vezes são pins numéricos com poucos digitos). + +\subsection{Mobile Malware} +Este género de malware pode ter a capacidade de roubar a informação do dispositivo, inutilizar aplicações.\ Estas ameaças podem facilmente se espalhar através do Bluetooth. +\subsubsection{Mobile malwares mais usados} { +\begin{itemize} + \item Banking $\rightarrow$ Captura dados de logins do usuário + \item Ransomware $\rightarrow$ Bloqueia ficheiros locais + \item Spyware $\rightarrow$ Controla a atividade do utilizador + \item Adware $\rightarrow$ Constantes publicidades + \item MMS $\rightarrow$ Usa mensagens para explorar falhas nas bibliotecas do andriod +\end{itemize} +} +Com estes malwares, o usuário corre o risco de ter dinheiro, informação pessoal/profissional/empresarial roubadas, podendo ser posteriormente vendidas no mercado negro da internet. +\pagebreak +\section{Programação aplicada à Cibersegurança} +Como é óbvio, para a automatização quer seja para os sistemas de ataque ou para os sistemas de defesa é usada bastante programação e como isto não são sistemas dísponivels a todos os utilizadores, cada hacker cria a sua aplicação à sua maneira para atingir os seus objetivos. +\subsection{Linguagens mais usadas em hacking} +\begin{enumerate} + \item \href{https://www.python.org/}{Python} + \item C + \item \href{https://www.php.net/}{PHP} + \item \href{https://cplusplus.com/}{C++} +\end{enumerate} +\subsection{Sistemas operativos usados em hacking} +Todos os hackers optam pelo uso de uma distribuição de linux e embora a maior parte delas funcionem, o \href{https://www.kali.org/}{Kali Linux} é o mais usado, entramos em mais detalhes mais à frente em~\ref{subsubsec:kali}. + +\chapter{Vulnerabilidades} +\label{ch:vulnerabilidades} +\section{Análise de vulnerabilidades} +\label{sec:analise-de-vulnerabilidades} +A análise de vulnerabilidades no papel da Cibersegurança é muito importante. \ Sem ela, não existiria nenhuma melhoria no ramo de combate às ameaças cibernéticas, pois sem desenvolvimento, não haveria métodos de nos proteger dos diversos tipos de ataque que se conhece. \par +Este tópico é dividido em vários ramos, como a~\textbf{\nameref{subsec:digital-forensics}}, a~\textbf{\nameref{subsec:incident-response}}, entre outros. + +\subsection{Digital Forensics} +\label{subsec:digital-forensics} +A Digital Forensics é, como o nome indica, a forense digital, e é a obtenção e análise de dados de uma forma pura, sem quais quer tipos de distorção e sem tendências para qualquer lado, de modo a reconstruír o que se passou no passado com o sistema. \par +Tem como objetivo examinar dados de sistemas, ativdidade de utilizadores do sistema, programas em execução, entre outras métricas que possam ajudar a determinar se está a decorrer um ataque e quem está por detrás do ataque. \par +Deve-se ter sempre em conta a preservação dos dados. \ Se o caso a ser estudado for levado a tribunal e se descobrir que os dados foram, de qualquer forma, manipulados, é o suficiente para a prova de esses mesmos dados ser completamente anulada, e até mesmo levar o caso contra quem apresentou essa prova. + +\newpage + +\subsubsection{\ac{dfi}} +Com a \ac{dfi}, entra-se na parte judicial das investigações.\ É uma investigação mais especializada, pois devem-se usar métodos e técnicas que permitam a que as evidências apresentadas possam ser admissíveis num tribunal.\par +O grande objetivo é chegar à causa raíz do problema/evento e garantir com clareza que as evidências não foram manipuladas de forma alguma, não levantando quaisquer questões ou dúvidas.\par +Deve ser realizado um \ac{dfi}, por exemplo: + +\begin{itemize} + \item Resposta a um incidente + \item Investigações criminais + \item Corrigir falhas de segurança +\end{itemize} + +\subsection{Métodos de Análise} +\label{subsec:metodos-de-analise} +Existem dois tipos conhecidos de métodos de análise de evidências, o \textbf{Método Tradicional} e \textbf{Método Vivo} + +\subsubsection{Método Tradicional(Post mortem)} +O método tradicional consiste na análise de evidências com o ststema desligado, acedendo ao disco numm modo inalterável(read-only), e examinar, por exemplo: +\begin{itemize} + \item Logs do sistema + \item E-mails + \item Ficheiros + \item Metadados +\end{itemize} + +\subsubsection{Método Vivo (Live forensic)} +O método vivo resulta da análise da máquina, com a mesma ligada. \ Pode ser usado como prova uma screenshot da máquina. \ No caso de ser necessário examinar um disco, pode vir a demorar algum tempo, especialmente se for de grande capacidade de armazenamento. + +\newpage + +\subsection{Incident Response} +\label{subsec:incident-response} +Incident Response(resposta ao incidente) é o procedimento que um sujeito ou, nomeadamente uma empresa toma para que se prepare, detete, contenha e recupere de uma eventual perda de dados. \par +Esta é bastante importante em empresas para minimizar os danos eventuais de uma invasão de dados, ou seja, não haver perda de dados e, até mesmo, impedir que a mesma aconteça. \par +Existem vários tipos de equipas específicas para cada tipo de invasão, como \ac{cirts}, \ac{certs}, entre outras. + +\subsubsection{Threat Intelligence} +A Threat Intelligence baseia-se na obtenção e análise de informações que ajudem a identificar possíveis ataques. \ Esta vem com o benefício de ter uma segurança proativa, ou seja, evitar qualquer tipo de ameaças a uma empresa. \par +O esquema seguinte demonstra o que constitui uma Kill Chain: + +\begin{figure}[h] + \center + \includegraphics[width=350pt]{cyber_kill_chain} + \caption{As 7 fases de um ataque cibernético}~\cite{kill-chain} + \label{fig:chainimage} +\end{figure} + +Também é importante mencionar as inúmeras organizações que ajudam e facilitam o combate aos ataques cibernéticos, sendo a mais destacada a MITRE ATT\&CK. \bigskip + +A MITRE ATT\&CK é uma organização focada na obtenção de informações de ciberataques apenas por observação do que acontece no mundo digital. \ É conhecida por ter uma vasta base de dados de ataques com informações de quase todos os ataques que aconteceram. \par + +\newpage + +Além de identificar os problemas, também disponibiliza soluções para os mesmos, tudo isto sem qualquer custo tanto para uso pessoal como para uso empresarial. \ Isto obviamente reforça a ideia de colaboração, que é bastante importante no ramo da informática. + +\subsubsection{Ordem de Volatilidade} +É muito importante ter em conta a ordem de volatilidade dos ficheiros criados por um sistema, pois devemos começar sempre pelos ficheiros que estão mais em contacto com o sistema em si(como ficheiros cache, RAM, etc.). \ A ordem por base no tempo em que estão disponíveis e acessíveis é, respetivamente: +\begin{enumerate} + \item Ficheiros cache + \item Memória(RAM) + \item Estado da rede + \item Processos ativos + \item Armazenamento + \item Backups / Cópias de Segurança + \item DVD's ou impressões +\end{enumerate} + +Esta ordem é importante pelo facto de ao examinar um sistema, é preciso ter precisão para encontrar a origem do problema, e na maioria dos casos essas evidências estão na memória gerada pelo sistema no instante em que ocorre o ataque, sendo esse o foco principal de um investigador. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Análise de evidências} +\label{sec:analise-de-evidencias} +A análise de evidências é muito importante para o desenvolvimento de métodos eficazes para combate a malwares, pois permite-nos examinar máquinas que foram afetadas por qualquer tipo de ameaça. \ Estas podem ser, por exemplo: +\begin{itemize} + \item Malware + \item Spyware + \item Trojans + \item Ransomware +\end{itemize} + +\subsection{Vulnerabilidades e como combatê-las} +\label{subsec:vulnerabilidades-e-como-combate-las} +Quando se fala em vulnerabilidades, refere-se a uma possível falha num sistema que, a partir da mesma, pode ser comprometido o sistema, o utilizador ou uma empresa. \ Deve ser encarada como algo de alta prioridade, e deve ser resolvida o quão antes possível, antes que ocorra algo inesperado. \ Por este motivo deve sempre existir a identificação, análise e retificação de vulnerabilidades. \bigskip + +Como forma de ajuda a combater vulnerabilidades, existem vários websites com as vulnerabilidades mais comuns, e todas as informações necessárias para poder saber a sua origem e como combatê-las. + +\subsubsection{\ac{cve}} + A~\ac{cve} \href{https://www.cve.org/}{(website)} e um projeto da MITRE, cujo intuito é identificar, definir e catalogar as várias vulnerabilidades que existem no mundo digital. \ Estas ameaças são sempre publicadas por parceiros da própria \ac{cve}, obtendo assim uma consistência nas descrições das vulnerabilidades, para quem desejar explorar múltiplas vulnerabilidades e não ter muitos conflitos com as explicações das mesmas. + +\subsubsection{\ac{cvss}} +A \ac{cvss} \href{https://www.first.org/cvss/}{(website)} é um sistema que atribui a cada vulnerabilidade um grau de gravidade. \ Este é classificado\footnote{Fonte: \url{https://nvd.nist.gov/vuln-metrics/cvss}} do seguinte modo: + +\begin{table}[htp] + \begin{center} + \begin{tabular}{|l||c||r|} + \hline + Severity & Base Score Range \\ \hline\hline + None & 0.0 \\ \hline + Low & 0.1 - 3.9 \\ \hline + Medium & 4.0 - 6.9 \\ \hline + High & 7.0 - 8.9 \\ \hline + Critical & 9.0 - 10.0 \\ \hline + \end{tabular} + \end{center} + \caption{CVSS Score} + \centerline{A tabela acima representa os graus de gravidade na classificação \ac{cvss}} + \label{tab:cvss} +\end{table} + +Apenas são usados valores definitivos, que significa que não vai existir mudança de valores para uma vulnerabilidade. \ Daí surgir a importância de uma calculadora capaz de medir com precisão o grau de gravidade de uma vulnerabilidade. \ Se a mesma se agravar, é criado um novo catálogo com a nova ameaça. + +\subsubsection{\ac{cwe}} +A \ac{cwe} \href{https://cwe.mitre.org/}{(website)} é outro projeto da MITRE, que lista todos os tipos de fraquezas de software e hardware comuns. \ Uma fraqueza é uma condição num software, hardware, firmware ou serviço que pode vir a introduzir uma vulnerabilidade a partir delas. \par +O grande objetivo da \ac{cwe} é parar as vulnerabilidades na sua raíz, educando qualquer pessoa que trabalha no ramo da informática, de modo a evitar erros comuns e contribuir para um espaço mais seguro numa empresa. + +\subsubsection{\ac{owasp}} +O \ac{owasp} \href{https://owasp.org/}{(website)} é uma fundação open-source com o intuito de melhorar a segurança de softwares no geral, ensinando pessoas pelo mundo todo para existir uma web mais segura. \bigskip + +Dentro desta fundação, foi criada um projeto bastante importante no mundo cibernético, o OWASP Top Ten~\cite{top-10}. \ Este projeto consiste em, no final de cada ano, organizar um top 10 das ameaças mais comuns nesse mesmo ano. \ É feito sempre uma comparação com anos anteriores para verificar as mudanças e melhorias que aconteceram. \ Ao ser realizada a comparação, consegue-se saber se houve melhorias face ao combate de vulnerabilidades anteriores, as novas vulnerabilidades introduzidas e uma breve explicação de cada uma delas. \bigskip + +No seguinte esquema~\footnote{Fonte: \url{https://owasp.org/www-project-top-ten/}}, está representada a comparação das vulnerabilidades do ano 2017, e do ano 2021: + +\begin{figure}[h] + \centering + \includegraphics[width=350pt]{top10-2021} + \caption{Comparação das ameaças mais comuns entre 2017 e 2021} + \label{fig:top10-2021} +\end{figure} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Softwares usados para análises} +\label{subsec:softwares-usados-para-analises} +Para poder examinar e tirar conclusões de anomalias nos sistemas, é necessário utilizar software dedicado para este tipo de problemas. \ Os softwares mais utilizados são o~\nameref{subsubsec:autopsy}, o OWASP-ZAP (referido na \autoref{subsubsec:owasp-zap}), e o~\nameref{subsubsec:docker}. \par +Também é importante referir que para examinar discos e outras unidades de memória, é necessário usar uma máquina virtual~\nameref{subsubsec:kali}. \par + +\subsubsection{Kali} +\label{subsubsec:kali} +O Kali é um sistema operativo Linux de base Debian. \ É usada especificamente para análise de vulnerabilidades, invasão de redes, entre outros fins de forense. \ No \href{https://www.kali.org/get-kali/}{site oficial} existem várias opções de download do Kali. \ Uma das mais utilizadas para análise de máquinas é a Live Boot. \bigskip + +A Live Boot consiste num sistema operativo temporário e inalterável, ou seja, ao reiniciar ou desligar, volta às definições default. \ Como não se pode fazer alterações definitivas na máquina, ela tem de estar pré-definida com os programas necessários para qualquer tipo de análise. \ Por ser um sistema inalterável, tem a vantagem de ser possível mexer nas evidências sem correr o risco de alterar as mesmas, algo que invalidaria automaticamente as provas. \par +Por ser um sistema de base Linux, grande parte dos sistemas de ficheiros são acessíveis, algo que não é possível num sistema Windows. \bigskip + +Existe também a possibilidade de usar o Kali em máquina virtual, usando um disco virtual, que significa que guarda todas as alteracções como um computador faria. \ Este tipo de máquina é usada para explorar vulnerabilidades, por exemplo, em redes. \par +Estas ferramentas devem ser usadas explicitamente com o consentimento total da vítima, sendo estritamente proibido realizar um ataque não autorizado a qualquer empresa ou indivíduo. \ São apenas ferramentas para fundos de educação. + + +\subsubsection{Autopsy} +\label{subsubsec:autopsy} +O Autopsy é uma aplicação open-source que é capaz de analisar quase todos os tipos de discos, e foi escrita em Java. \ Esta usa plugins feitos pela comunidade para uma experiência customizável para cada utilizador, permitindo assim uma livre escolha dependendo das necessidades de cada pessoa. \par +Esta aplicação é focada em vários campos, como, por exemplo: +\begin{itemize} + \item Pesquisas em Universidades/Academias + \item Investigações em empresas + \item Governo e Órgãos militares + \item Investigações na polícia +\end{itemize} +A grande vantagem de usar o Autopsy ao invés de usar um sistema Kali por Live Boot, é que pode-se analisar unidades de disco diretamente a partir do sistema operativo principal, aumentando significamente a performance da análise, pois não se usa uma pen ou uma máquina virtual para usar o sistema operativo. + +\subsubsection{\ac{owasp-zap}} +\label{subsubsec:owasp-zap} +A \ac{owasp-zap} é uma aplicação open-source desenvolvida pela \ac{owasp}, com o objetivo de explorar vulnerabilidades num website. \ O programa vem com inúmeras ferramentas de Penetration Testing, para detetar o máximo de vulnerabiliades possíveis. \par +Esta aplicação tem como vantagens: +\begin{itemize} + \item Ser reutilizável, sendo capaz de guardar reports + \item Bom para iniciantes + \item É grátis +\end{itemize} +Por outro lado, não é a ferramenta mais prática de usar em empresas, pelo facto de ser open-source e não ter tanta privacidade como outras ferramentas pagas. \par +É recomendado pela \ac{owasp} o uso desta aplicação juntamente com o~\nameref{subsubsec:docker}, para a automatização das ferramentas existentes no programa. \bigskip + +Também é importante referir o projeto Juice Shop, que consiste numa aplicação escrita em JavaScript e que simula uma loja genérica de vários produtos, que contém uma série de vulnerabilidades. \par +É aconselhado usar a imagem deste projeto no Docker, para a exploração dos erros ser efetuada localmente e eficientemente. \ Estes erros têm vários graus de dificuldade de serem explorados, e à medida que se descobre os erros, eles vão sendo guardados num ficheiro log que contém o que já foi descoberto pelo untilizador. + +\subsubsection{Docker} +\label{subsubsec:docker} +O Docker é um programa usado para desenvolver, enviar e correr aplicações. \ Desta forma, pode-se criar vários containers para correr ou enviar qualquer tipo de aplicação num espaço isolado. \ Tem a vantagem de poder ter várias aplicações a correr localmente no mesmo sistema sem consumir muito hardware, que é um grande benefício na área da cibersegurança, pois é usado vários programas ao mesmo tempo. \bigskip + +\newpage + +Na seguinte imagem é apresentado um esquema~\cite{docker-logic} que mostra a lógica por detrás do Docker: + +\begin{figure}[h] + \centering + \includegraphics[width=350pt]{docker-scheme} + \caption{Esquema que representa o funcionamento do Docker} + \label{fig:docker-scheme} +\end{figure} + +Os containers são feitos e funcionam em base de imagens, semelhante a um sistema operativo. \ Estas são normalmente imagens de outras imagens, apenas com algumas modificações feitas. \bigskip + +Uma imagem bastante conhecida neste campo é a imagem do Juice Shop, um projeto referido na \autoref{subsubsec:owasp-zap} \ Com o Docker e a imagem deste projeto, podemos criar um container que vai correr o site, localmente. \ A grande vantagem de correr ficheiros localmente é que pode-se fazer os testes sem qualquer problema, é possível fazer certos tipos de ataque que na Internet seriam considerados ilegais mas que são, sem dúvida alguma, cruciais para o bom funcionamento de um website. + +\chapter{Soluções de segurança} +\label{ch:solucoes-de-seguranca} +Para combater todas as ameaças cibernéticas~(\ref{sec:ameacas}) e combater possíveis falhas de segurança, é necessário encontrar soluções de defesa do sistema e dos servidores.\ Há diversas formas de melhorar a segurança e de testar o sistema contra as ameaças, mesmo sem o danificar. +\section{Soluções para o usuário} +Por mais que a cibersegurança tenha de ser assegurada pela entidade responsável pelo sistema em questão, a verdade é que o usuário comum deve ajudar no combate às ameaças e ataques cibernéticos.\ Pode começar pela instrução dos usuários para um melhor uso da internet e outras tecnologias web no intuito de não serem tão facilmente expostas.\ O não abrir links desconhecidos ou suspeitos, a não confiança em toda a informação disponível online (pois por vezes acaba por ser maliciosa), a não transferência de ficheiros e aplicações sem que o seu criador ou gerenciador seja confiável e o não uso de sistemas web piratas pois com eles podem vir uma data de problemas. +\section{Soluções para empresas} +As empresas de tecnologia têm um papel bastante importante no que toca à segurança tanto dos seus sistemas como dos usuários dos seus serviços.\ Para isto as empresas têm de implementar medidas para promover esta mesma segurança.\ Para isto, um dos primeiros passos pode ser o teste da sua segurança que passa por provocar um ataque aos seus próprios sistemas (usando Owasp-Zap para realizar Pen~Testing~\ref{subsubsec:owasp-zap}) para poderem proceder à deteção das suas vulnerabilidades para posteriormente corrigirem os seus problemas e falhas de segurança.\ Outra medida que podem tomar é a monitorização a tempo inteira dos seus recursos e do tráfego dos seus serviços para garantir o bom funcionamento dos mesmos (principalmente para empresas grandes) bem como a resposta rápida por parte da empresa no evento de um ataque.\ Outro possível método, para a proteção de dados dos usuários, é o uso de diferentes servidores para que a informação não roubada caso algum tenha problemas. + +\chapter{Conclusões} +\label{ch:conclusao} +Com isto verifica-se a importância que a cibersegurança tem não só nos dias de hoje mas como no futuro uma vez que a internet, sistemas \ac{iot} e sistemas web vão estar cada vez mais presentes nas vidas do ser humano.\ Para as diversas ameaças~\ref{sec:ameacas} é necessário encontrar soluções de combate à altura.\ Para além disso, muitas empresas não se dão ao trabalho de corretamente corrigir os problemas de cibersegurança o que acaba por expor os seus usuários a riscos desnecessários.\ Com estas falhas das empresas, também os atacantes acabam por ter facilidade nos ciberataques o que lhes proporciona diversas vantagens, desde monetárias até mesmo vantagens diplomáticas (no caso de hacking entre organizações governamentais). +\par Com o capítulo sobre vulnerabilidades~\ref{ch:vulnerabilidades} é possível também ver diversos métodos de analisar os possíveis problemas da segurança de sistemas e posteriormente as formas mais eficazes de os corrigir e que softwares usar para este efeito. + +\chapter*{Contribuições dos autores} +Cada autor contribuiu igualmente para o produto final do trabalho, sendo justamente atribuído a nota de 50\% a cada um. \\ +O autor \ac{rg} realizou o capítulo de Vulnerabilidades completo. \\ +O autor \ac{tg} realizou o capítulo de Cibersegurança no geral e Soluções de segurança. + +\vspace{10pt} +\textbf{Indicar a percentagem de contribuição de cada autor.}\\ + +\ac{rg}, \ac{tg} : 50\%, 50\%\\ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter*{Acrónimos} +\begin{acronym} + \acro{api}[API]{Application Programming Interface} + \acro{certs}[CERTs]{Computer Emergency Response Teams} + \acro{cirts}[CIRTs]{Computer Incident Response Teams} + \acro{cve}[CVE]{Common Vulnerabilities and Exposures} + \acro{cvss}[CVSS]{Common Vulnerability Scoring System} + \acro{cwe}[CWE]{Common Weakness and Enumeration} + \acro{ddos}[DDOS]{Distributed denial-of-service} + \acro{dfi}[DFI]{Digital Forensic Investigation} + \acro{http}[HTTP]{Hypertext Transfer Protocol} + \acro{iot}[IOT]{Internet of Things} + \acro{leci}[LECI]{Licenciatura em Engenharia de Computadores e Informática} + \acro{owasp}[OWASP]{Open Web Application Security Project} + \acro{owasp-zap}[OWASP-ZAP]{OWASP - Zed Attack Proxy} + \acro{rg}[RG]{Rúben Gomes} + \acro{rgpd}[RGPD]{Regulamento Geral sobre a Proteção de Dados} + \acro{tg}[TG]{Tiago Garcia} + \acro{ua}[UA]{Universidade de Aveiro} +\end{acronym} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\printbibliography + +\end{document} diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/top10-2021.png b/1ano/1semestre/iei/infor2022-ap-g16/report-template/top10-2021.png new file mode 100644 index 0000000..a268e97 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/report-template/top10-2021.png differ diff --git a/1ano/1semestre/iei/infor2022-ap-g16/report-template/ua.pdf b/1ano/1semestre/iei/infor2022-ap-g16/report-template/ua.pdf new file mode 100755 index 0000000..460cb18 Binary files /dev/null and b/1ano/1semestre/iei/infor2022-ap-g16/report-template/ua.pdf differ