From 42e4ba219fa134dabd872d19948630e2a6cf5312 Mon Sep 17 00:00:00 2001 From: Doer <181449222+happynet-why@users.noreply.github.com> Date: Thu, 10 Oct 2024 03:58:50 -0400 Subject: [PATCH] initial commit v.0.0.256 --- .gitignore | 5 + config-generator/index.js | 89 + config-generator/package.json | 11 + server/Iran_server/Iran_server_setup.sh | 285 +++ .../chisele_config_manager.js | 90 + server/chisel_config_manager/nginx/confd.conf | 19 + .../chisel_config_manager/nginx/moduled.conf | 24 + server/chisel_config_manager/package.json | 15 + src/.gitignore | 1 + src/build.bash | 131 ++ src/files/etc/config/IR_IP_LIST | 1823 +++++++++++++++++ src/files/etc/config/firewall | 105 + src/files/etc/config/mwan3 | 226 ++ src/files/etc/config/nodogsplash | 27 + src/files/etc/config/pbr | 63 + src/files/etc/config/routro | 38 + src/files/etc/config/rpcd | 16 + src/files/etc/config/tinyproxy | 258 +++ src/files/etc/config/users | 3 + src/files/etc/crontabs/root | 8 + src/files/etc/dropbear/authorized_keys | 1 + src/files/etc/hotplug.d/iface/99-custom | 6 + src/files/etc/init.d/chisel | 50 + src/files/etc/init.d/outlineGate | 46 + src/files/etc/init.d/wifipass | 22 + .../etc/nodogsplash/htdocs/bootstrap.min.css | 6 + .../nodogsplash/htdocs/images/nocensored.jpg | Bin 0 -> 45000 bytes .../etc/nodogsplash/htdocs/images/splash.jpg | Bin 0 -> 2129 bytes src/files/etc/nodogsplash/htdocs/splash.css | 104 + src/files/etc/nodogsplash/htdocs/splash.html | 98 + src/files/etc/nodogsplash/htdocs/status.html | 43 + src/files/etc/rc.local | 259 +++ src/files/usr/bin/binauth.sh | 88 + src/files/usr/bin/check_chisel.sh | 28 + src/files/usr/bin/dragon.sh | 337 +++ src/files/usr/bin/manage_mac_access.sh | 71 + src/files/usr/bin/proxymaster.sh | 45 + src/files/usr/bin/router_updater.sh | 66 + src/files/usr/bin/set_admin_pass.sh | 23 + src/files/usr/bin/shservice.lua | 44 + src/files/usr/bin/wg_prepare_config.sh | 60 + src/files/usr/bin/wg_scripts.sh | 135 ++ src/files/usr/bin/wrong_wifi_pass_checker.sh | 71 + .../usr/share/rpcd/acl.d/ubus-routro.json | 24 + src/files/usr/share/ubus/dragon.json | 11 + src/files/www/bootstrap.bundle.min.js | 7 + src/files/www/bootstrap.min.css | 6 + src/files/www/cgi-bin/api | 109 + src/files/www/dashboard.html | 146 ++ src/files/www/dashboard.js | 243 +++ src/files/www/ethernet.html | 129 ++ src/files/www/ethernet.js | 53 + src/files/www/favicon.ico | Bin 0 -> 270398 bytes src/files/www/firmware.html | 101 + src/files/www/firmware.js | 51 + src/files/www/guest.html | 196 ++ src/files/www/guest.js | 214 ++ src/files/www/heartBeat.js | 31 + src/files/www/index.css | 151 ++ src/files/www/index.html | 40 + src/files/www/index.js | 105 + src/files/www/infinite_reach.html | 145 ++ src/files/www/infinite_reach.js | 166 ++ src/files/www/loading.js | 107 + src/files/www/management.css | 119 ++ src/files/www/management.html | 80 + src/files/www/management.js | 257 +++ .../www/old-dashboard/bootstrap.bundle.min.js | 7 + src/files/www/old-dashboard/bootstrap.min.css | 6 + src/files/www/old-dashboard/dash.html | 194 ++ src/files/www/old-dashboard/dashboard.html | 424 ++++ src/files/www/old-dashboard/index.css | 151 ++ src/files/www/old-dashboard/index.html | 45 + src/files/www/old-dashboard/index.js | 105 + src/files/www/old-dashboard/index_backup.html | 91 + src/files/www/old-dashboard/management.css | 119 ++ src/files/www/old-dashboard/management.html | 117 ++ src/files/www/old-dashboard/management.js | 267 +++ .../www/old-dashboard/management_backup.html | 50 + .../www/old-dashboard/management_backup.js | 246 +++ src/files/www/old-dashboard/script.js | 1110 ++++++++++ src/files/www/old-dashboard/steper.html | 183 ++ src/files/www/old-dashboard/style.css | 39 + src/files/www/old-dashboard/test.html | 16 + src/files/www/outline.html | 105 + src/files/www/outline.js | 120 ++ src/files/www/portal/auth.lua | 81 + src/files/www/portal/bootstrap.min.css | 6 + src/files/www/portal/failed.html | 102 + src/files/www/portal/images/nocensored.jpg | Bin 0 -> 45000 bytes src/files/www/portal/images/splash.jpg | Bin 0 -> 2129 bytes src/files/www/portal/splash.css | 104 + src/files/www/portal/splash.html | 111 + src/files/www/portal/status.html | 43 + src/files/www/portal/success.html | 70 + src/files/www/proxy.html | 108 + src/files/www/proxy.js | 32 + src/files/www/settings.html | 80 + src/files/www/settings.js | 65 + src/files/www/style.css | 52 + src/files/www/ubus.js | 146 ++ src/files/www/vpn.html | 178 ++ src/files/www/vpn.js | 204 ++ src/files/www/wifi.html | 178 ++ src/files/www/wifi.js | 270 +++ utils/IR_IP_LIST | 1823 +++++++++++++++++ utils/IR_IP_LIST copy | 1 + utils/ip_script.bash | 56 + 108 files changed, 14436 insertions(+) create mode 100644 .gitignore create mode 100644 config-generator/index.js create mode 100644 config-generator/package.json create mode 100644 server/Iran_server/Iran_server_setup.sh create mode 100644 server/chisel_config_manager/chisele_config_manager.js create mode 100644 server/chisel_config_manager/nginx/confd.conf create mode 100644 server/chisel_config_manager/nginx/moduled.conf create mode 100644 server/chisel_config_manager/package.json create mode 100644 src/.gitignore create mode 100644 src/build.bash create mode 100644 src/files/etc/config/IR_IP_LIST create mode 100644 src/files/etc/config/firewall create mode 100644 src/files/etc/config/mwan3 create mode 100644 src/files/etc/config/nodogsplash create mode 100644 src/files/etc/config/pbr create mode 100644 src/files/etc/config/routro create mode 100644 src/files/etc/config/rpcd create mode 100644 src/files/etc/config/tinyproxy create mode 100644 src/files/etc/config/users create mode 100644 src/files/etc/crontabs/root create mode 100644 src/files/etc/dropbear/authorized_keys create mode 100644 src/files/etc/hotplug.d/iface/99-custom create mode 100644 src/files/etc/init.d/chisel create mode 100644 src/files/etc/init.d/outlineGate create mode 100644 src/files/etc/init.d/wifipass create mode 100644 src/files/etc/nodogsplash/htdocs/bootstrap.min.css create mode 100644 src/files/etc/nodogsplash/htdocs/images/nocensored.jpg create mode 100644 src/files/etc/nodogsplash/htdocs/images/splash.jpg create mode 100644 src/files/etc/nodogsplash/htdocs/splash.css create mode 100644 src/files/etc/nodogsplash/htdocs/splash.html create mode 100644 src/files/etc/nodogsplash/htdocs/status.html create mode 100644 src/files/etc/rc.local create mode 100644 src/files/usr/bin/binauth.sh create mode 100644 src/files/usr/bin/check_chisel.sh create mode 100644 src/files/usr/bin/dragon.sh create mode 100644 src/files/usr/bin/manage_mac_access.sh create mode 100644 src/files/usr/bin/proxymaster.sh create mode 100644 src/files/usr/bin/router_updater.sh create mode 100644 src/files/usr/bin/set_admin_pass.sh create mode 100644 src/files/usr/bin/shservice.lua create mode 100644 src/files/usr/bin/wg_prepare_config.sh create mode 100644 src/files/usr/bin/wg_scripts.sh create mode 100644 src/files/usr/bin/wrong_wifi_pass_checker.sh create mode 100644 src/files/usr/share/rpcd/acl.d/ubus-routro.json create mode 100644 src/files/usr/share/ubus/dragon.json create mode 100644 src/files/www/bootstrap.bundle.min.js create mode 100644 src/files/www/bootstrap.min.css create mode 100644 src/files/www/cgi-bin/api create mode 100644 src/files/www/dashboard.html create mode 100644 src/files/www/dashboard.js create mode 100644 src/files/www/ethernet.html create mode 100644 src/files/www/ethernet.js create mode 100644 src/files/www/favicon.ico create mode 100644 src/files/www/firmware.html create mode 100644 src/files/www/firmware.js create mode 100644 src/files/www/guest.html create mode 100644 src/files/www/guest.js create mode 100644 src/files/www/heartBeat.js create mode 100644 src/files/www/index.css create mode 100644 src/files/www/index.html create mode 100644 src/files/www/index.js create mode 100644 src/files/www/infinite_reach.html create mode 100644 src/files/www/infinite_reach.js create mode 100644 src/files/www/loading.js create mode 100644 src/files/www/management.css create mode 100644 src/files/www/management.html create mode 100644 src/files/www/management.js create mode 100644 src/files/www/old-dashboard/bootstrap.bundle.min.js create mode 100644 src/files/www/old-dashboard/bootstrap.min.css create mode 100644 src/files/www/old-dashboard/dash.html create mode 100644 src/files/www/old-dashboard/dashboard.html create mode 100644 src/files/www/old-dashboard/index.css create mode 100644 src/files/www/old-dashboard/index.html create mode 100644 src/files/www/old-dashboard/index.js create mode 100644 src/files/www/old-dashboard/index_backup.html create mode 100644 src/files/www/old-dashboard/management.css create mode 100644 src/files/www/old-dashboard/management.html create mode 100644 src/files/www/old-dashboard/management.js create mode 100644 src/files/www/old-dashboard/management_backup.html create mode 100644 src/files/www/old-dashboard/management_backup.js create mode 100644 src/files/www/old-dashboard/script.js create mode 100644 src/files/www/old-dashboard/steper.html create mode 100644 src/files/www/old-dashboard/style.css create mode 100644 src/files/www/old-dashboard/test.html create mode 100644 src/files/www/outline.html create mode 100644 src/files/www/outline.js create mode 100644 src/files/www/portal/auth.lua create mode 100644 src/files/www/portal/bootstrap.min.css create mode 100644 src/files/www/portal/failed.html create mode 100644 src/files/www/portal/images/nocensored.jpg create mode 100644 src/files/www/portal/images/splash.jpg create mode 100644 src/files/www/portal/splash.css create mode 100644 src/files/www/portal/splash.html create mode 100644 src/files/www/portal/status.html create mode 100644 src/files/www/portal/success.html create mode 100644 src/files/www/proxy.html create mode 100644 src/files/www/proxy.js create mode 100644 src/files/www/settings.html create mode 100644 src/files/www/settings.js create mode 100644 src/files/www/style.css create mode 100644 src/files/www/ubus.js create mode 100644 src/files/www/vpn.html create mode 100644 src/files/www/vpn.js create mode 100644 src/files/www/wifi.html create mode 100644 src/files/www/wifi.js create mode 100644 utils/IR_IP_LIST create mode 100644 utils/IR_IP_LIST copy create mode 100644 utils/ip_script.bash diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef22805 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.tar.xz +*.bin +ramips/ +TODO +src/openwrt-imagebuilder* \ No newline at end of file diff --git a/config-generator/index.js b/config-generator/index.js new file mode 100644 index 0000000..89d47c3 --- /dev/null +++ b/config-generator/index.js @@ -0,0 +1,89 @@ +const http = require('http'); +const fs = require('fs'); +const path = require('path'); +const url = require('url'); +const queryString = require('querystring'); + + +// Define the folder where configuration files are stored +const configFolder = path.join(__dirname, 'config'); + +// Create an HTTP server +const server = http.createServer((req, res) => { + + const urlData = url.parse(req.url, true); + const queryParams = urlData.query; + + + const queryId = queryParams["id"]; // Extract the 'id' from the query string + + // Validate the 'id' format (MD5 hash of a MAC address) + if (!isValidId(queryId)) { + res.statusCode = 400; + res.end('Invalid ID.'); + return; + } + + // Check if a file with 'id.conf' exists + const configFile = path.join(configFolder, `${queryId}.conf`); + if (fs.existsSync(configFile)) { + // Read and return the content of the 'id.conf' file + fs.readFile(configFile, 'utf8', (err, data) => { + if (err) { + res.statusCode = 500; + res.end('Error reading configuration file.'); + } else { + res.setHeader('Content-Type', 'text/plain'); + res.end(data); + } + }); + } else { + // Find the first 'peerx.conf' file + const peerConfigFile = findFirstPeerConfig(); + if (!peerConfigFile) { + res.statusCode = 404; + res.end('No peer configuration found.'); + } else { + // Read and return the content of the 'peerx.conf' file + fs.readFile(peerConfigFile, 'utf8', (err, data) => { + if (err) { + res.statusCode = 500; + res.end('Error reading peer configuration file.'); + } else { + // Rename the 'peerx.conf' file to 'id.config' + const newConfigFile = path.join(configFolder, `${queryId}.conf`); + fs.rename(peerConfigFile, newConfigFile, (renameErr) => { + if (renameErr) { + res.statusCode = 500; + res.end('Error renaming configuration file.'); + } else { + res.setHeader('Content-Type', 'text/plain'); + res.end(data); + } + }); + } + }); + } + } +}); + +// Start the server on port 8080 +server.listen(8080, () => { + console.log('Server listening on port 8080'); +}); + +// Validate the 'id' format (MD5 hash of a MAC address) +function isValidId(id) { + return /^[a-fA-F0-9]{32}$/.test(id); +} + +// Find the first 'peerx.conf' file in the config folder +function findFirstPeerConfig() { + const files = fs.readdirSync(configFolder); + for (const file of files) { + if (file.startsWith('peer') && file.endsWith('.conf')) { + return path.join(configFolder, file); + } + } + return null; +} diff --git a/config-generator/package.json b/config-generator/package.json new file mode 100644 index 0000000..7f074c7 --- /dev/null +++ b/config-generator/package.json @@ -0,0 +1,11 @@ +{ + "name": "returnpeer", + "version": "1.0.0", + "description": "Return the wireguard peer.conf from s3", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/server/Iran_server/Iran_server_setup.sh b/server/Iran_server/Iran_server_setup.sh new file mode 100644 index 0000000..53efed9 --- /dev/null +++ b/server/Iran_server/Iran_server_setup.sh @@ -0,0 +1,285 @@ +#!/bin/bash + +# Check if the script is running as root or with sudo +if [[ ! $(id -u) -eq 0 && ! $(id -g) -eq 0 ]]; then + echo "This script requires root or sudo privileges." + exit 1 +fi + +# Check if /etc/os-release file exists +if [[ -f /etc/os-release ]]; then + # Source the os-release file to get the OS name and version + . /etc/os-release + + # Check if the operating system is not Ubuntu + if [[ "$ID" != "ubuntu" ]]; then + echo "This script is only supported on Ubuntu systems." + exit 1 + fi + + # Check if the Ubuntu version is below 20.04 + if [[ "$(printf '%s\n' "20.04" "$VERSION_ID" | sort -V | head -n1)" != "20.04" ]]; then + echo "This script requires Ubuntu 20.04 or later." + exit 1 + fi + +else + # If /etc/os-release does not exist, prompt the user + echo "/etc/os-release file not found. Are you running Ubuntu 20.04 or later? (yes/no)" + read -r confirmation + if [[ "$confirmation" != "yes" ]]; then + echo "This script is only supported on Ubuntu 20.04 or later." + exit 1 + fi +fi + + +# Default values +DEFAULT_CHISEL_VERSION="1.10.0" +DEFAULT_CHISEL_PORT=8080 + + +# User options +CHOOSE_DEPLOY=1 +CHOOSE_RETRIEVE=2 +CHOOSE_STOP_DELETE=3 +CHOOSE_LIST_SERVICES=4 + +# Function to validate client key +validate_client_key() { + if [[ ! -z "$CLIENT_KEY" && "${#CLIENT_KEY}" -gt 8 ]]; then + return 0 + else + echo "Invalid client key. It should be a non-empty string longer than 16 characters." + return 1 + fi +} + +# Function to check domain existence +check_domain_existence() { + if [[ ! -z "$DOMAIN" ]]; then + host "$DOMAIN" > /dev/null 2>&1 + if [[ $? -eq 0 ]]; then + return 0 + else + echo "Domain '$DOMAIN' does not exist." + return 1 + fi + fi +} + +# Function to generate the string +generate_string() { + if [[ -z "$DOMAIN" ]]; then + SERVER_IP=$(hostname -I | awk '{print $1}') + else + SERVER_IP="$DOMAIN" + fi + + echo "InRe:$CLIENT_KEY:$PASSWORD:$DEFAULT_CHISEL_PORT:$EXT_PORT1:$INT_PORT1:$EXT_PORT2:$INT_PORT2@$SERVER_IP" +} + +# Function to generate a random number within a specified range, excluding a given number +function generate_random_number() { + local min=$1 + local max=$2 + local exclude=$3 + local random_number + + while true; do + random_number=$((RANDOM % (max - min + 1) + min)) + if [[ $random_number -ne $exclude ]]; then + break + fi + done + + echo "$random_number" +} + + +# Function to deploy the service +deploy_service() { + + CLIENT_KEY=$(openssl rand -hex 12) + + echo "Please enter the domain associated with this server. This is an optional step, but it is required if you plan to use the Proxy service." + read DOMAIN + + validate_client_key + + if [[ $? -eq 0 ]]; then + + # Install required packages + apt update + apt install jq openssl -y + check_domain_existence + + if [[ $? -eq 0 ]]; then + apt install squid snapd nginx jq curl apache2-utils -y + snap install certbot --classic + fi + + # Download and configure chisel + wget https://github.com/jpillora/chisel/releases/download/v${DEFAULT_CHISEL_VERSION}/chisel_${DEFAULT_CHISEL_VERSION}_linux_amd64.gz + if [[ $? -ne 0 ]]; then + echo "Error in downloadin the service from github, If github blocked in your country please use proxy" + exit 1; + fi + gunzip chisel_${DEFAULT_CHISEL_VERSION}_linux_amd64.gz + sudo mkdir -p /etc/chisel/clients + mv chisel_${DEFAULT_CHISEL_VERSION}_linux_amd64 /etc/chisel/chisel_v${DEFAULT_CHISEL_VERSION} + chmod +x /etc/chisel/chisel_v${DEFAULT_CHISEL_VERSION} + + # Create chisel user file + PASSWORD=$(openssl rand -hex 19) + echo "{ \"$CLIENT_KEY:$PASSWORD\" : [ \"\" ] }" > /etc/chisel/users.json + + # Create systemd file for chisel + printf "%s\n"\ + "[Unit]" \ + "Description=Chisel Server $DEFAULT_CHISEL_VERSION" \ + ""\ + "[Service]" \ + "User=root" \ + "Type=simple" \ + "ExecStart=/etc/chisel/chisel_v${DEFAULT_CHISEL_VERSION} server -p $DEFAULT_CHISEL_PORT --reverse --authfile /etc/chisel/users.json" \ + "Restart=on-failure" \ + "RestartSec=2s" \ + ""\ + "[Install]" \ + "WantedBy=multi-user.target" > /etc/systemd/system/chisel.service + + systemctl enable chisel.service + systemctl start chisel.service + + + EXT_PORT1=$(generate_random_number 1024 48151 $DEFAULT_CHISEL_PORT) + EXT_PORT2=$(generate_random_number 1024 48151 $DEFAULT_CHISEL_PORT) + while [[ $EXT_PORT2 -eq $EXT_PORT1 ]];do + EXT_PORT2=$(generate_random_number 1024 48151 $DEFAULT_CHISEL_PORT) + done + + # Open ports + ufw allow $DEFAULT_CHISEL_PORT/tcp + ufw allow 22/tcp + ufw allow 80/tcp + ufw allow 443/tcp + ufw allow $EXT_PORT1/tcp + ufw allow $EXT_PORT2/tcp + ufw enable + + + INT_PORT1=$(generate_random_number 48152 49151 $DEFAULT_CHISEL_PORT) + INT_PORT2=$(generate_random_number 48152 49151 $INT_PORT1) + + + + if [[ ! -z "$DOMAIN" ]]; then + + # Create nginx config + printf "%s\n"\ + "server {" \ + " server_name $DOMAIN;" \ + " root /var/www/example.com;" \ + " index index.html;" \ + " location / {"\ + " error_page 404 /404.html;"\ + " }" \ + " listen [::]:80;"\ + " listen 80;"\ + "}" > /etc/nginx/conf.d/chisel_ssl.conf + + # Obtain SSL certificate + certbot --nginx -d "$DOMAIN" -m infinite.reach@fillimo.com --agree-tos --non-interactive + + # Todo : Setup Squid with split tunneling and parent proxy + echo ".ir" > /etc/squid/domains.txt + wget https://github.com/bootmortis/iran-hosted-domains/releases/download/202409020032/domains.txt + grep -v "\.ir$" domains.txt > domains.txt.2 + sed 's/^././' domains.txt.2 >> /etc/squid/domains.txt + + htpasswd -bc /etc/squid/.squid_users ${CLIENT_KEY} ${PASSWORD} + + printf "%s\n"\ + "https_port $EXT_PORT1 tls-cert=/etc/letsencrypt/live/$DOMAIN/fullchain.pem tls-key=/etc/letsencrypt/live/$DOMAIN/privkey.pem"\ + "auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.squid_users"\ + "auth_param basic children 5"\ + "auth_param basic realm Proxy Authentication Required"\ + "auth_param basic credentialsttl 2 hours"\ + "auth_param basic casesensitive on"\ + "acl auth_users proxy_auth REQUIRED"\ + "http_access allow auth_users"\ + "http_access deny all"\ + "cache_peer 127.0.0.1 parent $INT_PORT1 0 name=P-1 round-robin no-query weight=5 login=$CLIENT_KEY:$PASSWORD"\ + "acl ir_domain dstdomain '/etc/squid/domains.txt'"\ + "cache_peer_access P-1 allow ir_domain"\ + "never_direct allow !ir_domain"\ + "visible_hostname 'HidenLayer'" > /etc/squid/squid.conf + + systemctl restart squid + + fi + + # Generate and display string + generate_string + echo "" + echo "" + echo "Copy the following string into the Infinitereach dashboard:" + echo "" + echo -e "\033[0;32m$(generate_string)\033[0m" + + echo "" + echo "" + + # Save string to file + echo "$(generate_string)" > /etc/chisel/clients/client.str + fi + + exit 0 +} + +# Function to retrieve active service config +retrieve_service_config() { + # Implement logic to retrieve active service config + echo "Retrieving active service config..." + KEYSTRING=$(cat /etc/chisel/clients/client.str) + + echo "" + echo "" + echo "Copy the following string into the Infinitereach dashboard:" + echo "" + echo -e "\033[0;32m$KEYSTRING\033[0m" + + echo "" + echo "" + + exit 0; +} + +# Function to stop and delete the service +stop_delete_service() { + # Implement logic to stop and delete the service + echo "Stopping and deleting the service..." +} + +# Function to show the list of available services +list_services() { + # Implement logic to show the list of available services + echo "Listing available services..." +} + +# Main script logic +while true; do + echo "Choose an option:" + echo "1. Deploy the new service" + echo "2. Retrieve the active service config" + echo "5. Exit" + read CHOICE + + case "$CHOICE" in + 1) deploy_service ;; + 2) retrieve_service_config ;; + 5) exit ;; + *) echo "Invalid choice. Please select a number from 1, 2 and 5." ;; + esac +done \ No newline at end of file diff --git a/server/chisel_config_manager/chisele_config_manager.js b/server/chisel_config_manager/chisele_config_manager.js new file mode 100644 index 0000000..3d16406 --- /dev/null +++ b/server/chisel_config_manager/chisele_config_manager.js @@ -0,0 +1,90 @@ +const express = require('express'); +const fs = require('fs'); +const app = express(); +const PORT = 19119; + +// File paths as variables +const userFilePath = '/etc/chisel/users.json'; +const portFilePath = './assignedport.json'; +const o_portFilePath = './o_assignedport.json'; + +const portRange=19120 +const portCount=41 + +const o_portRange=52120 +const o_portCount=41 + +app.get('/assign', (req, res) => { + const token = req.query.token; + if (!token) { + return res.json({ code: 0, port: null }); + } + + const users = JSON.parse(fs.readFileSync(userFilePath, 'utf8')); + const assignedPorts = JSON.parse(fs.readFileSync(portFilePath, 'utf8')); + const o_assignedPorts = JSON.parse(fs.readFileSync(o_portFilePath, 'utf8')); + + // Reverse the token to get the password + const password = token.split('').reverse().join(''); + users[`${token}:${password}`] = [""]; + + // Write to user.json + fs.writeFileSync(userFilePath, JSON.stringify(users, null, 2)); + + let port = assignedPorts[token]; + if (!port) { + // Find a random port that's not already assigned + const availablePorts = Array.from({ length: portCount }, (_, i) => i + portRange) + .filter(p => !Object.values(assignedPorts).includes(p)); + + if (availablePorts.length === 0) { + return res.json({ code: -1, port: null }); + } + + port = availablePorts[Math.floor(Math.random() * availablePorts.length)]; + assignedPorts[token] = port; + + // Write to assignedport.json + fs.writeFileSync(portFilePath, JSON.stringify(assignedPorts, null, 2)); + } + + let o_port = o_assignedPorts[token]; + if (!o_port) { + // Find a random port that's not already assigned + const availablePorts = Array.from({ length: o_portCount }, (_, i) => i + o_portRange) + .filter(p => !Object.values(o_assignedPorts).includes(p)); + + if (availablePorts.length === 0) { + return res.json({ code: -1, port: null, outlineport:null }); + } + + o_port = availablePorts[Math.floor(Math.random() * availablePorts.length)]; + o_assignedPorts[token] = o_port; + + // Write to assignedport.json + fs.writeFileSync(o_portFilePath, JSON.stringify(o_assignedPorts, null, 2)); + } + + res.json({ code: 1, port: port, outlineport: o_port }); +}); + +app.listen(PORT, () => { + console.log(`Server running on port ${PORT}`); +}); + + + +// Function to check and create file with empty JSON object +function checkAndCreateFile(filePath) { + if (!fs.existsSync(filePath)) { + fs.writeFileSync(filePath, '{}', 'utf8'); + console.log(`Created file: ${filePath}`); + } else { + console.log(`File already exists: ${filePath}`); + } +} + +// Check and create files +checkAndCreateFile(userFilePath); +checkAndCreateFile(portFilePath); +checkAndCreateFile(o_portFilePath); \ No newline at end of file diff --git a/server/chisel_config_manager/nginx/confd.conf b/server/chisel_config_manager/nginx/confd.conf new file mode 100644 index 0000000..2cf6793 --- /dev/null +++ b/server/chisel_config_manager/nginx/confd.conf @@ -0,0 +1,19 @@ +server { + + server_name server_name.domain.com; + + root /var/www/example.com; + index index.html; + + location / { + proxy_pass http://127.0.0.1:19119; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + error_page 404 /404.html; + } + + listen 80; + listen [::]:80; +} \ No newline at end of file diff --git a/server/chisel_config_manager/nginx/moduled.conf b/server/chisel_config_manager/nginx/moduled.conf new file mode 100644 index 0000000..641b571 --- /dev/null +++ b/server/chisel_config_manager/nginx/moduled.conf @@ -0,0 +1,24 @@ +stream{ + + # Define a map block to map source ports to destination ports + map $server_port $backend_port { + ~^192([0-9])$ 1912$1; + ~^193([0-9])$ 1913$1; + ~^194([0-9])$ 1914$1; + ~^195([0-9])$ 1915$1; + ~^196([0-9])$ 1916$1; + } + + +# SSL configuration for the server + server { + listen 1920-1960 ; + #ssl_certificate /etc/letsencrypt/live/chiselmaster.wachi.ir/fullchain.pem; + #ssl_certificate_key /etc/letsencrypt/live/chiselmaster.wachi.ir/privkey.pem; + #ssl_protocols TLSv1.2 TLSv1.3; + #ssl_ciphers HIGH:!aNULL:!MD5; + + # Use the mapped port for proxy_pass + proxy_pass 127.0.0.1:$backend_port; + } +} \ No newline at end of file diff --git a/server/chisel_config_manager/package.json b/server/chisel_config_manager/package.json new file mode 100644 index 0000000..c8ad709 --- /dev/null +++ b/server/chisel_config_manager/package.json @@ -0,0 +1,15 @@ +{ + "name": "chisel-config-manager", + "version": "1.1.2", + "description": "A configuration manager for Chisel.", + "main": "chisel_config_manager.js", + "scripts": { + "start": "node chisel_config_manager.js" + }, + "author": "routro", + "license": "ISC", + "dependencies": { + "express": "^4.17.1" + } + } + \ No newline at end of file diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..bad72ab --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +version-*.txt \ No newline at end of file diff --git a/src/build.bash b/src/build.bash new file mode 100644 index 0000000..7272318 --- /dev/null +++ b/src/build.bash @@ -0,0 +1,131 @@ + + +#Target Device +wrt_version="23.05.2" +devices="tplink_archer-c7-v5 tplink_archer-a7-v5 glinet_gl-mt300a tplink_archer-c20-v5 tplink_archer-ax23-v1" +cpuarch="ath79 ath79 ramips ramips ramips" +chipset="generic generic mt7620 mt76x8 mt7621" +deviceModel="tp-link_archer_c7_v5 tp-link_archer_a7_v5 gl-mt300a tp-link_archer_c20_v5 tplink_archer-ax23-v1" + + +# https://downloads.openwrt.org/releases/23.05.4/targets/ramips/mt7621/openwrt-23.05.4-ramips-mt7621-tplink_archer-ax23-v1-squashfs-factory.bin + +# Split the variables into arrays +IFS=' ' read -r -a p_dev <<< "$devices" +IFS=' ' read -r -a p_arch <<< "$cpuarch" +IFS=' ' read -r -a p_chip <<< "$chipset" +IFS=' ' read -r -a p_devmodel <<< "$deviceModel" + + + +# Prompt the user to choose one of the devices +echo "Please choose one of the devices:" +for i in "${!p_dev[@]}"; do + echo "$((i+1))) ${p_dev[i]}" +done + +# Read the user input and validate it +read -p "Enter your choice: " choice +if [ "$choice" -ge 1 ] && [ "$choice" -le "${#p_dev[@]}" ]; then + arch="${p_arch[choice-1]}" + chip="${p_chip[choice-1]}" + download_url="https://archive.openwrt.org/releases/$wrt_version/targets/$arch/$chip/openwrt-imagebuilder-$wrt_version-$arch-$chip.Linux-x86_64.tar.xz" + echo "================" + echo "You chose ${p_dev[choice-1]} -- ${p_arch[choice-1]} -- ${p_chip[choice-1]}" + echo "================" + PROFILE=${p_dev[choice-1]} + + echo $PROFILE + read -p ">-Enter to continue-<" tempvar + + rm -rf openwrt-imagebuilder-* + wget $download_url + tar -J -x -f openwrt-imagebuilder-$wrt_version-$arch-$chip.Linux-x86_64.tar.xz +else + # Echo an error message + echo "Invalid choice. Please enter a number between 1 and ${#p_dev[@]}" + exit 1 +fi + +# Set the version variable +echo "-----------------------" +DEV_MODEL=${p_devmodel[choice-1]} +echo "last release was:" +cat version-$DEV_MODEL.txt +read -p "Enter The new release version: " version + +sed -i "s/option version .*/option version '$version'/" "files/etc/config/routro" +IMAGEBUILDER_REPO="openwrt-imagebuilder-$wrt_version-$arch-$chip.Linux-x86_64" +cd $IMAGEBUILDER_REPO + +echo "new_version=$version" > "version-$DEV_MODEL.txt" + +# Excluded packages +#EXC_PACKAGES='-dnsmasq -kmod-usb2 -kmod-usb-ohci' +EXCLUDE_PACKAGES='-dnsmasq -wpad-basic-mbedtls' + +# Included Packages +# [wireguard-tools]: for Wireguard installation +#INC_PACKAGES='dnsmasq-full iwinfo openvpn-openssl kmod-nft-core kmod-nft-fib kmod-nft-nat kmod-nft-offload mtd pbr ubus ubusd uci uhttpd uhttpd-mod-ubus gnupg opennds' +INCLUDE_PACKAGES='curl dnsmasq-full iwinfo wireguard-tools kmod-nft-core kmod-nft-fib kmod-nft-nat kmod-nft-offload mtd ubus ubusd rpcd rpcd-mod-file rpcd-mod-iwinfo uci uhttpd uhttpd-mod-ubus gnupg tinyproxy jq coreutils-stat coreutils-nohup lua luasocket uhttpd-mod-lua coreutils-base64 wpad-openssl pbr kmod-br-netfilter kmod-ipt-physdev iptables-mod-physdev' + +FILES="../files" + + +make image PROFILE=$PROFILE PACKAGES="$INCLUDE_PACKAGES $EXCLUDE_PACKAGES" FILES=$FILES + +dest_of_bin="bin/targets/$arch/$chip/" + +# Loop over the files with .bin extension in the bin/ directory +for file in $(find $dest_of_bin -type f -name "*.bin"); do + + newname=$(echo $file | sed " s\openwrt\v$version-openwrt\ " ) + echo $newname + # Rename the file + mv "$file" "$newname" +done + +## Copy file into aws +# Set the variables +bucket="s3-firmware-releases" # Replace with your bucket name +acl="public-read" # Set the ACL to public read + +dest_of_bin="bin/targets/$arch/$chip/" + +# Loop over the files with .bin extension in the bin/ directory +for file in $(find $dest_of_bin -type f -name "*.bin"); do + firmware_url_key="firmwareUrl" + if [[ "$file" == *"factory"* ]] + then + firmware_url_key="fimwareUrlFactory" + fi + aws --profile holestic s3 cp $file s3://$bucket/ --acl $acl + echo "---------" + echo $file + filename=$(basename "$file" ) + echo "" + echo "https://$bucket.s3.us-west-1.amazonaws.com/$filename" + echo "$firmware_url_key=https://$bucket.s3.us-west-1.amazonaws.com/$filename" >> version-$DEV_MODEL.txt + echo "---------" +done + +aws --profile holestic s3 cp version-$DEV_MODEL.txt s3://$bucket/ --acl $acl + +# Upload the file using the AWS CLI +#aws s3 cp $file s3://$bucket/ --acl $acl + +# Check the exit status +if [ $? -eq 0 ]; then + echo "File uploaded successfully." + cp version-$DEV_MODEL.txt ../ +else + echo "File upload failed." +fi + + + +# sysupgrade -n v0.0.6-openwrt-22.03.3-ath79-generic-tplink_archer-c7-v5-squashfs-sysupgrade.bin +# Mon Jan 15 16:48:59 UTC 2024 upgrade: Commencing upgrade. Closing all shell sessions. +# Command failed: Connection failed +# root@OpenWrt:/tmp# Connection to 192.168.151.1 closed by remote host. +# Connection to 192.168.151.1 closed. \ No newline at end of file diff --git a/src/files/etc/config/IR_IP_LIST b/src/files/etc/config/IR_IP_LIST new file mode 100644 index 0000000..7ef62ba --- /dev/null +++ b/src/files/etc/config/IR_IP_LIST @@ -0,0 +1,1823 @@ +2.144.0.0/14 +2.176.0.0/12 +5.1.43.0/24 +5.22.0.0/17 +5.22.192.0/21 +5.22.200.0/22 +5.23.112.0/21 +5.42.223.0/24 +5.52.0.0/16 +5.53.32.0/19 +5.56.128.0/22 +5.56.132.0/24 +5.56.134.0/23 +5.57.32.0/21 +5.61.24.0/23 +5.61.26.0/24 +5.61.28.0/22 +5.62.160.0/19 +5.62.192.0/18 +5.63.8.0/21 +5.72.0.0/15 +5.74.0.0/16 +5.75.0.0/17 +5.104.208.0/21 +5.106.0.0/16 +5.112.0.0/12 +5.134.128.0/18 +5.134.192.0/21 +5.135.116.200/30 +5.144.128.0/21 +5.145.112.0/22 +5.145.116.0/24 +5.159.48.0/21 +5.160.0.0/16 +5.182.44.0/22 +5.190.0.0/16 +5.198.160.0/19 +5.200.64.0/18 +5.200.128.0/17 +5.201.128.0/17 +5.202.0.0/16 +5.208.0.0/12 +5.232.0.0/14 +5.236.0.0/17 +5.236.128.0/20 +5.236.144.0/21 +5.236.156.0/22 +5.236.160.0/19 +5.236.192.0/18 +5.237.0.0/16 +5.238.0.0/15 +5.250.0.0/17 +5.252.216.0/22 +5.253.24.0/22 +5.253.96.0/22 +5.253.225.0/24 +8.27.67.32/32 +8.27.67.41/32 +31.2.128.0/17 +31.7.64.0/21 +31.7.72.0/22 +31.7.76.0/23 +31.7.88.0/22 +31.7.96.0/19 +31.7.128.0/20 +31.14.80.0/20 +31.14.112.0/20 +31.14.144.0/20 +31.24.200.0/21 +31.24.232.0/21 +31.25.90.0/23 +31.25.92.0/22 +31.25.104.0/21 +31.25.128.0/21 +31.25.232.0/23 +31.40.0.0/22 +31.40.4.0/24 +31.41.35.0/24 +31.47.32.0/19 +31.56.0.0/14 +31.130.176.0/20 +31.170.48.0/22 +31.170.52.0/23 +31.170.54.0/24 +31.170.56.0/21 +31.171.216.0/21 +31.184.128.0/18 +31.193.112.0/21 +31.193.186.0/24 +31.214.132.0/23 +31.214.146.0/23 +31.214.154.0/24 +31.214.168.0/21 +31.214.200.0/23 +31.214.228.0/22 +31.214.248.0/21 +31.216.62.0/24 +31.217.208.0/21 +37.9.248.0/21 +37.10.64.0/22 +37.10.109.0/24 +37.10.117.0/24 +37.19.80.0/20 +37.32.0.0/19 +37.32.32.0/20 +37.32.112.0/20 +37.44.56.0/21 +37.63.128.0/17 +37.75.240.0/21 +37.98.0.0/17 +37.114.192.0/18 +37.129.0.0/16 +37.130.200.0/21 +37.137.0.0/16 +37.143.144.0/21 +37.148.0.0/17 +37.148.248.0/22 +37.152.160.0/19 +37.153.128.0/22 +37.153.176.0/20 +37.156.0.0/22 +37.156.8.0/21 +37.156.16.0/20 +37.156.48.0/20 +37.156.100.0/22 +37.156.112.0/20 +37.156.128.0/20 +37.156.144.0/22 +37.156.152.0/21 +37.156.160.0/21 +37.156.176.0/22 +37.156.212.0/22 +37.156.232.0/21 +37.156.240.0/22 +37.156.248.0/22 +37.191.64.0/19 +37.202.128.0/17 +37.221.0.0/18 +37.228.131.0/24 +37.228.133.0/24 +37.228.135.0/24 +37.228.136.0/22 +37.235.16.0/20 +37.254.0.0/16 +37.255.0.0/17 +37.255.128.0/26 +37.255.128.64/27 +37.255.128.96/28 +37.255.128.128/25 +37.255.129.0/24 +37.255.130.0/23 +37.255.132.0/22 +37.255.136.0/21 +37.255.144.0/20 +37.255.160.0/19 +37.255.192.0/18 +45.8.160.0/22 +45.9.144.0/22 +45.9.252.0/22 +45.15.200.0/22 +45.15.248.0/22 +45.81.16.0/22 +45.82.136.0/22 +45.84.156.0/22 +45.84.248.0/22 +45.86.4.0/22 +45.86.87.0/24 +45.86.196.0/22 +45.87.4.0/22 +45.89.136.0/22 +45.89.200.0/22 +45.89.236.0/22 +45.90.72.0/22 +45.91.152.0/22 +45.92.92.0/22 +45.93.168.0/22 +45.94.212.0/22 +45.94.252.0/22 +45.128.140.0/22 +45.129.36.0/22 +45.129.116.0/22 +45.132.32.0/24 +45.132.168.0/21 +45.135.240.0/22 +45.138.132.0/22 +45.139.9.0/24 +45.139.10.0/23 +45.139.100.0/22 +45.140.28.0/22 +45.140.224.0/21 +45.142.188.0/22 +45.144.16.0/22 +45.144.124.0/22 +45.147.76.0/22 +45.148.248.0/22 +45.149.76.0/22 +45.150.88.0/22 +45.150.150.0/24 +45.155.192.0/22 +45.156.180.0/22 +45.156.184.0/22 +45.156.192.0/21 +45.156.200.0/22 +45.157.244.0/22 +45.158.120.0/22 +45.159.112.0/22 +45.159.148.0/22 +45.159.196.0/22 +46.18.248.0/21 +46.21.80.0/20 +46.28.72.0/21 +46.32.0.0/19 +46.34.96.0/19 +46.34.160.0/19 +46.36.96.0/20 +46.38.128.0/23 +46.38.130.0/24 +46.38.131.0/25 +46.38.131.128/26 +46.38.132.0/22 +46.38.136.0/21 +46.38.144.0/20 +46.41.192.0/18 +46.51.0.0/17 +46.62.128.0/17 +46.100.0.0/16 +46.102.120.0/21 +46.102.128.0/20 +46.102.184.0/22 +46.143.0.0/17 +46.143.204.0/22 +46.143.208.0/21 +46.143.244.0/22 +46.143.248.0/22 +46.148.32.0/20 +46.164.64.0/18 +46.167.128.0/19 +46.182.32.0/21 +46.209.0.0/16 +46.224.0.0/15 +46.235.76.0/23 +46.245.0.0/17 +46.248.32.0/19 +46.249.96.0/24 +46.249.120.0/21 +46.251.224.0/25 +46.251.224.128/28 +46.251.224.144/29 +46.251.226.0/24 +46.251.237.0/24 +46.255.216.0/21 +62.3.14.0/24 +62.3.41.0/24 +62.3.42.0/24 +62.32.49.128/26 +62.32.49.192/27 +62.32.49.224/29 +62.32.49.240/28 +62.32.50.0/24 +62.32.53.64/26 +62.32.53.168/29 +62.32.53.224/28 +62.32.61.96/27 +62.32.61.224/27 +62.32.63.128/26 +62.60.128.0/22 +62.60.136.0/21 +62.60.144.0/22 +62.60.152.0/21 +62.60.160.0/22 +62.60.196.0/22 +62.60.208.0/20 +62.102.128.0/20 +62.133.46.0/24 +62.193.0.0/19 +62.204.61.0/24 +62.220.96.0/19 +63.243.185.0/24 +64.214.116.16/32 +65.21.221.144/28 +66.79.96.0/19 +67.16.178.147/32 +67.16.178.148/31 +67.16.178.150/32 +69.194.64.0/18 +72.14.201.40/30 +77.36.128.0/17 +77.42.0.0/17 +77.77.64.0/18 +77.81.32.0/20 +77.81.76.0/24 +77.81.78.0/24 +77.81.82.0/23 +77.81.128.0/21 +77.81.144.0/20 +77.81.192.0/19 +77.90.139.180/30 +77.95.220.0/24 +77.104.64.0/18 +77.237.64.0/19 +77.237.160.0/19 +77.238.104.0/21 +77.238.112.0/20 +77.245.224.0/20 +78.31.232.0/22 +78.38.0.0/15 +78.109.192.0/20 +78.110.112.0/20 +78.111.0.0/20 +78.154.32.0/19 +78.157.32.0/19 +78.158.160.0/19 +79.127.0.0/17 +79.132.192.0/23 +79.132.200.0/21 +79.132.208.0/20 +79.143.84.0/23 +79.143.86.0/24 +79.174.160.0/21 +79.175.128.0/19 +79.175.160.0/22 +79.175.164.0/23 +79.175.166.0/24 +79.175.167.0/25 +79.175.167.128/30 +79.175.167.132/31 +79.175.167.144/28 +79.175.167.160/27 +79.175.167.192/26 +79.175.168.0/21 +79.175.176.0/20 +80.66.176.0/20 +80.71.112.0/20 +80.71.149.0/24 +80.75.0.0/20 +80.85.82.80/29 +80.91.208.0/24 +80.191.0.0/17 +80.191.128.0/18 +80.191.192.0/19 +80.191.224.0/20 +80.191.240.0/24 +80.191.241.128/25 +80.191.242.0/23 +80.191.244.0/22 +80.191.248.0/21 +80.210.0.0/18 +80.210.128.0/17 +80.241.70.250/31 +80.242.0.0/20 +80.249.112.0/22 +80.250.192.0/20 +80.253.128.0/19 +80.255.3.160/27 +81.12.0.0/17 +81.16.112.0/20 +81.28.32.0/19 +81.29.240.0/20 +81.31.160.0/19 +81.31.224.0/22 +81.31.228.0/23 +81.31.230.0/24 +81.31.233.0/24 +81.31.234.0/23 +81.31.236.0/22 +81.31.240.0/23 +81.31.248.0/22 +81.90.144.0/20 +81.91.128.0/19 +81.92.216.0/24 +81.163.0.0/21 +82.97.240.0/20 +82.99.192.0/18 +82.138.140.0/25 +82.180.192.0/18 +82.198.136.76/30 +83.120.0.0/14 +83.147.192.0/23 +83.147.194.0/24 +83.147.222.0/23 +83.147.240.0/22 +83.147.252.0/24 +83.147.254.0/24 +83.149.208.65/32 +83.150.192.0/22 +84.17.168.32/27 +84.47.192.0/18 +84.241.0.0/18 +85.9.64.0/18 +85.15.0.0/18 +85.133.128.0/21 +85.133.137.0/24 +85.133.138.0/23 +85.133.140.0/22 +85.133.144.0/23 +85.133.147.0/24 +85.133.148.0/22 +85.133.152.0/22 +85.133.157.0/24 +85.133.158.0/23 +85.133.160.0/22 +85.133.165.0/24 +85.133.166.0/23 +85.133.168.0/21 +85.133.176.0/20 +85.133.192.0/21 +85.133.200.0/23 +85.133.203.0/24 +85.133.204.0/22 +85.133.208.0/22 +85.133.212.0/23 +85.133.214.0/24 +85.133.216.0/23 +85.133.219.0/24 +85.133.220.0/23 +85.133.223.0/24 +85.133.224.0/24 +85.133.226.0/23 +85.133.228.0/22 +85.133.232.0/22 +85.133.237.0/24 +85.133.238.0/23 +85.133.240.0/20 +85.185.0.0/16 +85.198.0.0/19 +85.198.48.0/20 +85.204.30.0/23 +85.204.76.0/23 +85.204.80.0/20 +85.204.104.0/23 +85.204.128.0/22 +85.204.208.0/20 +85.208.252.0/22 +85.239.192.0/19 +86.55.0.0/16 +86.57.0.0/17 +86.104.32.0/20 +86.104.80.0/20 +86.104.96.0/20 +86.104.232.0/21 +86.104.240.0/21 +86.105.40.0/21 +86.105.128.0/20 +86.106.142.0/24 +86.106.192.0/21 +86.107.0.0/20 +86.107.80.0/20 +86.107.144.0/20 +86.107.172.0/22 +86.107.208.0/20 +86.109.32.0/19 +87.107.0.0/16 +87.128.22.75/32 +87.236.208.0/26 +87.236.209.0/24 +87.236.210.0/23 +87.236.213.0/24 +87.236.214.0/24 +87.247.168.0/21 +87.247.176.0/20 +87.248.128.0/24 +87.248.139.0/24 +87.248.140.0/23 +87.248.142.0/24 +87.248.147.0/24 +87.248.150.0/24 +87.248.152.0/22 +87.248.156.0/24 +87.248.159.0/24 +87.251.128.0/19 +87.252.206.24/29 +87.252.206.64/29 +88.131.240.122/31 +88.131.240.125/32 +88.135.32.0/20 +88.135.68.0/24 +89.32.0.0/19 +89.32.96.0/20 +89.32.196.0/23 +89.32.248.0/22 +89.33.18.0/23 +89.33.100.0/22 +89.33.128.0/23 +89.33.204.0/23 +89.33.234.0/23 +89.33.240.0/23 +89.34.20.0/23 +89.34.32.0/19 +89.34.88.0/23 +89.34.94.0/23 +89.34.128.0/19 +89.34.168.0/23 +89.34.176.0/23 +89.34.200.0/23 +89.34.248.0/21 +89.35.58.0/23 +89.35.68.0/22 +89.35.120.0/22 +89.35.132.0/23 +89.35.156.0/23 +89.35.176.0/23 +89.35.180.0/22 +89.35.194.0/23 +89.36.16.0/23 +89.36.48.0/20 +89.36.96.0/20 +89.36.176.0/20 +89.36.194.0/23 +89.36.226.0/23 +89.36.252.0/23 +89.37.0.0/20 +89.37.30.0/23 +89.37.42.0/23 +89.37.102.0/23 +89.37.144.0/21 +89.37.152.0/22 +89.37.168.0/22 +89.37.198.0/23 +89.37.208.0/22 +89.37.218.0/23 +89.37.240.0/20 +89.38.24.0/23 +89.38.80.0/20 +89.38.102.0/23 +89.38.184.0/21 +89.38.192.0/21 +89.38.212.0/22 +89.38.242.0/23 +89.38.244.0/22 +89.39.8.0/22 +89.39.186.0/23 +89.39.208.0/24 +89.40.78.0/23 +89.40.106.0/23 +89.40.110.0/23 +89.40.128.0/23 +89.40.152.0/21 +89.40.240.0/20 +89.41.8.0/21 +89.41.16.0/21 +89.41.32.0/23 +89.41.40.0/22 +89.41.58.0/23 +89.41.184.0/22 +89.41.192.0/19 +89.41.240.0/21 +89.42.32.0/23 +89.42.44.0/22 +89.42.56.0/23 +89.42.68.0/23 +89.42.96.0/21 +89.42.136.0/22 +89.42.150.0/23 +89.42.184.0/21 +89.42.196.0/22 +89.42.208.0/23 +89.42.210.0/25 +89.42.210.128/27 +89.42.210.160/28 +89.42.210.176/29 +89.42.210.184/30 +89.42.210.188/32 +89.42.210.190/31 +89.42.210.192/26 +89.42.211.0/24 +89.42.228.0/23 +89.43.0.0/20 +89.43.36.0/23 +89.43.70.0/23 +89.43.88.0/21 +89.43.96.0/21 +89.43.144.0/21 +89.43.182.0/23 +89.43.188.0/23 +89.43.204.0/23 +89.43.216.0/21 +89.43.224.0/21 +89.44.112.0/23 +89.44.118.0/23 +89.44.128.0/21 +89.44.146.0/23 +89.44.176.0/21 +89.44.190.0/23 +89.44.202.0/23 +89.44.240.0/22 +89.45.48.0/20 +89.45.68.0/23 +89.45.80.0/23 +89.45.89.0/24 +89.45.112.0/21 +89.45.126.0/23 +89.45.152.0/21 +89.45.230.0/23 +89.46.44.0/23 +89.46.60.0/23 +89.46.94.0/23 +89.46.184.0/21 +89.46.216.0/22 +89.47.64.0/20 +89.47.128.0/19 +89.47.196.0/22 +89.47.200.0/22 +89.144.128.0/18 +89.165.0.0/17 +89.196.0.0/16 +89.198.0.0/15 +89.219.64.0/18 +89.219.192.0/18 +89.221.80.0/20 +89.235.64.0/18 +91.92.104.0/24 +91.92.114.0/24 +91.92.121.0/24 +91.92.122.0/23 +91.92.124.0/22 +91.92.129.0/24 +91.92.130.0/23 +91.92.132.0/22 +91.92.145.0/24 +91.92.146.0/23 +91.92.148.0/22 +91.92.156.0/22 +91.92.164.0/22 +91.92.172.0/22 +91.92.180.0/22 +91.92.184.0/21 +91.92.192.0/23 +91.92.204.0/22 +91.92.208.0/21 +91.92.220.0/22 +91.92.228.0/23 +91.92.231.0/24 +91.92.236.0/22 +91.98.0.0/15 +91.106.64.0/19 +91.108.128.0/19 +91.109.104.0/21 +91.129.4.216/32 +91.129.18.175/32 +91.129.18.177/32 +91.133.128.0/17 +91.147.64.0/20 +91.184.64.0/19 +91.185.128.0/19 +91.186.192.0/23 +91.186.201.0/24 +91.186.216.0/23 +91.186.218.0/24 +91.190.88.0/21 +91.194.6.0/24 +91.199.9.0/24 +91.199.18.0/24 +91.199.27.0/24 +91.199.30.0/24 +91.207.138.0/23 +91.207.205.0/24 +91.208.165.0/24 +91.209.96.0/24 +91.209.179.0/24 +91.209.183.0/24 +91.209.184.0/24 +91.209.186.0/24 +91.209.242.0/24 +91.212.16.0/24 +91.212.252.0/24 +91.213.151.0/24 +91.213.157.0/24 +91.213.167.0/24 +91.213.172.0/24 +91.216.4.0/24 +91.217.64.0/23 +91.217.177.0/24 +91.220.79.0/24 +91.220.113.0/24 +91.220.243.0/24 +91.221.240.0/23 +91.222.196.0/22 +91.222.204.0/22 +91.224.20.0/23 +91.224.110.0/23 +91.224.176.0/23 +91.225.52.0/22 +91.226.224.0/23 +91.227.84.0/22 +91.227.246.0/23 +91.228.22.0/23 +91.228.132.0/23 +91.228.189.0/24 +91.229.46.0/23 +91.229.214.0/23 +91.230.32.0/24 +91.232.64.0/22 +91.232.68.0/23 +91.232.72.0/22 +91.233.56.0/22 +91.234.52.0/24 +91.236.168.0/23 +91.237.254.0/23 +91.238.0.0/24 +91.239.14.0/24 +91.239.108.0/22 +91.239.210.0/24 +91.239.214.0/24 +91.240.60.0/22 +91.240.116.0/24 +91.240.180.0/22 +91.241.20.0/23 +91.241.92.0/24 +91.242.44.0/23 +91.243.126.0/23 +91.243.160.0/20 +91.244.120.0/22 +91.245.228.0/22 +91.246.44.0/24 +91.247.66.0/23 +91.247.171.0/24 +91.247.174.0/24 +91.250.224.0/20 +91.251.0.0/16 +92.42.48.0/21 +92.43.160.0/22 +92.61.176.0/21 +92.61.184.0/24 +92.61.186.0/23 +92.61.188.0/22 +92.114.16.0/20 +92.114.48.0/22 +92.114.64.0/20 +92.119.57.0/24 +92.119.58.0/24 +92.119.68.0/22 +92.242.192.0/19 +92.246.144.0/22 +92.246.156.0/22 +92.249.56.0/22 +93.88.64.0/21 +93.88.72.0/23 +93.93.204.0/24 +93.110.0.0/16 +93.113.224.0/20 +93.114.16.0/20 +93.114.104.0/21 +93.115.120.0/21 +93.115.144.0/21 +93.115.216.0/21 +93.115.224.0/20 +93.117.0.0/19 +93.117.32.0/20 +93.117.96.0/19 +93.117.176.0/20 +93.118.96.0/19 +93.118.128.0/19 +93.118.160.0/20 +93.118.180.0/22 +93.118.184.0/22 +93.119.32.0/19 +93.119.64.0/19 +93.119.208.0/20 +93.126.0.0/18 +93.190.24.0/21 +94.24.0.0/20 +94.24.16.0/21 +94.24.80.0/20 +94.24.96.0/21 +94.74.128.0/23 +94.74.130.1/32 +94.74.130.2/31 +94.74.130.4/30 +94.74.130.8/29 +94.74.130.16/28 +94.74.130.32/27 +94.74.130.64/26 +94.74.130.128/25 +94.74.131.0/24 +94.74.142.0/23 +94.74.144.1/32 +94.74.144.2/31 +94.74.144.4/30 +94.74.144.8/29 +94.74.144.16/28 +94.74.144.32/27 +94.74.144.64/26 +94.74.144.128/25 +94.74.148.0/24 +94.74.150.0/23 +94.74.152.0/23 +94.74.155.0/24 +94.74.161.0/24 +94.74.162.0/24 +94.74.167.0/24 +94.74.178.0/23 +94.74.180.0/24 +94.74.182.0/24 +94.74.188.0/23 +94.74.190.0/24 +94.101.128.0/20 +94.101.176.0/20 +94.101.240.0/20 +94.139.160.0/19 +94.176.8.0/21 +94.176.32.0/21 +94.177.72.0/21 +94.182.0.0/15 +94.184.0.0/16 +94.199.136.0/22 +94.232.168.0/21 +94.241.164.0/22 +95.38.0.0/16 +95.64.0.0/17 +95.80.128.0/18 +95.81.64.0/18 +95.130.56.0/21 +95.130.225.0/24 +95.130.240.0/21 +95.142.224.0/20 +95.156.222.0/23 +95.156.233.0/24 +95.156.234.0/23 +95.156.236.0/23 +95.156.248.0/23 +95.156.252.0/22 +95.162.0.0/16 +95.215.59.0/24 +95.215.160.0/22 +95.215.173.0/24 +103.130.144.0/24 +103.130.146.0/24 +103.215.220.0/22 +103.216.60.0/22 +103.231.136.0/22 +104.28.11.28/31 +104.28.11.30/32 +104.28.37.237/32 +104.28.37.238/31 +104.28.37.240/31 +104.28.51.83/32 +104.28.51.84/30 +104.28.80.85/32 +104.28.80.86/31 +104.28.80.88/31 +104.28.106.57/32 +104.28.106.58/31 +104.28.106.60/31 +104.28.131.38/31 +104.28.131.40/32 +104.28.194.219/32 +104.28.194.220/30 +104.28.194.224/31 +104.28.214.161/32 +104.28.214.162/31 +104.28.214.164/30 +104.28.214.168/32 +104.28.226.219/32 +104.28.226.220/30 +104.28.226.224/31 +104.28.246.161/32 +104.28.246.162/31 +104.28.246.164/30 +104.28.246.168/32 +109.70.237.0/24 +109.72.192.0/20 +109.74.232.0/21 +109.94.164.0/22 +109.95.60.0/22 +109.95.64.0/21 +109.107.131.0/24 +109.108.160.0/19 +109.109.32.0/19 +109.110.160.0/19 +109.122.193.0/24 +109.122.199.0/24 +109.122.209.0/24 +109.122.217.0/24 +109.122.224.0/20 +109.122.240.0/21 +109.122.248.0/22 +109.122.252.0/23 +109.125.128.0/18 +109.162.128.0/17 +109.201.0.0/19 +109.203.128.0/19 +109.203.176.0/22 +109.206.252.0/22 +109.225.128.0/18 +109.230.64.0/19 +109.230.192.0/23 +109.230.200.0/24 +109.230.204.0/22 +109.230.221.0/24 +109.230.223.0/24 +109.230.242.0/24 +109.230.246.0/23 +109.230.251.0/24 +109.232.0.0/21 +109.238.176.0/20 +109.239.0.0/20 +113.203.0.0/17 +128.65.160.0/19 +130.185.72.0/21 +130.193.77.0/24 +130.244.41.211/32 +130.244.41.213/32 +130.244.71.67/32 +130.244.71.72/31 +130.244.71.74/32 +130.244.71.80/31 +130.244.85.151/32 +130.255.192.0/18 +134.255.196.0/23 +134.255.200.0/21 +134.255.245.0/24 +134.255.246.0/24 +134.255.248.0/23 +140.248.34.128/30 +140.248.36.146/31 +140.248.36.148/31 +141.11.42.0/24 +146.19.104.0/24 +146.19.217.0/24 +146.66.128.0/21 +146.75.132.146/31 +146.75.132.148/31 +146.75.169.128/30 +146.75.180.36/30 +151.232.0.0/14 +151.238.0.0/15 +151.240.0.0/13 +152.89.12.0/22 +152.89.44.0/22 +157.119.188.0/22 +158.58.0.0/17 +158.58.184.0/21 +158.255.74.0/24 +158.255.78.0/24 +159.20.96.0/20 +164.138.16.0/21 +164.138.128.0/18 +164.215.56.0/21 +164.215.128.0/17 +171.22.24.0/22 +172.80.128.0/17 +172.225.187.16/28 +172.225.191.160/27 +172.225.196.144/28 +172.225.196.184/29 +172.225.228.128/27 +172.225.229.96/28 +176.12.64.0/20 +176.56.144.0/20 +176.62.144.0/21 +176.65.160.0/19 +176.65.192.0/18 +176.67.64.0/20 +176.97.218.0/24 +176.97.220.0/24 +176.101.32.0/20 +176.101.48.0/21 +176.102.224.0/19 +176.105.245.0/24 +176.116.7.0/24 +176.122.210.0/23 +176.123.64.0/18 +176.124.64.0/22 +176.126.120.0/24 +176.221.64.0/21 +176.223.80.0/21 +178.21.40.0/21 +178.21.160.0/21 +178.22.72.0/21 +178.22.120.0/21 +178.131.0.0/16 +178.157.0.0/23 +178.169.0.0/19 +178.173.128.0/18 +178.173.192.0/19 +178.211.145.0/24 +178.215.0.0/18 +178.216.248.0/21 +178.219.224.0/20 +178.236.32.0/22 +178.236.96.0/20 +178.238.192.0/20 +178.239.144.0/20 +178.248.40.0/21 +178.251.208.0/21 +178.252.128.0/18 +178.253.16.0/24 +178.253.31.0/24 +178.253.32.0/24 +178.253.38.0/23 +185.1.77.0/24 +185.2.12.0/22 +185.3.124.0/22 +185.3.200.0/22 +185.3.212.0/22 +185.4.0.0/22 +185.4.16.0/22 +185.4.28.0/22 +185.4.104.0/22 +185.4.220.0/22 +185.5.156.0/22 +185.7.212.0/24 +185.8.172.0/22 +185.10.71.0/24 +185.10.72.0/22 +185.11.68.0/22 +185.11.88.0/22 +185.11.176.0/22 +185.12.60.0/22 +185.12.100.0/23 +185.12.102.0/24 +185.13.228.0/22 +185.14.80.0/22 +185.14.160.0/22 +185.16.232.0/22 +185.18.156.0/22 +185.18.212.0/22 +185.19.201.0/24 +185.20.160.0/22 +185.21.68.0/22 +185.21.76.0/22 +185.22.28.0/22 +185.23.128.0/22 +185.24.136.0/22 +185.24.148.0/22 +185.24.228.0/22 +185.24.252.0/22 +185.25.172.0/22 +185.26.32.0/22 +185.26.232.0/22 +185.29.220.0/22 +185.30.4.0/22 +185.30.76.0/22 +185.31.124.0/22 +185.32.128.0/22 +185.33.25.0/24 +185.34.160.0/22 +185.36.228.0/24 +185.36.231.0/24 +185.37.52.0/22 +185.39.180.0/22 +185.40.16.0/24 +185.40.240.0/22 +185.41.0.0/22 +185.41.220.0/22 +185.42.24.0/24 +185.42.212.0/22 +185.42.224.0/22 +185.44.36.0/22 +185.44.100.0/22 +185.44.112.0/22 +185.45.188.0/22 +185.46.0.0/22 +185.46.108.0/22 +185.46.216.0/22 +185.47.48.0/22 +185.49.84.0/22 +185.49.96.0/22 +185.49.104.0/22 +185.49.231.0/24 +185.50.36.0/22 +185.51.40.0/22 +185.51.200.0/22 +185.53.140.0/22 +185.55.224.0/22 +185.56.92.0/22 +185.56.96.0/22 +185.57.132.0/22 +185.57.164.0/22 +185.57.200.0/22 +185.58.240.0/22 +185.59.112.0/23 +185.60.32.0/22 +185.60.136.0/22 +185.62.232.0/22 +185.63.113.0/24 +185.63.114.0/24 +185.63.236.0/22 +185.64.176.0/22 +185.66.224.0/21 +185.67.12.0/22 +185.67.100.0/22 +185.67.156.0/22 +185.67.212.0/22 +185.69.108.0/22 +185.70.60.0/22 +185.71.152.0/22 +185.71.192.0/22 +185.72.24.0/22 +185.72.80.0/22 +185.73.0.0/22 +185.73.76.0/22 +185.73.112.0/24 +185.73.114.0/24 +185.73.226.0/24 +185.74.164.0/22 +185.74.221.0/24 +185.75.196.0/22 +185.75.204.0/22 +185.76.248.0/22 +185.78.20.0/22 +185.79.60.0/22 +185.79.96.0/22 +185.79.156.0/22 +185.80.100.0/22 +185.80.198.0/23 +185.81.40.0/22 +185.81.96.0/23 +185.81.99.0/24 +185.82.28.0/22 +185.82.64.0/22 +185.82.136.0/22 +185.82.164.0/22 +185.82.180.0/22 +185.83.28.0/22 +185.83.76.0/22 +185.83.80.0/22 +185.83.88.0/22 +185.83.112.0/24 +185.83.114.0/23 +185.83.180.0/22 +185.83.184.0/22 +185.83.196.0/22 +185.83.208.0/22 +185.84.220.0/22 +185.85.68.0/22 +185.85.136.0/22 +185.86.36.0/22 +185.86.180.0/22 +185.88.48.0/22 +185.88.152.0/22 +185.88.176.0/22 +185.88.252.0/22 +185.89.22.0/24 +185.89.112.0/22 +185.92.4.0/22 +185.92.8.0/22 +185.92.40.0/22 +185.94.96.0/23 +185.94.98.0/24 +185.94.99.0/25 +185.94.99.136/29 +185.94.99.144/28 +185.94.99.160/27 +185.94.99.192/26 +185.95.60.0/22 +185.95.152.0/22 +185.95.180.0/22 +185.96.240.0/22 +185.97.116.0/22 +185.98.112.0/22 +185.99.212.0/22 +185.100.44.0/22 +185.101.228.0/22 +185.103.84.0/22 +185.103.128.0/22 +185.103.244.0/22 +185.103.248.0/22 +185.104.192.0/24 +185.104.228.0/22 +185.104.232.0/22 +185.104.240.0/22 +185.105.100.0/22 +185.105.120.0/22 +185.105.184.0/22 +185.105.236.0/22 +185.106.136.0/22 +185.106.144.0/22 +185.106.200.0/22 +185.106.228.0/22 +185.107.28.0/22 +185.107.32.0/23 +185.107.244.0/22 +185.107.248.0/22 +185.108.96.0/22 +185.108.164.0/22 +185.109.60.0/22 +185.109.72.0/22 +185.109.80.0/22 +185.109.128.0/22 +185.109.244.0/22 +185.109.248.0/22 +185.110.28.0/22 +185.110.216.0/22 +185.110.228.0/22 +185.110.236.0/22 +185.110.244.0/22 +185.110.252.0/22 +185.111.8.0/21 +185.111.64.0/22 +185.111.80.0/22 +185.111.136.0/22 +185.112.32.0/21 +185.112.130.0/23 +185.112.148.0/22 +185.112.168.0/22 +185.113.56.0/22 +185.113.112.0/22 +185.114.188.0/22 +185.115.76.0/22 +185.115.148.0/22 +185.115.168.0/22 +185.116.20.0/22 +185.116.24.0/22 +185.116.44.0/22 +185.116.160.0/22 +185.117.48.0/22 +185.117.136.0/22 +185.117.204.0/23 +185.117.206.0/24 +185.118.12.0/22 +185.118.136.0/22 +185.118.152.0/22 +185.119.4.0/22 +185.119.164.0/22 +185.119.240.0/22 +185.120.120.0/22 +185.120.136.0/22 +185.120.160.0/22 +185.120.168.0/22 +185.120.192.0/21 +185.120.200.0/22 +185.120.208.0/20 +185.120.224.0/20 +185.120.240.0/21 +185.120.248.0/22 +185.121.56.0/22 +185.121.128.0/22 +185.122.80.0/22 +185.123.68.0/22 +185.123.208.0/22 +185.124.112.0/22 +185.124.156.0/22 +185.124.172.0/22 +185.125.20.0/22 +185.125.244.0/22 +185.125.248.0/21 +185.126.0.0/20 +185.126.16.0/22 +185.126.40.0/22 +185.126.132.0/23 +185.126.200.0/22 +185.127.232.0/22 +185.128.40.0/24 +185.128.48.0/22 +185.128.80.0/22 +185.128.136.0/22 +185.128.152.0/22 +185.128.164.0/22 +185.129.80.0/22 +185.129.168.0/22 +185.129.184.0/21 +185.129.196.0/22 +185.129.200.0/22 +185.129.212.0/22 +185.129.216.0/22 +185.129.228.0/22 +185.129.232.0/21 +185.129.240.0/22 +185.130.76.0/22 +185.131.28.0/22 +185.131.84.0/22 +185.131.88.0/21 +185.131.100.0/22 +185.131.108.0/22 +185.131.112.0/21 +185.131.124.0/22 +185.131.128.0/22 +185.131.136.0/21 +185.131.148.0/22 +185.131.152.0/21 +185.131.164.0/22 +185.131.168.0/22 +185.132.80.0/22 +185.132.212.0/22 +185.133.152.0/22 +185.133.164.0/22 +185.133.244.0/23 +185.133.246.0/24 +185.134.96.0/22 +185.135.28.0/22 +185.135.228.0/22 +185.136.100.0/22 +185.136.172.0/22 +185.136.180.0/22 +185.136.192.0/22 +185.136.220.0/22 +185.137.24.0/22 +185.137.60.0/22 +185.137.108.0/23 +185.137.110.0/24 +185.139.64.0/22 +185.140.4.0/22 +185.140.56.0/22 +185.140.232.0/22 +185.140.240.0/22 +185.141.36.0/22 +185.141.48.0/22 +185.141.104.0/22 +185.141.132.0/22 +185.141.168.0/22 +185.141.212.0/22 +185.141.244.0/22 +185.142.92.0/22 +185.142.124.0/22 +185.142.156.0/22 +185.142.232.0/22 +185.143.72.0/22 +185.143.204.0/22 +185.143.232.0/22 +185.144.64.0/22 +185.145.8.0/22 +185.145.184.0/22 +185.147.40.0/22 +185.147.84.0/22 +185.147.160.0/22 +185.147.176.0/22 +185.149.192.0/24 +185.150.108.0/22 +185.153.184.0/22 +185.153.208.0/22 +185.154.184.0/22 +185.155.8.0/21 +185.155.72.0/22 +185.155.236.0/22 +185.157.8.0/22 +185.158.172.0/22 +185.159.152.0/22 +185.159.176.0/22 +185.160.104.0/22 +185.160.176.0/22 +185.161.36.0/22 +185.161.112.0/22 +185.162.40.0/22 +185.162.216.0/22 +185.163.88.0/22 +185.164.73.0/24 +185.164.74.0/23 +185.164.252.0/22 +185.165.28.0/22 +185.165.40.0/22 +185.165.100.0/22 +185.165.116.0/22 +185.165.204.0/22 +185.166.60.0/22 +185.166.104.0/22 +185.166.112.0/22 +185.167.72.0/22 +185.167.100.0/22 +185.167.124.0/22 +185.168.28.0/22 +185.169.6.0/24 +185.169.20.0/22 +185.169.36.0/22 +185.170.8.0/24 +185.170.236.0/22 +185.171.52.0/22 +185.172.0.0/22 +185.172.68.0/22 +185.172.212.0/22 +185.173.104.0/22 +185.173.129.0/24 +185.173.130.0/24 +185.173.168.0/22 +185.174.132.0/24 +185.174.134.0/24 +185.174.200.0/22 +185.174.248.0/22 +185.175.76.0/22 +185.175.240.0/22 +185.176.32.0/22 +185.176.56.0/22 +185.177.156.0/22 +185.177.232.0/22 +185.178.104.0/22 +185.178.220.0/22 +185.179.90.0/24 +185.179.168.0/22 +185.179.220.0/22 +185.180.52.0/22 +185.180.128.0/22 +185.181.180.0/22 +185.182.220.0/22 +185.182.248.0/22 +185.184.32.0/22 +185.184.48.0/22 +185.185.16.0/22 +185.185.240.0/22 +185.186.48.0/22 +185.186.240.0/22 +185.187.48.0/22 +185.187.84.0/22 +185.188.104.0/22 +185.188.112.0/22 +185.189.120.0/22 +185.190.20.0/22 +185.190.25.128/25 +185.190.39.0/24 +185.191.76.0/22 +185.192.8.0/22 +185.192.112.0/22 +185.193.47.0/24 +185.193.208.0/22 +185.194.76.0/22 +185.194.244.0/22 +185.195.72.0/22 +185.196.148.0/22 +185.197.68.0/22 +185.197.112.0/22 +185.198.160.0/22 +185.199.64.0/22 +185.199.208.0/22 +185.201.48.0/22 +185.202.56.0/22 +185.203.160.0/22 +185.204.180.0/22 +185.204.197.0/24 +185.205.203.0/24 +185.205.220.0/22 +185.206.92.0/22 +185.206.229.0/24 +185.206.231.0/24 +185.206.236.0/22 +185.207.52.0/22 +185.207.72.0/22 +185.208.76.0/22 +185.208.148.0/22 +185.208.174.0/23 +185.208.180.0/22 +185.209.188.0/22 +185.210.200.0/22 +185.211.56.0/22 +185.211.84.0/22 +185.211.88.0/22 +185.212.48.0/22 +185.212.192.0/22 +185.213.8.0/22 +185.213.164.0/22 +185.213.195.0/24 +185.214.36.0/22 +185.215.124.0/22 +185.215.152.0/22 +185.215.228.0/22 +185.218.139.0/24 +185.219.112.0/22 +185.220.224.0/22 +185.221.112.0/22 +185.221.192.0/22 +185.221.239.0/24 +185.222.120.0/22 +185.222.180.0/22 +185.222.184.0/22 +185.222.210.0/24 +185.223.160.0/24 +185.224.176.0/22 +185.225.80.0/22 +185.225.180.0/22 +185.225.240.0/22 +185.226.97.0/24 +185.226.116.0/22 +185.226.132.0/22 +185.226.140.0/22 +185.227.64.0/22 +185.227.116.0/22 +185.228.236.0/22 +185.229.0.0/22 +185.229.28.0/22 +185.229.204.0/24 +185.231.65.0/24 +185.231.112.0/24 +185.231.114.0/23 +185.231.180.0/22 +185.232.152.0/22 +185.232.176.0/22 +185.233.12.0/22 +185.233.84.0/22 +185.233.131.0/24 +185.234.14.0/24 +185.234.192.0/22 +185.235.136.0/24 +185.235.138.0/23 +185.235.245.0/24 +185.236.36.0/22 +185.236.45.0/24 +185.236.88.0/22 +185.237.8.0/22 +185.237.84.0/22 +185.238.20.0/22 +185.238.44.0/22 +185.238.92.0/22 +185.238.140.0/24 +185.238.143.0/24 +185.239.0.0/22 +185.239.104.0/22 +185.240.56.0/22 +185.240.148.0/22 +185.243.48.0/22 +185.244.52.0/22 +185.246.4.0/22 +185.248.32.0/24 +185.251.76.0/22 +185.252.28.0/22 +185.252.200.0/24 +185.254.165.0/24 +185.254.166.0/24 +185.255.68.0/22 +185.255.88.0/22 +185.255.208.0/22 +188.0.240.0/20 +188.75.64.0/18 +188.94.188.0/24 +188.95.89.0/24 +188.118.64.0/18 +188.121.96.0/19 +188.121.128.0/19 +188.122.96.0/19 +188.136.128.0/18 +188.136.192.0/19 +188.158.0.0/15 +188.191.176.0/21 +188.208.56.0/21 +188.208.64.0/19 +188.208.144.0/20 +188.208.160.0/19 +188.208.200.0/22 +188.208.208.0/21 +188.208.224.0/19 +188.209.0.0/19 +188.209.32.0/20 +188.209.64.0/20 +188.209.116.0/22 +188.209.152.0/23 +188.209.192.0/20 +188.210.64.0/20 +188.210.80.0/21 +188.210.96.0/19 +188.210.128.0/18 +188.210.192.0/20 +188.210.232.0/22 +188.211.0.0/20 +188.211.32.0/19 +188.211.64.0/18 +188.211.128.0/19 +188.211.176.0/20 +188.211.192.0/19 +188.212.22.0/24 +188.212.48.0/20 +188.212.64.0/19 +188.212.96.0/22 +188.212.144.0/21 +188.212.160.0/19 +188.212.200.0/21 +188.212.208.0/20 +188.212.224.0/20 +188.212.240.0/21 +188.213.64.0/20 +188.213.96.0/19 +188.213.144.0/20 +188.213.176.0/20 +188.213.192.0/21 +188.213.208.0/22 +188.214.4.0/22 +188.214.84.0/22 +188.214.96.0/22 +188.214.120.0/23 +188.214.160.0/19 +188.214.216.0/21 +188.215.24.0/22 +188.215.88.0/22 +188.215.128.0/20 +188.215.160.0/19 +188.215.192.0/19 +188.215.240.0/22 +188.229.0.0/17 +188.240.196.0/24 +188.240.212.0/24 +188.240.248.0/21 +188.253.2.0/23 +188.253.32.0/21 +188.253.40.0/24 +188.253.42.0/23 +188.253.44.0/22 +188.253.48.0/20 +188.253.64.0/19 +192.15.0.0/16 +192.167.140.66/32 +193.0.156.0/24 +193.3.31.0/24 +193.3.182.0/24 +193.3.231.0/24 +193.3.255.0/24 +193.8.139.0/24 +193.19.144.0/23 +193.22.20.0/24 +193.28.181.0/24 +193.29.24.0/24 +193.29.26.0/24 +193.32.80.0/23 +193.34.244.0/22 +193.35.62.0/24 +193.38.247.0/24 +193.39.9.0/24 +193.56.59.0/24 +193.56.61.0/24 +193.56.107.0/24 +193.56.118.0/24 +193.104.22.0/24 +193.104.29.0/24 +193.104.212.0/24 +193.105.2.0/24 +193.105.6.0/24 +193.105.234.0/24 +193.106.190.0/24 +193.107.48.0/24 +193.108.242.0/23 +193.111.234.0/23 +193.134.100.0/23 +193.141.64.0/23 +193.141.126.0/23 +193.142.30.0/24 +193.142.232.0/23 +193.142.254.0/23 +193.148.64.0/22 +193.150.66.0/24 +193.151.128.0/19 +193.162.129.0/24 +193.176.240.0/22 +193.178.200.0/22 +193.186.4.40/30 +193.186.32.0/24 +193.189.122.0/23 +193.200.102.0/23 +193.200.148.0/24 +193.201.72.0/23 +193.201.192.0/22 +193.222.51.0/24 +193.228.90.0/23 +193.228.136.0/24 +193.240.187.76/30 +193.240.207.0/28 +193.242.194.0/23 +193.242.208.0/23 +193.246.160.0/23 +193.246.164.0/23 +193.246.174.0/23 +193.246.200.0/23 +194.5.40.0/22 +194.5.175.0/24 +194.5.176.0/22 +194.5.188.0/24 +194.5.195.0/24 +194.5.205.0/24 +194.9.56.0/23 +194.9.80.0/23 +194.26.2.0/23 +194.26.20.0/23 +194.26.117.0/24 +194.26.195.0/24 +194.31.108.0/24 +194.31.194.0/24 +194.33.104.0/22 +194.33.122.0/23 +194.33.124.0/22 +194.34.163.0/24 +194.36.0.0/24 +194.36.174.0/24 +194.39.36.0/22 +194.41.48.0/22 +194.50.204.0/24 +194.50.209.0/24 +194.50.216.0/24 +194.50.218.0/24 +194.53.118.0/23 +194.53.122.0/23 +194.56.148.0/24 +194.59.170.0/23 +194.59.214.0/23 +194.60.208.0/22 +194.60.228.0/22 +194.62.17.0/24 +194.62.43.0/24 +194.87.23.0/24 +194.143.140.0/23 +194.146.148.0/22 +194.146.239.0/24 +194.147.164.0/22 +194.147.212.0/24 +194.147.222.0/24 +194.150.68.0/22 +194.156.140.0/22 +194.180.224.0/24 +194.225.0.0/16 +195.2.234.0/24 +195.8.102.0/24 +195.8.110.0/24 +195.8.112.0/24 +195.8.114.0/24 +195.20.136.0/24 +195.27.14.0/29 +195.28.10.0/23 +195.28.168.0/23 +195.88.188.0/23 +195.96.128.0/24 +195.96.153.0/24 +195.110.38.0/23 +195.114.4.0/23 +195.114.8.0/23 +195.146.32.0/19 +195.181.0.0/17 +195.182.38.0/24 +195.190.130.0/24 +195.190.139.0/24 +195.190.144.0/24 +195.191.22.0/23 +195.191.44.0/23 +195.191.74.0/23 +195.211.44.0/22 +195.217.44.172/30 +195.219.71.0/24 +195.225.232.0/24 +195.226.223.0/24 +195.230.97.0/24 +195.230.105.0/24 +195.230.107.0/24 +195.230.124.0/24 +195.234.191.0/24 +195.238.231.0/24 +195.238.240.0/24 +195.238.247.0/24 +195.245.70.0/23 +196.3.91.0/24 +204.18.0.0/16 +204.245.22.24/30 +204.245.22.29/32 +204.245.22.30/31 +209.28.123.0/26 +210.5.196.64/26 +210.5.197.64/26 +210.5.198.32/29 +210.5.198.64/28 +210.5.198.96/27 +210.5.198.128/26 +210.5.198.192/27 +210.5.204.0/25 +210.5.205.0/26 +210.5.208.0/26 +210.5.208.128/25 +210.5.209.0/25 +210.5.214.192/26 +210.5.218.64/26 +210.5.218.128/25 +210.5.232.0/25 +210.5.233.0/25 +210.5.233.128/26 +212.1.192.0/21 +212.16.64.0/19 +212.18.108.0/24 +212.23.201.0/24 +212.23.214.0/24 +212.23.216.0/24 +212.33.192.0/19 +212.46.45.0/24 +212.80.0.0/19 +212.86.64.0/19 +212.120.146.128/29 +212.120.192.0/19 +212.151.56.189/32 +212.151.60.189/32 +212.151.182.155/32 +212.151.182.156/31 +212.151.186.154/31 +212.151.186.156/32 +213.108.240.0/23 +213.108.242.0/24 +213.109.199.0/24 +213.109.240.0/20 +213.168.224.216/30 +213.168.240.96/29 +213.176.0.0/20 +213.176.16.0/22 +213.176.28.0/22 +213.176.64.0/18 +213.195.0.0/20 +213.195.16.0/21 +213.195.32.0/19 +213.207.192.0/18 +213.217.32.0/19 +213.232.124.0/22 +213.233.160.0/19 +217.11.16.0/20 +217.24.144.0/20 +217.25.48.0/20 +217.60.0.0/16 +217.66.192.0/19 +217.77.112.0/20 +217.114.40.0/24 +217.144.104.0/22 +217.146.208.0/20 +217.161.16.0/24 +217.170.240.0/20 +217.171.145.0/24 +217.171.148.0/22 +217.171.191.220/30 +217.172.98.0/23 +217.172.102.0/23 +217.172.104.0/21 +217.172.112.0/22 +217.172.116.0/23 +217.172.118.0/24 +217.172.120.0/21 +217.174.16.0/20 +217.198.190.0/24 +217.218.0.0/16 +217.219.0.0/17 +217.219.128.0/18 +217.219.192.0/21 +217.219.200.0/22 +217.219.204.0/24 +217.219.205.64/26 +217.219.205.128/25 +217.219.206.0/23 +217.219.208.0/20 +217.219.224.0/19 \ No newline at end of file diff --git a/src/files/etc/config/firewall b/src/files/etc/config/firewall new file mode 100644 index 0000000..fc33240 --- /dev/null +++ b/src/files/etc/config/firewall @@ -0,0 +1,105 @@ +config defaults + option syn_flood '1' + option input 'REJECT' + option output 'ACCEPT' + option forward 'REJECT' + +config zone 'lan' + option name 'lan' + list network 'lan' + option input 'ACCEPT' + option output 'ACCEPT' + option forward 'ACCEPT' + +config zone 'wanzone' + option name 'wanzone' + list network 'wan' + option input 'REJECT' + option output 'ACCEPT' + option forward 'REJECT' + option masq '1' + option mtu_fix '1' + +config zone 'wwanzone' + option name 'wwanzone' + list network 'wwan' + option input 'REJECT' + option output 'ACCEPT' + option forward 'REJECT' + option masq '1' + option mtu_fix '1' + +config zone 'wg0zone' + option name 'wg0zone' + list network 'wg0' + option input 'ACCEPT' + option output 'ACCEPT' + option forward 'REJECT' + option masq '1' + option mtu_fix '1' + +config zone 'guest_zone' + option name 'guest_zone' + list network 'Guest' + option input 'ACCEPT' + option output 'ACCEPT' + option forward 'ACCEPT' + +config forwarding + option src 'lan' + option dest 'wanzone' + +config forwarding + option src 'lan' + option dest 'wwanzone' + +config forwarding + option src 'lan' + option dest 'wg0zone' + +config forwarding + option src 'guest_zone' + option dest 'wanzone' + +config forwarding + option src 'guest_zone' + option dest 'wwanzone' + +config forwarding + option src 'guest_zone' + option dest 'wg0zone' + +config redirect + option name 'Redirect DNS to 8.8.8.8' + option src 'lan' + option src_dport '53' + option proto 'tcp udp' + option dest_port '53' + option target 'DNAT' + option dest_ip '8.8.8.8' + +config rule + option name 'Restrict IP Range Access' + option src 'guest_zone' + option src_ip '192.168.3.100/24' + option dest_port '2027' + option proto 'tcp' + option dest 'guest_zone' + option target 'ACCEPT' + + +config rule + option name 'Block Guest Access to Management Interface' + option src 'guest_zone' + option dest_ip '192.168.0.0/16' # Specify the router's management IP + option dest_port '80' + option proto 'tcp' + option target 'REJECT' + +config rule + option name 'Drop_Guest_Traffic' + option src 'guest_zone' + option src_ip '192.168.3.100/24' + option dest '*' + option proto 'all' + option target 'REJECT' \ No newline at end of file diff --git a/src/files/etc/config/mwan3 b/src/files/etc/config/mwan3 new file mode 100644 index 0000000..9a17c2c --- /dev/null +++ b/src/files/etc/config/mwan3 @@ -0,0 +1,226 @@ +# For full documentation of mwan3 configuration: +# https://openwrt.org/docs/guide-user/network/wan/multiwan/mwan3#mwan3_configuration + +config globals 'globals' + option mmx_mask '0x3F00' + +config interface 'wan' + option enabled '1' + list track_ip '1.1.1.1' + list track_ip '89.233.43.71' + option family 'ipv4' + option reliability '1' + +config interface 'wwan' + option enabled '1' + list track_ip '1.1.1.1' + list track_ip '208.67.220.220' + option family 'ipv4' + option reliability '1' + +config interface 'wg0' + option enabled '1' + list track_ip '1.1.1.1' + list track_ip '208.67.220.220' + option family 'ipv4' + option reliability '1' + +config member 'wg0_member' + option interface 'wg0' + option metric '1' + option weight '3' + +config member 'wan_m1_w3' + option interface 'wan' + option metric '3' + option weight '3' + +config member 'wwan_m1_w3' + option interface 'wwan' + option metric '2' + option weight '3' + +config policy 'wg0_only' + list use_member 'wg0_member' + +config policy 'wan_only' + list use_member 'wan_m1_w3' + +config policy 'wwan_only' + list use_member 'wwan_m1_w3' + + +config rule 'chisel_server' + option dest_ip '8.8.8.8' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip1' + option dest_ip '2.144.0.0/14,2.176.0.0/12,5.1.43.0/24,5.22.0.0/17,5.22.192.0/21,5.22.200.0/22,5.23.112.0/21,5.42.223.0/24,5.52.0.0/16,5.53.32.0/19,5.56.128.0/22,5.56.132.0/24,5.56.134.0/23,5.57.32.0/21,5.61.24.0/23,5.61.26.0/24,5.61.28.0/22,5.62.160.0/19,5.62.192.0/18,5.63.8.0/21,5.72.0.0/15,5.74.0.0/16,5.75.0.0/17,5.104.208.0/21,5.106.0.0/16,5.112.0.0/12,5.134.128.0/18,5.134.192.0/21,5.135.116.200/30,5.144.128.0/21,5.145.112.0/22,5.145.116.0/24,5.159.48.0/21,5.160.0.0/16,5.182.44.0/22,5.190.0.0/16,5.198.160.0/19,5.200.64.0/18,5.200.128.0/17,5.201.128.0/17,5.202.0.0/16,5.208.0.0/12,5.232.0.0/14,5.236.0.0/17,5.236.128.0/20,5.236.144.0/21,5.236.156.0/22,5.236.160.0/19,5.236.192.0/18,5.237.0.0/16,5.238.0.0/15,5.250.0.0/17,5.252.216.0/22,5.253.24.0/22,5.253.96.0/22,5.253.225.0/24,8.27.67.32/32,8.27.67.41/32,31.2.128.0/17,31.7.64.0/21' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip2' + option dest_ip '31.7.72.0/22,31.7.76.0/23,31.7.88.0/22,31.7.96.0/19,31.7.128.0/20,31.14.80.0/20,31.14.112.0/20,31.14.144.0/20,31.24.200.0/21,31.24.232.0/21,31.25.90.0/23,31.25.92.0/22,31.25.104.0/21,31.25.128.0/21,31.25.232.0/23,31.40.0.0/22,31.40.4.0/24,31.41.35.0/24,31.47.32.0/19,31.56.0.0/14,31.130.176.0/20,31.170.48.0/22,31.170.52.0/23,31.170.54.0/24,31.170.56.0/21,31.171.216.0/21,31.184.128.0/18,31.193.112.0/21,31.193.186.0/24,31.214.132.0/23,31.214.146.0/23,31.214.154.0/24,31.214.168.0/21,31.214.200.0/23,31.214.228.0/22,31.214.248.0/21,31.216.62.0/24,31.217.208.0/21,37.9.248.0/21,37.10.64.0/22,37.10.109.0/24,37.10.117.0/24,37.19.80.0/20,37.32.0.0/19,37.32.32.0/20,37.32.112.0/20,37.44.56.0/21,37.63.128.0/17,37.75.240.0/21,37.98.0.0/17,37.114.192.0/18,37.129.0.0/16,37.130.200.0/21,37.137.0.0/16,37.143.144.0/21,37.148.0.0/17,37.148.248.0/22,37.152.160.0/19,37.153.128.0/22,37.153.176.0/20' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip3' + option dest_ip '37.156.0.0/22,37.156.8.0/21,37.156.16.0/20,37.156.48.0/20,37.156.100.0/22,37.156.112.0/20,37.156.128.0/20,37.156.144.0/22,37.156.152.0/21,37.156.160.0/21,37.156.176.0/22,37.156.212.0/22,37.156.232.0/21,37.156.240.0/22,37.156.248.0/22,37.191.64.0/19,37.202.128.0/17,37.221.0.0/18,37.228.131.0/24,37.228.133.0/24,37.228.135.0/24,37.228.136.0/22,37.235.16.0/20,37.254.0.0/16,37.255.0.0/17,37.255.128.0/26,37.255.128.64/27,37.255.128.96/28,37.255.128.128/25,37.255.129.0/24,37.255.130.0/23,37.255.132.0/22,37.255.136.0/21,37.255.144.0/20,37.255.160.0/19,37.255.192.0/18,45.8.160.0/22,45.9.144.0/22,45.9.252.0/22,45.15.200.0/22,45.15.248.0/22,45.81.16.0/22,45.82.136.0/22,45.84.156.0/22,45.84.248.0/22,45.86.4.0/22,45.86.87.0/24,45.86.196.0/22,45.87.4.0/22,45.89.136.0/22,45.89.200.0/22,45.89.236.0/22,45.90.72.0/22,45.91.152.0/22,45.92.92.0/22,45.93.168.0/22,45.94.212.0/22,45.94.252.0/22,45.128.140.0/22,45.129.36.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip4' + option dest_ip '45.129.116.0/22,45.132.32.0/24,45.132.168.0/21,45.135.240.0/22,45.138.132.0/22,45.139.9.0/24,45.139.10.0/23,45.139.100.0/22,45.140.28.0/22,45.140.224.0/21,45.142.188.0/22,45.144.16.0/22,45.144.124.0/22,45.147.76.0/22,45.148.248.0/22,45.149.76.0/22,45.150.88.0/22,45.150.150.0/24,45.155.192.0/22,45.156.180.0/22,45.156.184.0/22,45.156.192.0/21,45.156.200.0/22,45.157.244.0/22,45.158.120.0/22,45.159.112.0/22,45.159.148.0/22,45.159.196.0/22,46.18.248.0/21,46.21.80.0/20,46.28.72.0/21,46.32.0.0/19,46.34.96.0/19,46.34.160.0/19,46.36.96.0/20,46.38.128.0/23,46.38.130.0/24,46.38.131.0/25,46.38.131.128/26,46.38.132.0/22,46.38.136.0/21,46.38.144.0/20,46.41.192.0/18,46.51.0.0/17,46.62.128.0/17,46.100.0.0/16,46.102.120.0/21,46.102.128.0/20,46.102.184.0/22,46.143.0.0/17,46.143.204.0/22,46.143.208.0/21,46.143.244.0/22,46.143.248.0/22,46.148.32.0/20,46.164.64.0/18,46.167.128.0/19,46.182.32.0/21,46.209.0.0/16,46.224.0.0/15' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip5' + option dest_ip '46.235.76.0/23,46.245.0.0/17,46.248.32.0/19,46.249.96.0/24,46.249.120.0/21,46.251.224.0/25,46.251.224.128/28,46.251.224.144/29,46.251.226.0/24,46.251.237.0/24,46.255.216.0/21,62.3.14.0/24,62.3.41.0/24,62.3.42.0/24,62.32.49.128/26,62.32.49.192/27,62.32.49.224/29,62.32.49.240/28,62.32.50.0/24,62.32.53.64/26,62.32.53.168/29,62.32.53.224/28,62.32.61.96/27,62.32.61.224/27,62.32.63.128/26,62.60.128.0/22,62.60.136.0/21,62.60.144.0/22,62.60.152.0/21,62.60.160.0/22,62.60.196.0/22,62.60.208.0/20,62.102.128.0/20,62.133.46.0/24,62.193.0.0/19,62.204.61.0/24,62.220.96.0/19,63.243.185.0/24,64.214.116.16/32,65.21.221.144/28,66.79.96.0/19,67.16.178.147/32,67.16.178.148/31,67.16.178.150/32,69.194.64.0/18,72.14.201.40/30,77.36.128.0/17,77.42.0.0/17,77.77.64.0/18,77.81.32.0/20,77.81.76.0/24,77.81.78.0/24,77.81.82.0/23,77.81.128.0/21,77.81.144.0/20,77.81.192.0/19,77.90.139.180/30,77.95.220.0/24,77.104.64.0/18,77.237.64.0/19' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip6' + option dest_ip '77.237.160.0/19,77.238.104.0/21,77.238.112.0/20,77.245.224.0/20,78.31.232.0/22,78.38.0.0/15,78.109.192.0/20,78.110.112.0/20,78.111.0.0/20,78.154.32.0/19,78.157.32.0/19,78.158.160.0/19,79.127.0.0/17,79.132.192.0/23,79.132.200.0/21,79.132.208.0/20,79.143.84.0/23,79.143.86.0/24,79.174.160.0/21,79.175.128.0/19,79.175.160.0/22,79.175.164.0/23,79.175.166.0/24,79.175.167.0/25,79.175.167.128/30,79.175.167.132/31,79.175.167.144/28,79.175.167.160/27,79.175.167.192/26,79.175.168.0/21,79.175.176.0/20,80.66.176.0/20,80.71.112.0/20,80.71.149.0/24,80.75.0.0/20,80.85.82.80/29,80.91.208.0/24,80.191.0.0/17,80.191.128.0/18,80.191.192.0/19,80.191.224.0/20,80.191.240.0/24,80.191.241.128/25,80.191.242.0/23,80.191.244.0/22,80.191.248.0/21,80.210.0.0/18,80.210.128.0/17,80.241.70.250/31,80.242.0.0/20,80.249.112.0/22,80.250.192.0/20,80.253.128.0/19,80.255.3.160/27,81.12.0.0/17,81.16.112.0/20,81.28.32.0/19,81.29.240.0/20,81.31.160.0/19,81.31.224.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip7' + option dest_ip '81.31.228.0/23,81.31.230.0/24,81.31.233.0/24,81.31.234.0/23,81.31.236.0/22,81.31.240.0/23,81.31.248.0/22,81.90.144.0/20,81.91.128.0/19,81.92.216.0/24,81.163.0.0/21,82.97.240.0/20,82.99.192.0/18,82.138.140.0/25,82.180.192.0/18,82.198.136.76/30,83.120.0.0/14,83.147.192.0/23,83.147.194.0/24,83.147.222.0/23,83.147.240.0/22,83.147.252.0/24,83.147.254.0/24,83.149.208.65/32,83.150.192.0/22,84.17.168.32/27,84.47.192.0/18,84.241.0.0/18,85.9.64.0/18,85.15.0.0/18,85.133.128.0/21,85.133.137.0/24,85.133.138.0/23,85.133.140.0/22,85.133.144.0/23,85.133.147.0/24,85.133.148.0/22,85.133.152.0/22,85.133.157.0/24,85.133.158.0/23,85.133.160.0/22,85.133.165.0/24,85.133.166.0/23,85.133.168.0/21,85.133.176.0/20,85.133.192.0/21,85.133.200.0/23,85.133.203.0/24,85.133.204.0/22,85.133.208.0/22,85.133.212.0/23,85.133.214.0/24,85.133.216.0/23,85.133.219.0/24,85.133.220.0/23,85.133.223.0/24,85.133.224.0/24,85.133.226.0/23,85.133.228.0/22,85.133.232.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip8' + option dest_ip '85.133.237.0/24,85.133.238.0/23,85.133.240.0/20,85.185.0.0/16,85.198.0.0/19,85.198.48.0/20,85.204.30.0/23,85.204.76.0/23,85.204.80.0/20,85.204.104.0/23,85.204.128.0/22,85.204.208.0/20,85.208.252.0/22,85.239.192.0/19,86.55.0.0/16,86.57.0.0/17,86.104.32.0/20,86.104.80.0/20,86.104.96.0/20,86.104.232.0/21,86.104.240.0/21,86.105.40.0/21,86.105.128.0/20,86.106.142.0/24,86.106.192.0/21,86.107.0.0/20,86.107.80.0/20,86.107.144.0/20,86.107.172.0/22,86.107.208.0/20,86.109.32.0/19,87.107.0.0/16,87.128.22.75/32,87.236.208.0/26,87.236.209.0/24,87.236.210.0/23,87.236.213.0/24,87.236.214.0/24,87.247.168.0/21,87.247.176.0/20,87.248.128.0/24,87.248.139.0/24,87.248.140.0/23,87.248.142.0/24,87.248.147.0/24,87.248.150.0/24,87.248.152.0/22,87.248.156.0/24,87.248.159.0/24,87.251.128.0/19,87.252.206.24/29,87.252.206.64/29,88.131.240.122/31,88.131.240.125/32,88.135.32.0/20,88.135.68.0/24,89.32.0.0/19,89.32.96.0/20,89.32.196.0/23,89.32.248.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip9' + option dest_ip '89.33.18.0/23,89.33.100.0/22,89.33.128.0/23,89.33.204.0/23,89.33.234.0/23,89.33.240.0/23,89.34.20.0/23,89.34.32.0/19,89.34.88.0/23,89.34.94.0/23,89.34.128.0/19,89.34.168.0/23,89.34.176.0/23,89.34.200.0/23,89.34.248.0/21,89.35.58.0/23,89.35.68.0/22,89.35.120.0/22,89.35.132.0/23,89.35.156.0/23,89.35.176.0/23,89.35.180.0/22,89.35.194.0/23,89.36.16.0/23,89.36.48.0/20,89.36.96.0/20,89.36.176.0/20,89.36.194.0/23,89.36.226.0/23,89.36.252.0/23,89.37.0.0/20,89.37.30.0/23,89.37.42.0/23,89.37.102.0/23,89.37.144.0/21,89.37.152.0/22,89.37.168.0/22,89.37.198.0/23,89.37.208.0/22,89.37.218.0/23,89.37.240.0/20,89.38.24.0/23,89.38.80.0/20,89.38.102.0/23,89.38.184.0/21,89.38.192.0/21,89.38.212.0/22,89.38.242.0/23,89.38.244.0/22,89.39.8.0/22,89.39.186.0/23,89.39.208.0/24,89.40.78.0/23,89.40.106.0/23,89.40.110.0/23,89.40.128.0/23,89.40.152.0/21,89.40.240.0/20,89.41.8.0/21,89.41.16.0/21' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip10' + option dest_ip '89.41.32.0/23,89.41.40.0/22,89.41.58.0/23,89.41.184.0/22,89.41.192.0/19,89.41.240.0/21,89.42.32.0/23,89.42.44.0/22,89.42.56.0/23,89.42.68.0/23,89.42.96.0/21,89.42.136.0/22,89.42.150.0/23,89.42.184.0/21,89.42.196.0/22,89.42.208.0/23,89.42.210.0/25,89.42.210.128/27,89.42.210.160/28,89.42.210.176/29,89.42.210.184/30,89.42.210.188/32,89.42.210.190/31,89.42.210.192/26,89.42.211.0/24,89.42.228.0/23,89.43.0.0/20,89.43.36.0/23,89.43.70.0/23,89.43.88.0/21,89.43.96.0/21,89.43.144.0/21,89.43.182.0/23,89.43.188.0/23,89.43.204.0/23,89.43.216.0/21,89.43.224.0/21,89.44.112.0/23,89.44.118.0/23,89.44.128.0/21,89.44.146.0/23,89.44.176.0/21,89.44.190.0/23,89.44.202.0/23,89.44.240.0/22,89.45.48.0/20,89.45.68.0/23,89.45.80.0/23,89.45.89.0/24,89.45.112.0/21,89.45.126.0/23,89.45.152.0/21,89.45.230.0/23,89.46.44.0/23,89.46.60.0/23,89.46.94.0/23,89.46.184.0/21,89.46.216.0/22,89.47.64.0/20,89.47.128.0/19' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip11' + option dest_ip '89.47.196.0/22,89.47.200.0/22,89.144.128.0/18,89.165.0.0/17,89.196.0.0/16,89.198.0.0/15,89.219.64.0/18,89.219.192.0/18,89.221.80.0/20,89.235.64.0/18,91.92.104.0/24,91.92.114.0/24,91.92.121.0/24,91.92.122.0/23,91.92.124.0/22,91.92.129.0/24,91.92.130.0/23,91.92.132.0/22,91.92.145.0/24,91.92.146.0/23,91.92.148.0/22,91.92.156.0/22,91.92.164.0/22,91.92.172.0/22,91.92.180.0/22,91.92.184.0/21,91.92.192.0/23,91.92.204.0/22,91.92.208.0/21,91.92.220.0/22,91.92.228.0/23,91.92.231.0/24,91.92.236.0/22,91.98.0.0/15,91.106.64.0/19,91.108.128.0/19,91.109.104.0/21,91.129.4.216/32,91.129.18.175/32,91.129.18.177/32,91.133.128.0/17,91.147.64.0/20,91.184.64.0/19,91.185.128.0/19,91.186.192.0/23,91.186.201.0/24,91.186.216.0/23,91.186.218.0/24,91.190.88.0/21,91.194.6.0/24,91.199.9.0/24,91.199.18.0/24,91.199.27.0/24,91.199.30.0/24,91.207.138.0/23,91.207.205.0/24,91.208.165.0/24,91.209.96.0/24,91.209.179.0/24,91.209.183.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip12' + option dest_ip '91.209.184.0/24,91.209.186.0/24,91.209.242.0/24,91.212.16.0/24,91.212.252.0/24,91.213.151.0/24,91.213.157.0/24,91.213.167.0/24,91.213.172.0/24,91.216.4.0/24,91.217.64.0/23,91.217.177.0/24,91.220.79.0/24,91.220.113.0/24,91.220.243.0/24,91.221.240.0/23,91.222.196.0/22,91.222.204.0/22,91.224.20.0/23,91.224.110.0/23,91.224.176.0/23,91.225.52.0/22,91.226.224.0/23,91.227.84.0/22,91.227.246.0/23,91.228.22.0/23,91.228.132.0/23,91.228.189.0/24,91.229.46.0/23,91.229.214.0/23,91.230.32.0/24,91.232.64.0/22,91.232.68.0/23,91.232.72.0/22,91.233.56.0/22,91.234.52.0/24,91.236.168.0/23,91.237.254.0/23,91.238.0.0/24,91.239.14.0/24,91.239.108.0/22,91.239.210.0/24,91.239.214.0/24,91.240.60.0/22,91.240.116.0/24,91.240.180.0/22,91.241.20.0/23,91.241.92.0/24,91.242.44.0/23,91.243.126.0/23,91.243.160.0/20,91.244.120.0/22,91.245.228.0/22,91.246.44.0/24,91.247.66.0/23,91.247.171.0/24,91.247.174.0/24,91.250.224.0/20,91.251.0.0/16,92.42.48.0/21' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip13' + option dest_ip '92.43.160.0/22,92.61.176.0/21,92.61.184.0/24,92.61.186.0/23,92.61.188.0/22,92.114.16.0/20,92.114.48.0/22,92.114.64.0/20,92.119.57.0/24,92.119.58.0/24,92.119.68.0/22,92.242.192.0/19,92.246.144.0/22,92.246.156.0/22,92.249.56.0/22,93.88.64.0/21,93.88.72.0/23,93.93.204.0/24,93.110.0.0/16,93.113.224.0/20,93.114.16.0/20,93.114.104.0/21,93.115.120.0/21,93.115.144.0/21,93.115.216.0/21,93.115.224.0/20,93.117.0.0/19,93.117.32.0/20,93.117.96.0/19,93.117.176.0/20,93.118.96.0/19,93.118.128.0/19,93.118.160.0/20,93.118.180.0/22,93.118.184.0/22,93.119.32.0/19,93.119.64.0/19,93.119.208.0/20,93.126.0.0/18,93.190.24.0/21,94.24.0.0/20,94.24.16.0/21,94.24.80.0/20,94.24.96.0/21,94.74.128.0/23,94.74.130.1/32,94.74.130.2/31,94.74.130.4/30,94.74.130.8/29,94.74.130.16/28,94.74.130.32/27,94.74.130.64/26,94.74.130.128/25,94.74.131.0/24,94.74.142.0/23,94.74.144.1/32,94.74.144.2/31,94.74.144.4/30,94.74.144.8/29,94.74.144.16/28' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip14' + option dest_ip '94.74.144.32/27,94.74.144.64/26,94.74.144.128/25,94.74.148.0/24,94.74.150.0/23,94.74.152.0/23,94.74.155.0/24,94.74.161.0/24,94.74.162.0/24,94.74.167.0/24,94.74.178.0/23,94.74.180.0/24,94.74.182.0/24,94.74.188.0/23,94.74.190.0/24,94.101.128.0/20,94.101.176.0/20,94.101.240.0/20,94.139.160.0/19,94.176.8.0/21,94.176.32.0/21,94.177.72.0/21,94.182.0.0/15,94.184.0.0/16,94.199.136.0/22,94.232.168.0/21,94.241.164.0/22,95.38.0.0/16,95.64.0.0/17,95.80.128.0/18,95.81.64.0/18,95.130.56.0/21,95.130.225.0/24,95.130.240.0/21,95.142.224.0/20,95.156.222.0/23,95.156.233.0/24,95.156.234.0/23,95.156.236.0/23,95.156.248.0/23,95.156.252.0/22,95.162.0.0/16,95.215.59.0/24,95.215.160.0/22,95.215.173.0/24,103.130.144.0/24,103.130.146.0/24,103.215.220.0/22,103.216.60.0/22,103.231.136.0/22,104.28.11.28/31,104.28.11.30/32,104.28.37.237/32,104.28.37.238/31,104.28.37.240/31,104.28.51.83/32,104.28.51.84/30,104.28.80.85/32,104.28.80.86/31,104.28.80.88/31' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip15' + option dest_ip '104.28.106.57/32,104.28.106.58/31,104.28.106.60/31,104.28.131.38/31,104.28.131.40/32,104.28.194.219/32,104.28.194.220/30,104.28.194.224/31,104.28.214.161/32,104.28.214.162/31,104.28.214.164/30,104.28.214.168/32,104.28.226.219/32,104.28.226.220/30,104.28.226.224/31,104.28.246.161/32,104.28.246.162/31,104.28.246.164/30,104.28.246.168/32,109.70.237.0/24,109.72.192.0/20,109.74.232.0/21,109.94.164.0/22,109.95.60.0/22,109.95.64.0/21,109.107.131.0/24,109.108.160.0/19,109.109.32.0/19,109.110.160.0/19,109.122.193.0/24,109.122.199.0/24,109.122.209.0/24,109.122.217.0/24,109.122.224.0/20,109.122.240.0/21,109.122.248.0/22,109.122.252.0/23,109.125.128.0/18,109.162.128.0/17,109.201.0.0/19,109.203.128.0/19,109.203.176.0/22,109.206.252.0/22,109.225.128.0/18,109.230.64.0/19,109.230.192.0/23,109.230.200.0/24,109.230.204.0/22,109.230.221.0/24,109.230.223.0/24,109.230.242.0/24,109.230.246.0/23,109.230.251.0/24,109.232.0.0/21,109.238.176.0/20,109.239.0.0/20,113.203.0.0/17,128.65.160.0/19,130.185.72.0/21,130.193.77.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip16' + option dest_ip '130.244.41.211/32,130.244.41.213/32,130.244.71.67/32,130.244.71.72/31,130.244.71.74/32,130.244.71.80/31,130.244.85.151/32,130.255.192.0/18,134.255.196.0/23,134.255.200.0/21,134.255.245.0/24,134.255.246.0/24,134.255.248.0/23,140.248.34.128/30,140.248.36.146/31,140.248.36.148/31,141.11.42.0/24,146.19.104.0/24,146.19.217.0/24,146.66.128.0/21,146.75.132.146/31,146.75.132.148/31,146.75.169.128/30,146.75.180.36/30,151.232.0.0/14,151.238.0.0/15,151.240.0.0/13,152.89.12.0/22,152.89.44.0/22,157.119.188.0/22,158.58.0.0/17,158.58.184.0/21,158.255.74.0/24,158.255.78.0/24,159.20.96.0/20,164.138.16.0/21,164.138.128.0/18,164.215.56.0/21,164.215.128.0/17,171.22.24.0/22,172.80.128.0/17,172.225.187.16/28,172.225.191.160/27,172.225.196.144/28,172.225.196.184/29,172.225.228.128/27,172.225.229.96/28,176.12.64.0/20,176.56.144.0/20,176.62.144.0/21,176.65.160.0/19,176.65.192.0/18,176.67.64.0/20,176.97.218.0/24,176.97.220.0/24,176.101.32.0/20,176.101.48.0/21,176.102.224.0/19,176.105.245.0/24,176.116.7.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip17' + option dest_ip '176.122.210.0/23,176.123.64.0/18,176.124.64.0/22,176.126.120.0/24,176.221.64.0/21,176.223.80.0/21,178.21.40.0/21,178.21.160.0/21,178.22.72.0/21,178.22.120.0/21,178.131.0.0/16,178.157.0.0/23,178.169.0.0/19,178.173.128.0/18,178.173.192.0/19,178.211.145.0/24,178.215.0.0/18,178.216.248.0/21,178.219.224.0/20,178.236.32.0/22,178.236.96.0/20,178.238.192.0/20,178.239.144.0/20,178.248.40.0/21,178.251.208.0/21,178.252.128.0/18,178.253.16.0/24,178.253.31.0/24,178.253.32.0/24,178.253.38.0/23,185.1.77.0/24,185.2.12.0/22,185.3.124.0/22,185.3.200.0/22,185.3.212.0/22,185.4.0.0/22,185.4.16.0/22,185.4.28.0/22,185.4.104.0/22,185.4.220.0/22,185.5.156.0/22,185.7.212.0/24,185.8.172.0/22,185.10.71.0/24,185.10.72.0/22,185.11.68.0/22,185.11.88.0/22,185.11.176.0/22,185.12.60.0/22,185.12.100.0/23,185.12.102.0/24,185.13.228.0/22,185.14.80.0/22,185.14.160.0/22,185.16.232.0/22,185.18.156.0/22,185.18.212.0/22,185.19.201.0/24,185.20.160.0/22,185.21.68.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip18' + option dest_ip '185.21.76.0/22,185.22.28.0/22,185.23.128.0/22,185.24.136.0/22,185.24.148.0/22,185.24.228.0/22,185.24.252.0/22,185.25.172.0/22,185.26.32.0/22,185.26.232.0/22,185.29.220.0/22,185.30.4.0/22,185.30.76.0/22,185.31.124.0/22,185.32.128.0/22,185.33.25.0/24,185.34.160.0/22,185.36.228.0/24,185.36.231.0/24,185.37.52.0/22,185.39.180.0/22,185.40.16.0/24,185.40.240.0/22,185.41.0.0/22,185.41.220.0/22,185.42.24.0/24,185.42.212.0/22,185.42.224.0/22,185.44.36.0/22,185.44.100.0/22,185.44.112.0/22,185.45.188.0/22,185.46.0.0/22,185.46.108.0/22,185.46.216.0/22,185.47.48.0/22,185.49.84.0/22,185.49.96.0/22,185.49.104.0/22,185.49.231.0/24,185.50.36.0/22,185.51.40.0/22,185.51.200.0/22,185.53.140.0/22,185.55.224.0/22,185.56.92.0/22,185.56.96.0/22,185.57.132.0/22,185.57.164.0/22,185.57.200.0/22,185.58.240.0/22,185.59.112.0/23,185.60.32.0/22,185.60.136.0/22,185.62.232.0/22,185.63.113.0/24,185.63.114.0/24,185.63.236.0/22,185.64.176.0/22,185.66.224.0/21' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip19' + option dest_ip '185.67.12.0/22,185.67.100.0/22,185.67.156.0/22,185.67.212.0/22,185.69.108.0/22,185.70.60.0/22,185.71.152.0/22,185.71.192.0/22,185.72.24.0/22,185.72.80.0/22,185.73.0.0/22,185.73.76.0/22,185.73.112.0/24,185.73.114.0/24,185.73.226.0/24,185.74.164.0/22,185.74.221.0/24,185.75.196.0/22,185.75.204.0/22,185.76.248.0/22,185.78.20.0/22,185.79.60.0/22,185.79.96.0/22,185.79.156.0/22,185.80.100.0/22,185.80.198.0/23,185.81.40.0/22,185.81.96.0/23,185.81.99.0/24,185.82.28.0/22,185.82.64.0/22,185.82.136.0/22,185.82.164.0/22,185.82.180.0/22,185.83.28.0/22,185.83.76.0/22,185.83.80.0/22,185.83.88.0/22,185.83.112.0/24,185.83.114.0/23,185.83.180.0/22,185.83.184.0/22,185.83.196.0/22,185.83.208.0/22,185.84.220.0/22,185.85.68.0/22,185.85.136.0/22,185.86.36.0/22,185.86.180.0/22,185.88.48.0/22,185.88.152.0/22,185.88.176.0/22,185.88.252.0/22,185.89.22.0/24,185.89.112.0/22,185.92.4.0/22,185.92.8.0/22,185.92.40.0/22,185.94.96.0/23,185.94.98.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip20' + option dest_ip '185.94.99.0/25,185.94.99.136/29,185.94.99.144/28,185.94.99.160/27,185.94.99.192/26,185.95.60.0/22,185.95.152.0/22,185.95.180.0/22,185.96.240.0/22,185.97.116.0/22,185.98.112.0/22,185.99.212.0/22,185.100.44.0/22,185.101.228.0/22,185.103.84.0/22,185.103.128.0/22,185.103.244.0/22,185.103.248.0/22,185.104.192.0/24,185.104.228.0/22,185.104.232.0/22,185.104.240.0/22,185.105.100.0/22,185.105.120.0/22,185.105.184.0/22,185.105.236.0/22,185.106.136.0/22,185.106.144.0/22,185.106.200.0/22,185.106.228.0/22,185.107.28.0/22,185.107.32.0/23,185.107.244.0/22,185.107.248.0/22,185.108.96.0/22,185.108.164.0/22,185.109.60.0/22,185.109.72.0/22,185.109.80.0/22,185.109.128.0/22,185.109.244.0/22,185.109.248.0/22,185.110.28.0/22,185.110.216.0/22,185.110.228.0/22,185.110.236.0/22,185.110.244.0/22,185.110.252.0/22,185.111.8.0/21,185.111.64.0/22,185.111.80.0/22,185.111.136.0/22,185.112.32.0/21,185.112.130.0/23,185.112.148.0/22,185.112.168.0/22,185.113.56.0/22,185.113.112.0/22,185.114.188.0/22,185.115.76.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip21' + option dest_ip '185.115.148.0/22,185.115.168.0/22,185.116.20.0/22,185.116.24.0/22,185.116.44.0/22,185.116.160.0/22,185.117.48.0/22,185.117.136.0/22,185.117.204.0/23,185.117.206.0/24,185.118.12.0/22,185.118.136.0/22,185.118.152.0/22,185.119.4.0/22,185.119.164.0/22,185.119.240.0/22,185.120.120.0/22,185.120.136.0/22,185.120.160.0/22,185.120.168.0/22,185.120.192.0/21,185.120.200.0/22,185.120.208.0/20,185.120.224.0/20,185.120.240.0/21,185.120.248.0/22,185.121.56.0/22,185.121.128.0/22,185.122.80.0/22,185.123.68.0/22,185.123.208.0/22,185.124.112.0/22,185.124.156.0/22,185.124.172.0/22,185.125.20.0/22,185.125.244.0/22,185.125.248.0/21,185.126.0.0/20,185.126.16.0/22,185.126.40.0/22,185.126.132.0/23,185.126.200.0/22,185.127.232.0/22,185.128.40.0/24,185.128.48.0/22,185.128.80.0/22,185.128.136.0/22,185.128.152.0/22,185.128.164.0/22,185.129.80.0/22,185.129.168.0/22,185.129.184.0/21,185.129.196.0/22,185.129.200.0/22,185.129.212.0/22,185.129.216.0/22,185.129.228.0/22,185.129.232.0/21,185.129.240.0/22,185.130.76.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip22' + option dest_ip '185.131.28.0/22,185.131.84.0/22,185.131.88.0/21,185.131.100.0/22,185.131.108.0/22,185.131.112.0/21,185.131.124.0/22,185.131.128.0/22,185.131.136.0/21,185.131.148.0/22,185.131.152.0/21,185.131.164.0/22,185.131.168.0/22,185.132.80.0/22,185.132.212.0/22,185.133.152.0/22,185.133.164.0/22,185.133.244.0/23,185.133.246.0/24,185.134.96.0/22,185.135.28.0/22,185.135.228.0/22,185.136.100.0/22,185.136.172.0/22,185.136.180.0/22,185.136.192.0/22,185.136.220.0/22,185.137.24.0/22,185.137.60.0/22,185.137.108.0/23,185.137.110.0/24,185.139.64.0/22,185.140.4.0/22,185.140.56.0/22,185.140.232.0/22,185.140.240.0/22,185.141.36.0/22,185.141.48.0/22,185.141.104.0/22,185.141.132.0/22,185.141.168.0/22,185.141.212.0/22,185.141.244.0/22,185.142.92.0/22,185.142.124.0/22,185.142.156.0/22,185.142.232.0/22,185.143.72.0/22,185.143.204.0/22,185.143.232.0/22,185.144.64.0/22,185.145.8.0/22,185.145.184.0/22,185.147.40.0/22,185.147.84.0/22,185.147.160.0/22,185.147.176.0/22,185.149.192.0/24,185.150.108.0/22,185.153.184.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip23' + option dest_ip '185.153.208.0/22,185.154.184.0/22,185.155.8.0/21,185.155.72.0/22,185.155.236.0/22,185.157.8.0/22,185.158.172.0/22,185.159.152.0/22,185.159.176.0/22,185.160.104.0/22,185.160.176.0/22,185.161.36.0/22,185.161.112.0/22,185.162.40.0/22,185.162.216.0/22,185.163.88.0/22,185.164.73.0/24,185.164.74.0/23,185.164.252.0/22,185.165.28.0/22,185.165.40.0/22,185.165.100.0/22,185.165.116.0/22,185.165.204.0/22,185.166.60.0/22,185.166.104.0/22,185.166.112.0/22,185.167.72.0/22,185.167.100.0/22,185.167.124.0/22,185.168.28.0/22,185.169.6.0/24,185.169.20.0/22,185.169.36.0/22,185.170.8.0/24,185.170.236.0/22,185.171.52.0/22,185.172.0.0/22,185.172.68.0/22,185.172.212.0/22,185.173.104.0/22,185.173.129.0/24,185.173.130.0/24,185.173.168.0/22,185.174.132.0/24,185.174.134.0/24,185.174.200.0/22,185.174.248.0/22,185.175.76.0/22,185.175.240.0/22,185.176.32.0/22,185.176.56.0/22,185.177.156.0/22,185.177.232.0/22,185.178.104.0/22,185.178.220.0/22,185.179.90.0/24,185.179.168.0/22,185.179.220.0/22,185.180.52.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip24' + option dest_ip '185.180.128.0/22,185.181.180.0/22,185.182.220.0/22,185.182.248.0/22,185.184.32.0/22,185.184.48.0/22,185.185.16.0/22,185.185.240.0/22,185.186.48.0/22,185.186.240.0/22,185.187.48.0/22,185.187.84.0/22,185.188.104.0/22,185.188.112.0/22,185.189.120.0/22,185.190.20.0/22,185.190.25.128/25,185.190.39.0/24,185.191.76.0/22,185.192.8.0/22,185.192.112.0/22,185.193.47.0/24,185.193.208.0/22,185.194.76.0/22,185.194.244.0/22,185.195.72.0/22,185.196.148.0/22,185.197.68.0/22,185.197.112.0/22,185.198.160.0/22,185.199.64.0/22,185.199.208.0/22,185.201.48.0/22,185.202.56.0/22,185.203.160.0/22,185.204.180.0/22,185.204.197.0/24,185.205.203.0/24,185.205.220.0/22,185.206.92.0/22,185.206.229.0/24,185.206.231.0/24,185.206.236.0/22,185.207.52.0/22,185.207.72.0/22,185.208.76.0/22,185.208.148.0/22,185.208.174.0/23,185.208.180.0/22,185.209.188.0/22,185.210.200.0/22,185.211.56.0/22,185.211.84.0/22,185.211.88.0/22,185.212.48.0/22,185.212.192.0/22,185.213.8.0/22,185.213.164.0/22,185.213.195.0/24,185.214.36.0/22' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip25' + option dest_ip '185.215.124.0/22,185.215.152.0/22,185.215.228.0/22,185.218.139.0/24,185.219.112.0/22,185.220.224.0/22,185.221.112.0/22,185.221.192.0/22,185.221.239.0/24,185.222.120.0/22,185.222.180.0/22,185.222.184.0/22,185.222.210.0/24,185.223.160.0/24,185.224.176.0/22,185.225.80.0/22,185.225.180.0/22,185.225.240.0/22,185.226.97.0/24,185.226.116.0/22,185.226.132.0/22,185.226.140.0/22,185.227.64.0/22,185.227.116.0/22,185.228.236.0/22,185.229.0.0/22,185.229.28.0/22,185.229.204.0/24,185.231.65.0/24,185.231.112.0/24,185.231.114.0/23,185.231.180.0/22,185.232.152.0/22,185.232.176.0/22,185.233.12.0/22,185.233.84.0/22,185.233.131.0/24,185.234.14.0/24,185.234.192.0/22,185.235.136.0/24,185.235.138.0/23,185.235.245.0/24,185.236.36.0/22,185.236.45.0/24,185.236.88.0/22,185.237.8.0/22,185.237.84.0/22,185.238.20.0/22,185.238.44.0/22,185.238.92.0/22,185.238.140.0/24,185.238.143.0/24,185.239.0.0/22,185.239.104.0/22,185.240.56.0/22,185.240.148.0/22,185.243.48.0/22,185.244.52.0/22,185.246.4.0/22,185.248.32.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip26' + option dest_ip '185.251.76.0/22,185.252.28.0/22,185.252.200.0/24,185.254.165.0/24,185.254.166.0/24,185.255.68.0/22,185.255.88.0/22,185.255.208.0/22,188.0.240.0/20,188.75.64.0/18,188.94.188.0/24,188.95.89.0/24,188.118.64.0/18,188.121.96.0/19,188.121.128.0/19,188.122.96.0/19,188.136.128.0/18,188.136.192.0/19,188.158.0.0/15,188.191.176.0/21,188.208.56.0/21,188.208.64.0/19,188.208.144.0/20,188.208.160.0/19,188.208.200.0/22,188.208.208.0/21,188.208.224.0/19,188.209.0.0/19,188.209.32.0/20,188.209.64.0/20,188.209.116.0/22,188.209.152.0/23,188.209.192.0/20,188.210.64.0/20,188.210.80.0/21,188.210.96.0/19,188.210.128.0/18,188.210.192.0/20,188.210.232.0/22,188.211.0.0/20,188.211.32.0/19,188.211.64.0/18,188.211.128.0/19,188.211.176.0/20,188.211.192.0/19,188.212.22.0/24,188.212.48.0/20,188.212.64.0/19,188.212.96.0/22,188.212.144.0/21,188.212.160.0/19,188.212.200.0/21,188.212.208.0/20,188.212.224.0/20,188.212.240.0/21,188.213.64.0/20,188.213.96.0/19,188.213.144.0/20,188.213.176.0/20,188.213.192.0/21' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip27' + option dest_ip '188.213.208.0/22,188.214.4.0/22,188.214.84.0/22,188.214.96.0/22,188.214.120.0/23,188.214.160.0/19,188.214.216.0/21,188.215.24.0/22,188.215.88.0/22,188.215.128.0/20,188.215.160.0/19,188.215.192.0/19,188.215.240.0/22,188.229.0.0/17,188.240.196.0/24,188.240.212.0/24,188.240.248.0/21,188.253.2.0/23,188.253.32.0/21,188.253.40.0/24,188.253.42.0/23,188.253.44.0/22,188.253.48.0/20,188.253.64.0/19,192.15.0.0/16,192.167.140.66/32,193.0.156.0/24,193.3.31.0/24,193.3.182.0/24,193.3.231.0/24,193.3.255.0/24,193.8.139.0/24,193.19.144.0/23,193.22.20.0/24,193.28.181.0/24,193.29.24.0/24,193.29.26.0/24,193.32.80.0/23,193.34.244.0/22,193.35.62.0/24,193.38.247.0/24,193.39.9.0/24,193.56.59.0/24,193.56.61.0/24,193.56.107.0/24,193.56.118.0/24,193.104.22.0/24,193.104.29.0/24,193.104.212.0/24,193.105.2.0/24,193.105.6.0/24,193.105.234.0/24,193.106.190.0/24,193.107.48.0/24,193.108.242.0/23,193.111.234.0/23,193.134.100.0/23,193.141.64.0/23,193.141.126.0/23,193.142.30.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip28' + option dest_ip '193.142.232.0/23,193.142.254.0/23,193.148.64.0/22,193.150.66.0/24,193.151.128.0/19,193.162.129.0/24,193.176.240.0/22,193.178.200.0/22,193.186.4.40/30,193.186.32.0/24,193.189.122.0/23,193.200.102.0/23,193.200.148.0/24,193.201.72.0/23,193.201.192.0/22,193.222.51.0/24,193.228.90.0/23,193.228.136.0/24,193.240.187.76/30,193.240.207.0/28,193.242.194.0/23,193.242.208.0/23,193.246.160.0/23,193.246.164.0/23,193.246.174.0/23,193.246.200.0/23,194.5.40.0/22,194.5.175.0/24,194.5.176.0/22,194.5.188.0/24,194.5.195.0/24,194.5.205.0/24,194.9.56.0/23,194.9.80.0/23,194.26.2.0/23,194.26.20.0/23,194.26.117.0/24,194.26.195.0/24,194.31.108.0/24,194.31.194.0/24,194.33.104.0/22,194.33.122.0/23,194.33.124.0/22,194.34.163.0/24,194.36.0.0/24,194.36.174.0/24,194.39.36.0/22,194.41.48.0/22,194.50.204.0/24,194.50.209.0/24,194.50.216.0/24,194.50.218.0/24,194.53.118.0/23,194.53.122.0/23,194.56.148.0/24,194.59.170.0/23,194.59.214.0/23,194.60.208.0/22,194.60.228.0/22,194.62.17.0/24' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip29' + option dest_ip '194.62.43.0/24,194.87.23.0/24,194.143.140.0/23,194.146.148.0/22,194.146.239.0/24,194.147.164.0/22,194.147.212.0/24,194.147.222.0/24,194.150.68.0/22,194.156.140.0/22,194.180.224.0/24,194.225.0.0/16,195.2.234.0/24,195.8.102.0/24,195.8.110.0/24,195.8.112.0/24,195.8.114.0/24,195.20.136.0/24,195.27.14.0/29,195.28.10.0/23,195.28.168.0/23,195.88.188.0/23,195.96.128.0/24,195.96.153.0/24,195.110.38.0/23,195.114.4.0/23,195.114.8.0/23,195.146.32.0/19,195.181.0.0/17,195.182.38.0/24,195.190.130.0/24,195.190.139.0/24,195.190.144.0/24,195.191.22.0/23,195.191.44.0/23,195.191.74.0/23,195.211.44.0/22,195.217.44.172/30,195.219.71.0/24,195.225.232.0/24,195.226.223.0/24,195.230.97.0/24,195.230.105.0/24,195.230.107.0/24,195.230.124.0/24,195.234.191.0/24,195.238.231.0/24,195.238.240.0/24,195.238.247.0/24,195.245.70.0/23,196.3.91.0/24,204.18.0.0/16,204.245.22.24/30,204.245.22.29/32,204.245.22.30/31,209.28.123.0/26,210.5.196.64/26,210.5.197.64/26,210.5.198.32/29,210.5.198.64/28' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip30' + option dest_ip '210.5.198.96/27,210.5.198.128/26,210.5.198.192/27,210.5.204.0/25,210.5.205.0/26,210.5.208.0/26,210.5.208.128/25,210.5.209.0/25,210.5.214.192/26,210.5.218.64/26,210.5.218.128/25,210.5.232.0/25,210.5.233.0/25,210.5.233.128/26,212.1.192.0/21,212.16.64.0/19,212.18.108.0/24,212.23.201.0/24,212.23.214.0/24,212.23.216.0/24,212.33.192.0/19,212.46.45.0/24,212.80.0.0/19,212.86.64.0/19,212.120.146.128/29,212.120.192.0/19,212.151.56.189/32,212.151.60.189/32,212.151.182.155/32,212.151.182.156/31,212.151.186.154/31,212.151.186.156/32,213.108.240.0/23,213.108.242.0/24,213.109.199.0/24,213.109.240.0/20,213.168.224.216/30,213.168.240.96/29,213.176.0.0/20,213.176.16.0/22,213.176.28.0/22,213.176.64.0/18,213.195.0.0/20,213.195.16.0/21,213.195.32.0/19,213.207.192.0/18,213.217.32.0/19,213.232.124.0/22,213.233.160.0/19,217.11.16.0/20,217.24.144.0/20,217.25.48.0/20,217.60.0.0/16,217.66.192.0/19,217.77.112.0/20,217.114.40.0/24,217.144.104.0/22,217.146.208.0/20,217.161.16.0/24,217.170.240.0/20' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'ir_ip31' + option dest_ip '217.171.145.0/24,217.171.148.0/22,217.171.191.220/30,217.172.98.0/23,217.172.102.0/23,217.172.104.0/21,217.172.112.0/22,217.172.116.0/23,217.172.118.0/24,217.172.120.0/21,217.174.16.0/20,217.198.190.0/24,217.218.0.0/16,217.219.0.0/17,217.219.128.0/18,217.219.192.0/21,217.219.200.0/22,217.219.204.0/24,217.219.205.64/26,217.219.205.128/25,217.219.206.0/23,217.219.208.0/20' + option use_policy 'wan_only' + option family 'ipv4' + +config rule 'vpn' + option src_ip '192.168.151.100/24,192.168.3.100/24' + option use_policy 'wwan_only' + option family 'ipv4' + +config rule 'default_rule_v4' + option dest_ip '0.0.0.0/0' + option use_policy 'wwan_only' + option family 'ipv4' + +config rule 'default_rule_v6' + option dest_ip '::/0' + option use_policy 'wwan_only' + option family 'ipv6' \ No newline at end of file diff --git a/src/files/etc/config/nodogsplash b/src/files/etc/config/nodogsplash new file mode 100644 index 0000000..6406e0b --- /dev/null +++ b/src/files/etc/config/nodogsplash @@ -0,0 +1,27 @@ +config nodogsplash + option enabled 1 + option fwhook_enabled '1' + option gatewayinterface 'brlan-2' + option gatewayname 'Free Internet' + option maxclients '100' + option preauthidletimeout '400' + option authidletimeout '120' + option sessiontimeout '0' + option checkinterval '1200' + option binauth '/usr/bin/binauth.sh' + + # Block access to router's SSH and management interface after authentication + list authenticated_users 'block tcp port 22' + list authenticated_users 'block tcp port 80' + + # Allow all other traffic for authenticated users + list authenticated_users 'allow all' + + # Define fw_mark_authenticated for compatibility with PBR + option fw_mark_authenticated '30000' + + # Define fw_mark_trusted (if you have trusted MACs) + option fw_mark_trusted '20000' + + # Define fw_mark_blocked for unauthenticated users + option fw_mark_blocked '10000' diff --git a/src/files/etc/config/pbr b/src/files/etc/config/pbr new file mode 100644 index 0000000..1016120 --- /dev/null +++ b/src/files/etc/config/pbr @@ -0,0 +1,63 @@ +config pbr 'config' + option enabled '1' + option verbosity '2' + option strict_enforcement '1' + option resolver_set 'dnsmasq.nftset' + list resolver_instance '*' + option ipv6_enabled '0' + list ignored_interface 'vpnserver' + option boot_timeout '30' + option rule_create_option 'add' + option procd_boot_delay '0' + option procd_reload_delay '1' + option webui_show_ignore_target '0' + option nft_rule_counter '0' + option nft_set_auto_merge '1' + option nft_set_counter '0' + option nft_set_flags_interval '1' + option nft_set_flags_timeout '0' + option nft_set_gc_interval '' + option nft_set_policy 'performance' + option nft_set_timeout '' + list webui_supported_protocol 'all' + list webui_supported_protocol 'tcp' + list webui_supported_protocol 'udp' + list webui_supported_protocol 'tcp udp' + list webui_supported_protocol 'icmp' + list supported_interface "wan wwan wg0" + +config policy + option name "IrIp to wan" + option dest_addr "2.144.0.0/14 2.176.0.0/12 5.1.43.0/24 5.22.0.0/17 5.22.192.0/21 5.22.200.0/22 5.23.112.0/21 5.42.223.0/24 5.52.0.0/16 5.53.32.0/19 5.56.128.0/22 5.56.132.0/24 5.56.134.0/23 5.57.32.0/21 5.61.24.0/23 5.61.26.0/24 5.61.28.0/22 5.62.160.0/19 5.62.192.0/18 5.63.8.0/21 5.72.0.0/15 5.74.0.0/16 5.75.0.0/17 5.104.208.0/21 5.106.0.0/16 5.112.0.0/12 5.134.128.0/18 5.134.192.0/21 5.135.116.200/30 5.144.128.0/21 5.145.112.0/22 5.145.116.0/24 5.159.48.0/21 5.160.0.0/16 5.182.44.0/22 5.190.0.0/16 5.198.160.0/19 5.200.64.0/18 5.200.128.0/17 5.201.128.0/17 5.202.0.0/16 5.208.0.0/12 5.232.0.0/14 5.236.0.0/17 5.236.128.0/20 5.236.144.0/21 5.236.156.0/22 5.236.160.0/19 5.236.192.0/18 5.237.0.0/16 5.238.0.0/15 5.250.0.0/17 5.252.216.0/22 5.253.24.0/22 5.253.96.0/22 5.253.225.0/24 8.27.67.32/32 8.27.67.41/32 31.2.128.0/17 31.7.64.0/21 31.7.72.0/22 31.7.76.0/23 31.7.88.0/22 31.7.96.0/19 31.7.128.0/20 31.14.80.0/20 31.14.112.0/20 31.14.144.0/20 31.24.200.0/21 31.24.232.0/21 31.25.90.0/23 31.25.92.0/22 31.25.104.0/21 31.25.128.0/21 31.25.232.0/23 31.40.0.0/22 31.40.4.0/24 31.41.35.0/24 31.47.32.0/19 31.56.0.0/14 31.130.176.0/20 31.170.48.0/22 31.170.52.0/23 31.170.54.0/24 31.170.56.0/21 31.171.216.0/21 31.184.128.0/18 31.193.112.0/21 31.193.186.0/24 31.214.132.0/23 31.214.146.0/23 31.214.154.0/24 31.214.168.0/21 31.214.200.0/23 31.214.228.0/22 31.214.248.0/21 31.216.62.0/24 31.217.208.0/21 37.9.248.0/21 37.10.64.0/22 37.10.109.0/24 37.10.117.0/24 37.19.80.0/20 37.32.0.0/19 37.32.32.0/20 37.32.112.0/20 37.44.56.0/21 37.63.128.0/17 37.75.240.0/21 37.98.0.0/17 37.114.192.0/18 37.129.0.0/16 37.130.200.0/21 37.137.0.0/16 37.143.144.0/21 37.148.0.0/17 37.148.248.0/22 37.152.160.0/19 37.153.128.0/22 37.153.176.0/20 37.156.0.0/22 37.156.8.0/21 37.156.16.0/20 37.156.48.0/20 37.156.100.0/22 37.156.112.0/20 37.156.128.0/20 37.156.144.0/22 37.156.152.0/21 37.156.160.0/21 37.156.176.0/22 37.156.212.0/22 37.156.232.0/21 37.156.240.0/22 37.156.248.0/22 37.191.64.0/19 37.202.128.0/17 37.221.0.0/18 37.228.131.0/24 37.228.133.0/24 37.228.135.0/24 37.228.136.0/22 37.235.16.0/20 37.254.0.0/16 37.255.0.0/17 37.255.128.0/26 37.255.128.64/27 37.255.128.96/28 37.255.128.128/25 37.255.129.0/24 37.255.130.0/23 37.255.132.0/22 37.255.136.0/21 37.255.144.0/20 37.255.160.0/19 37.255.192.0/18 45.8.160.0/22 45.9.144.0/22 45.9.252.0/22 45.15.200.0/22 45.15.248.0/22 45.81.16.0/22 45.82.136.0/22 45.84.156.0/22 45.84.248.0/22 45.86.4.0/22 45.86.87.0/24 45.86.196.0/22 45.87.4.0/22 45.89.136.0/22 45.89.200.0/22 45.89.236.0/22 45.90.72.0/22 45.91.152.0/22 45.92.92.0/22 45.93.168.0/22 45.94.212.0/22 45.94.252.0/22 45.128.140.0/22 45.129.36.0/22 45.129.116.0/22 45.132.32.0/24 45.132.168.0/21 45.135.240.0/22 45.138.132.0/22 45.139.9.0/24 45.139.10.0/23 45.139.100.0/22 45.140.28.0/22 45.140.224.0/21 45.142.188.0/22 45.144.16.0/22 45.144.124.0/22 45.147.76.0/22 45.148.248.0/22 45.149.76.0/22 45.150.88.0/22 45.150.150.0/24 45.155.192.0/22 45.156.180.0/22 45.156.184.0/22 45.156.192.0/21 45.156.200.0/22 45.157.244.0/22 45.158.120.0/22 45.159.112.0/22 45.159.148.0/22 45.159.196.0/22 46.18.248.0/21 46.21.80.0/20 46.28.72.0/21 46.32.0.0/19 46.34.96.0/19 46.34.160.0/19 46.36.96.0/20 46.38.128.0/23 46.38.130.0/24 46.38.131.0/25 46.38.131.128/26 46.38.132.0/22 46.38.136.0/21 46.38.144.0/20 46.41.192.0/18 46.51.0.0/17 46.62.128.0/17 46.100.0.0/16 46.102.120.0/21 46.102.128.0/20 46.102.184.0/22 46.143.0.0/17 46.143.204.0/22 46.143.208.0/21 46.143.244.0/22 46.143.248.0/22 46.148.32.0/20 46.164.64.0/18 46.167.128.0/19 46.182.32.0/21 46.209.0.0/16 46.224.0.0/15 46.235.76.0/23 46.245.0.0/17 46.248.32.0/19 46.249.96.0/24 46.249.120.0/21 46.251.224.0/25 46.251.224.128/28 46.251.224.144/29 46.251.226.0/24 46.251.237.0/24 46.255.216.0/21 62.3.14.0/24 62.3.41.0/24 62.3.42.0/24 62.32.49.128/26 62.32.49.192/27 62.32.49.224/29 62.32.49.240/28 62.32.50.0/24 62.32.53.64/26 62.32.53.168/29 62.32.53.224/28 62.32.61.96/27 62.32.61.224/27 62.32.63.128/26 62.60.128.0/22 62.60.136.0/21 62.60.144.0/22 62.60.152.0/21 62.60.160.0/22 62.60.196.0/22 62.60.208.0/20 62.102.128.0/20 62.133.46.0/24 62.193.0.0/19 62.204.61.0/24 62.220.96.0/19 63.243.185.0/24 64.214.116.16/32 65.21.221.144/28 66.79.96.0/19 67.16.178.147/32 67.16.178.148/31 67.16.178.150/32 69.194.64.0/18 72.14.201.40/30 77.36.128.0/17 77.42.0.0/17 77.77.64.0/18 77.81.32.0/20 77.81.76.0/24 77.81.78.0/24 77.81.82.0/23 77.81.128.0/21 77.81.144.0/20 77.81.192.0/19 77.90.139.180/30 77.95.220.0/24 77.104.64.0/18 77.237.64.0/19 77.237.160.0/19 77.238.104.0/21 77.238.112.0/20 77.245.224.0/20 78.31.232.0/22 78.38.0.0/15 78.109.192.0/20 78.110.112.0/20 78.111.0.0/20 78.154.32.0/19 78.157.32.0/19 78.158.160.0/19 79.127.0.0/17 79.132.192.0/23 79.132.200.0/21 79.132.208.0/20 79.143.84.0/23 79.143.86.0/24 79.174.160.0/21 79.175.128.0/19 79.175.160.0/22 79.175.164.0/23 79.175.166.0/24 79.175.167.0/25 79.175.167.128/30 79.175.167.132/31 79.175.167.144/28 79.175.167.160/27 79.175.167.192/26 79.175.168.0/21 79.175.176.0/20 80.66.176.0/20 80.71.112.0/20 80.71.149.0/24 80.75.0.0/20 80.85.82.80/29 80.91.208.0/24 80.191.0.0/17 80.191.128.0/18 80.191.192.0/19 80.191.224.0/20 80.191.240.0/24 80.191.241.128/25 80.191.242.0/23 80.191.244.0/22 80.191.248.0/21 80.210.0.0/18 80.210.128.0/17 80.241.70.250/31 80.242.0.0/20 80.249.112.0/22 80.250.192.0/20 80.253.128.0/19 80.255.3.160/27 81.12.0.0/17 81.16.112.0/20 81.28.32.0/19 81.29.240.0/20 81.31.160.0/19 81.31.224.0/22 81.31.228.0/23 81.31.230.0/24 81.31.233.0/24 81.31.234.0/23 81.31.236.0/22 81.31.240.0/23 81.31.248.0/22 81.90.144.0/20 81.91.128.0/19 81.92.216.0/24 81.163.0.0/21 82.97.240.0/20 82.99.192.0/18 82.138.140.0/25 82.180.192.0/18 82.198.136.76/30 83.120.0.0/14 83.147.192.0/23 83.147.194.0/24 83.147.222.0/23 83.147.240.0/22 83.147.252.0/24 83.147.254.0/24 83.149.208.65/32 83.150.192.0/22 84.17.168.32/27 84.47.192.0/18 84.241.0.0/18 85.9.64.0/18 85.15.0.0/18 85.133.128.0/21 85.133.137.0/24 85.133.138.0/23 85.133.140.0/22 85.133.144.0/23 85.133.147.0/24 85.133.148.0/22 85.133.152.0/22 85.133.157.0/24 85.133.158.0/23 85.133.160.0/22 85.133.165.0/24 85.133.166.0/23 85.133.168.0/21 85.133.176.0/20 85.133.192.0/21 85.133.200.0/23 85.133.203.0/24 85.133.204.0/22 85.133.208.0/22 85.133.212.0/23 85.133.214.0/24 85.133.216.0/23 85.133.219.0/24 85.133.220.0/23 85.133.223.0/24 85.133.224.0/24 85.133.226.0/23 85.133.228.0/22 85.133.232.0/22 85.133.237.0/24 85.133.238.0/23 85.133.240.0/20 85.185.0.0/16 85.198.0.0/19 85.198.48.0/20 85.204.30.0/23 85.204.76.0/23 85.204.80.0/20 85.204.104.0/23 85.204.128.0/22 85.204.208.0/20 85.208.252.0/22 85.239.192.0/19 86.55.0.0/16 86.57.0.0/17 86.104.32.0/20 86.104.80.0/20 86.104.96.0/20 86.104.232.0/21 86.104.240.0/21 86.105.40.0/21 86.105.128.0/20 86.106.142.0/24 86.106.192.0/21 86.107.0.0/20 86.107.80.0/20 86.107.144.0/20 86.107.172.0/22 86.107.208.0/20 86.109.32.0/19 87.107.0.0/16 87.128.22.75/32 87.236.208.0/26 87.236.209.0/24 87.236.210.0/23 87.236.213.0/24 87.236.214.0/24 87.247.168.0/21 87.247.176.0/20 87.248.128.0/24 87.248.139.0/24 87.248.140.0/23 87.248.142.0/24 87.248.147.0/24 87.248.150.0/24 87.248.152.0/22 87.248.156.0/24 87.248.159.0/24 87.251.128.0/19 87.252.206.24/29 87.252.206.64/29 88.131.240.122/31 88.131.240.125/32 88.135.32.0/20 88.135.68.0/24 89.32.0.0/19 89.32.96.0/20 89.32.196.0/23 89.32.248.0/22 89.33.18.0/23 89.33.100.0/22 89.33.128.0/23 89.33.204.0/23 89.33.234.0/23 89.33.240.0/23 89.34.20.0/23 89.34.32.0/19 89.34.88.0/23 89.34.94.0/23 89.34.128.0/19 89.34.168.0/23 89.34.176.0/23 89.34.200.0/23 89.34.248.0/21 89.35.58.0/23 89.35.68.0/22 89.35.120.0/22 89.35.132.0/23 89.35.156.0/23 89.35.176.0/23 89.35.180.0/22 89.35.194.0/23 89.36.16.0/23 89.36.48.0/20 89.36.96.0/20 89.36.176.0/20 89.36.194.0/23 89.36.226.0/23 89.36.252.0/23 89.37.0.0/20 89.37.30.0/23 89.37.42.0/23 89.37.102.0/23 89.37.144.0/21 89.37.152.0/22 89.37.168.0/22 89.37.198.0/23 89.37.208.0/22 89.37.218.0/23 89.37.240.0/20 89.38.24.0/23 89.38.80.0/20 89.38.102.0/23 89.38.184.0/21 89.38.192.0/21 89.38.212.0/22 89.38.242.0/23 89.38.244.0/22 89.39.8.0/22 89.39.186.0/23 89.39.208.0/24 89.40.78.0/23 89.40.106.0/23 89.40.110.0/23 89.40.128.0/23 89.40.152.0/21 89.40.240.0/20 89.41.8.0/21 89.41.16.0/21 89.41.32.0/23 89.41.40.0/22 89.41.58.0/23 89.41.184.0/22 89.41.192.0/19 89.41.240.0/21 89.42.32.0/23 89.42.44.0/22 89.42.56.0/23 89.42.68.0/23 89.42.96.0/21 89.42.136.0/22 89.42.150.0/23 89.42.184.0/21 89.42.196.0/22 89.42.208.0/23 89.42.210.0/25 89.42.210.128/27 89.42.210.160/28 89.42.210.176/29 89.42.210.184/30 89.42.210.188/32 89.42.210.190/31 89.42.210.192/26 89.42.211.0/24 89.42.228.0/23 89.43.0.0/20 89.43.36.0/23 89.43.70.0/23 89.43.88.0/21 89.43.96.0/21 89.43.144.0/21 89.43.182.0/23 89.43.188.0/23 89.43.204.0/23 89.43.216.0/21 89.43.224.0/21 89.44.112.0/23 89.44.118.0/23 89.44.128.0/21 89.44.146.0/23 89.44.176.0/21 89.44.190.0/23 89.44.202.0/23 89.44.240.0/22 89.45.48.0/20 89.45.68.0/23 89.45.80.0/23 89.45.89.0/24 89.45.112.0/21 89.45.126.0/23 89.45.152.0/21 89.45.230.0/23 89.46.44.0/23 89.46.60.0/23 89.46.94.0/23 89.46.184.0/21 89.46.216.0/22 89.47.64.0/20 89.47.128.0/19 89.47.196.0/22 89.47.200.0/22 89.144.128.0/18 89.165.0.0/17 89.196.0.0/16 89.198.0.0/15 89.219.64.0/18 89.219.192.0/18 89.221.80.0/20 89.235.64.0/18 91.92.104.0/24 91.92.114.0/24 91.92.121.0/24 91.92.122.0/23 91.92.124.0/22 91.92.129.0/24 91.92.130.0/23 91.92.132.0/22 91.92.145.0/24 91.92.146.0/23 91.92.148.0/22 91.92.156.0/22 91.92.164.0/22 91.92.172.0/22 91.92.180.0/22 91.92.184.0/21 91.92.192.0/23 91.92.204.0/22 91.92.208.0/21 91.92.220.0/22 91.92.228.0/23 91.92.231.0/24 91.92.236.0/22 91.98.0.0/15 91.106.64.0/19 91.108.128.0/19 91.109.104.0/21 91.129.4.216/32 91.129.18.175/32 91.129.18.177/32 91.133.128.0/17 91.147.64.0/20 91.184.64.0/19 91.185.128.0/19 91.186.192.0/23 91.186.201.0/24 91.186.216.0/23 91.186.218.0/24 91.190.88.0/21 91.194.6.0/24 91.199.9.0/24 91.199.18.0/24 91.199.27.0/24 91.199.30.0/24 91.207.138.0/23 91.207.205.0/24 91.208.165.0/24 91.209.96.0/24 91.209.179.0/24 91.209.183.0/24 91.209.184.0/24 91.209.186.0/24 91.209.242.0/24 91.212.16.0/24 91.212.252.0/24 91.213.151.0/24 91.213.157.0/24 91.213.167.0/24 91.213.172.0/24 91.216.4.0/24 91.217.64.0/23 91.217.177.0/24 91.220.79.0/24 91.220.113.0/24 91.220.243.0/24 91.221.240.0/23 91.222.196.0/22 91.222.204.0/22 91.224.20.0/23 91.224.110.0/23 91.224.176.0/23 91.225.52.0/22 91.226.224.0/23 91.227.84.0/22 91.227.246.0/23 91.228.22.0/23 91.228.132.0/23 91.228.189.0/24 91.229.46.0/23 91.229.214.0/23 91.230.32.0/24 91.232.64.0/22 91.232.68.0/23 91.232.72.0/22 91.233.56.0/22 91.234.52.0/24 91.236.168.0/23 91.237.254.0/23 91.238.0.0/24 91.239.14.0/24 91.239.108.0/22 91.239.210.0/24 91.239.214.0/24 91.240.60.0/22 91.240.116.0/24 91.240.180.0/22 91.241.20.0/23 91.241.92.0/24 91.242.44.0/23 91.243.126.0/23 91.243.160.0/20 91.244.120.0/22 91.245.228.0/22 91.246.44.0/24 91.247.66.0/23 91.247.171.0/24 91.247.174.0/24 91.250.224.0/20 91.251.0.0/16 92.42.48.0/21 92.43.160.0/22 92.61.176.0/21 92.61.184.0/24 92.61.186.0/23 92.61.188.0/22 92.114.16.0/20 92.114.48.0/22 92.114.64.0/20 92.119.57.0/24 92.119.58.0/24 92.119.68.0/22 92.242.192.0/19 92.246.144.0/22 92.246.156.0/22 92.249.56.0/22 93.88.64.0/21 93.88.72.0/23 93.93.204.0/24 93.110.0.0/16 93.113.224.0/20 93.114.16.0/20 93.114.104.0/21 93.115.120.0/21 93.115.144.0/21 93.115.216.0/21 93.115.224.0/20 93.117.0.0/19 93.117.32.0/20 93.117.96.0/19 93.117.176.0/20 93.118.96.0/19 93.118.128.0/19 93.118.160.0/20 93.118.180.0/22 93.118.184.0/22 93.119.32.0/19 93.119.64.0/19 93.119.208.0/20 93.126.0.0/18 93.190.24.0/21 94.24.0.0/20 94.24.16.0/21 94.24.80.0/20 94.24.96.0/21 94.74.128.0/23 94.74.130.1/32 94.74.130.2/31 94.74.130.4/30 94.74.130.8/29 94.74.130.16/28 94.74.130.32/27 94.74.130.64/26 94.74.130.128/25 94.74.131.0/24 94.74.142.0/23 94.74.144.1/32 94.74.144.2/31 94.74.144.4/30 94.74.144.8/29 94.74.144.16/28 94.74.144.32/27 94.74.144.64/26 94.74.144.128/25 94.74.148.0/24 94.74.150.0/23 94.74.152.0/23 94.74.155.0/24 94.74.161.0/24 94.74.162.0/24 94.74.167.0/24 94.74.178.0/23 94.74.180.0/24 94.74.182.0/24 94.74.188.0/23 94.74.190.0/24 94.101.128.0/20 94.101.176.0/20 94.101.240.0/20 94.139.160.0/19 94.176.8.0/21 94.176.32.0/21 94.177.72.0/21 94.182.0.0/15 94.184.0.0/16 94.199.136.0/22 94.232.168.0/21 94.241.164.0/22 95.38.0.0/16 95.64.0.0/17 95.80.128.0/18 95.81.64.0/18 95.130.56.0/21 95.130.225.0/24 95.130.240.0/21 95.142.224.0/20 95.156.222.0/23 95.156.233.0/24 95.156.234.0/23 95.156.236.0/23 95.156.248.0/23 95.156.252.0/22 95.162.0.0/16 95.215.59.0/24 95.215.160.0/22 95.215.173.0/24 103.130.144.0/24 103.130.146.0/24 103.215.220.0/22 103.216.60.0/22 103.231.136.0/22 104.28.11.28/31 104.28.11.30/32 104.28.37.237/32 104.28.37.238/31 104.28.37.240/31 104.28.51.83/32 104.28.51.84/30 104.28.80.85/32 104.28.80.86/31 104.28.80.88/31 104.28.106.57/32 104.28.106.58/31 104.28.106.60/31 104.28.131.38/31 104.28.131.40/32 104.28.194.219/32 104.28.194.220/30 104.28.194.224/31 104.28.214.161/32 104.28.214.162/31 104.28.214.164/30 104.28.214.168/32 104.28.226.219/32 104.28.226.220/30 104.28.226.224/31 104.28.246.161/32 104.28.246.162/31 104.28.246.164/30 104.28.246.168/32 109.70.237.0/24 109.72.192.0/20 109.74.232.0/21 109.94.164.0/22 109.95.60.0/22 109.95.64.0/21 109.107.131.0/24 109.108.160.0/19 109.109.32.0/19 109.110.160.0/19 109.122.193.0/24 109.122.199.0/24 109.122.209.0/24 109.122.217.0/24 109.122.224.0/20 109.122.240.0/21 109.122.248.0/22 109.122.252.0/23 109.125.128.0/18 109.162.128.0/17 109.201.0.0/19 109.203.128.0/19 109.203.176.0/22 109.206.252.0/22 109.225.128.0/18 109.230.64.0/19 109.230.192.0/23 109.230.200.0/24 109.230.204.0/22 109.230.221.0/24 109.230.223.0/24 109.230.242.0/24 109.230.246.0/23 109.230.251.0/24 109.232.0.0/21 109.238.176.0/20 109.239.0.0/20 113.203.0.0/17 128.65.160.0/19 130.185.72.0/21 130.193.77.0/24 130.244.41.211/32 130.244.41.213/32 130.244.71.67/32 130.244.71.72/31 130.244.71.74/32 130.244.71.80/31 130.244.85.151/32 130.255.192.0/18 134.255.196.0/23 134.255.200.0/21 134.255.245.0/24 134.255.246.0/24 134.255.248.0/23 140.248.34.128/30 140.248.36.146/31 140.248.36.148/31 141.11.42.0/24 146.19.104.0/24 146.19.217.0/24 146.66.128.0/21 146.75.132.146/31 146.75.132.148/31 146.75.169.128/30 146.75.180.36/30 151.232.0.0/14 151.238.0.0/15 151.240.0.0/13 152.89.12.0/22 152.89.44.0/22 157.119.188.0/22 158.58.0.0/17 158.58.184.0/21 158.255.74.0/24 158.255.78.0/24 159.20.96.0/20 164.138.16.0/21 164.138.128.0/18 164.215.56.0/21 164.215.128.0/17 171.22.24.0/22 172.80.128.0/17 172.225.187.16/28 172.225.191.160/27 172.225.196.144/28 172.225.196.184/29 172.225.228.128/27 172.225.229.96/28 176.12.64.0/20 176.56.144.0/20 176.62.144.0/21 176.65.160.0/19 176.65.192.0/18 176.67.64.0/20 176.97.218.0/24 176.97.220.0/24 176.101.32.0/20 176.101.48.0/21 176.102.224.0/19 176.105.245.0/24 176.116.7.0/24 176.122.210.0/23 176.123.64.0/18 176.124.64.0/22 176.126.120.0/24 176.221.64.0/21 176.223.80.0/21 178.21.40.0/21 178.21.160.0/21 178.22.72.0/21 178.22.120.0/21 178.131.0.0/16 178.157.0.0/23 178.169.0.0/19 178.173.128.0/18 178.173.192.0/19 178.211.145.0/24 178.215.0.0/18 178.216.248.0/21 178.219.224.0/20 178.236.32.0/22 178.236.96.0/20 178.238.192.0/20 178.239.144.0/20 178.248.40.0/21 178.251.208.0/21 178.252.128.0/18 178.253.16.0/24 178.253.31.0/24 178.253.32.0/24 178.253.38.0/23 185.1.77.0/24 185.2.12.0/22 185.3.124.0/22 185.3.200.0/22 185.3.212.0/22 185.4.0.0/22 185.4.16.0/22 185.4.28.0/22 185.4.104.0/22 185.4.220.0/22 185.5.156.0/22 185.7.212.0/24 185.8.172.0/22 185.10.71.0/24 185.10.72.0/22 185.11.68.0/22 185.11.88.0/22 185.11.176.0/22 185.12.60.0/22 185.12.100.0/23 185.12.102.0/24 185.13.228.0/22 185.14.80.0/22 185.14.160.0/22 185.16.232.0/22 185.18.156.0/22 185.18.212.0/22 185.19.201.0/24 185.20.160.0/22 185.21.68.0/22 185.21.76.0/22 185.22.28.0/22 185.23.128.0/22 185.24.136.0/22 185.24.148.0/22 185.24.228.0/22 185.24.252.0/22 185.25.172.0/22 185.26.32.0/22 185.26.232.0/22 185.29.220.0/22 185.30.4.0/22 185.30.76.0/22 185.31.124.0/22 185.32.128.0/22 185.33.25.0/24 185.34.160.0/22 185.36.228.0/24 185.36.231.0/24 185.37.52.0/22 185.39.180.0/22 185.40.16.0/24 185.40.240.0/22 185.41.0.0/22 185.41.220.0/22 185.42.24.0/24 185.42.212.0/22 185.42.224.0/22 185.44.36.0/22 185.44.100.0/22 185.44.112.0/22 185.45.188.0/22 185.46.0.0/22 185.46.108.0/22 185.46.216.0/22 185.47.48.0/22 185.49.84.0/22 185.49.96.0/22 185.49.104.0/22 185.49.231.0/24 185.50.36.0/22 185.51.40.0/22 185.51.200.0/22 185.53.140.0/22 185.55.224.0/22 185.56.92.0/22 185.56.96.0/22 185.57.132.0/22 185.57.164.0/22 185.57.200.0/22 185.58.240.0/22 185.59.112.0/23 185.60.32.0/22 185.60.136.0/22 185.62.232.0/22 185.63.113.0/24 185.63.114.0/24 185.63.236.0/22 185.64.176.0/22 185.66.224.0/21 185.67.12.0/22 185.67.100.0/22 185.67.156.0/22 185.67.212.0/22 185.69.108.0/22 185.70.60.0/22 185.71.152.0/22 185.71.192.0/22 185.72.24.0/22 185.72.80.0/22 185.73.0.0/22 185.73.76.0/22 185.73.112.0/24 185.73.114.0/24 185.73.226.0/24 185.74.164.0/22 185.74.221.0/24 185.75.196.0/22 185.75.204.0/22 185.76.248.0/22 185.78.20.0/22 185.79.60.0/22 185.79.96.0/22 185.79.156.0/22 185.80.100.0/22 185.80.198.0/23 185.81.40.0/22 185.81.96.0/23 185.81.99.0/24 185.82.28.0/22 185.82.64.0/22 185.82.136.0/22 185.82.164.0/22 185.82.180.0/22 185.83.28.0/22 185.83.76.0/22 185.83.80.0/22 185.83.88.0/22 185.83.112.0/24 185.83.114.0/23 185.83.180.0/22 185.83.184.0/22 185.83.196.0/22 185.83.208.0/22 185.84.220.0/22 185.85.68.0/22 185.85.136.0/22 185.86.36.0/22 185.86.180.0/22 185.88.48.0/22 185.88.152.0/22 185.88.176.0/22 185.88.252.0/22 185.89.22.0/24 185.89.112.0/22 185.92.4.0/22 185.92.8.0/22 185.92.40.0/22 185.94.96.0/23 185.94.98.0/24 185.94.99.0/25 185.94.99.136/29 185.94.99.144/28 185.94.99.160/27 185.94.99.192/26 185.95.60.0/22 185.95.152.0/22 185.95.180.0/22 185.96.240.0/22 185.97.116.0/22 185.98.112.0/22 185.99.212.0/22 185.100.44.0/22 185.101.228.0/22 185.103.84.0/22 185.103.128.0/22 185.103.244.0/22 185.103.248.0/22 185.104.192.0/24 185.104.228.0/22 185.104.232.0/22 185.104.240.0/22 185.105.100.0/22 185.105.120.0/22 185.105.184.0/22 185.105.236.0/22 185.106.136.0/22 185.106.144.0/22 185.106.200.0/22 185.106.228.0/22 185.107.28.0/22 185.107.32.0/23 185.107.244.0/22 185.107.248.0/22 185.108.96.0/22 185.108.164.0/22 185.109.60.0/22 185.109.72.0/22 185.109.80.0/22 185.109.128.0/22 185.109.244.0/22 185.109.248.0/22 185.110.28.0/22 185.110.216.0/22 185.110.228.0/22 185.110.236.0/22 185.110.244.0/22 185.110.252.0/22 185.111.8.0/21 185.111.64.0/22 185.111.80.0/22 185.111.136.0/22 185.112.32.0/21 185.112.130.0/23 185.112.148.0/22 185.112.168.0/22 185.113.56.0/22 185.113.112.0/22 185.114.188.0/22 185.115.76.0/22 185.115.148.0/22 185.115.168.0/22 185.116.20.0/22 185.116.24.0/22 185.116.44.0/22 185.116.160.0/22 185.117.48.0/22 185.117.136.0/22 185.117.204.0/23 185.117.206.0/24 185.118.12.0/22 185.118.136.0/22 185.118.152.0/22 185.119.4.0/22 185.119.164.0/22 185.119.240.0/22 185.120.120.0/22 185.120.136.0/22 185.120.160.0/22 185.120.168.0/22 185.120.192.0/21 185.120.200.0/22 185.120.208.0/20 185.120.224.0/20 185.120.240.0/21 185.120.248.0/22 185.121.56.0/22 185.121.128.0/22 185.122.80.0/22 185.123.68.0/22 185.123.208.0/22 185.124.112.0/22 185.124.156.0/22 185.124.172.0/22 185.125.20.0/22 185.125.244.0/22 185.125.248.0/21 185.126.0.0/20 185.126.16.0/22 185.126.40.0/22 185.126.132.0/23 185.126.200.0/22 185.127.232.0/22 185.128.40.0/24 185.128.48.0/22 185.128.80.0/22 185.128.136.0/22 185.128.152.0/22 185.128.164.0/22 185.129.80.0/22 185.129.168.0/22 185.129.184.0/21 185.129.196.0/22 185.129.200.0/22 185.129.212.0/22 185.129.216.0/22 185.129.228.0/22 185.129.232.0/21 185.129.240.0/22 185.130.76.0/22 185.131.28.0/22 185.131.84.0/22 185.131.88.0/21 185.131.100.0/22 185.131.108.0/22 185.131.112.0/21 185.131.124.0/22 185.131.128.0/22 185.131.136.0/21 185.131.148.0/22 185.131.152.0/21 185.131.164.0/22 185.131.168.0/22 185.132.80.0/22 185.132.212.0/22 185.133.152.0/22 185.133.164.0/22 185.133.244.0/23 185.133.246.0/24 185.134.96.0/22 185.135.28.0/22 185.135.228.0/22 185.136.100.0/22 185.136.172.0/22 185.136.180.0/22 185.136.192.0/22 185.136.220.0/22 185.137.24.0/22 185.137.60.0/22 185.137.108.0/23 185.137.110.0/24 185.139.64.0/22 185.140.4.0/22 185.140.56.0/22 185.140.232.0/22 185.140.240.0/22 185.141.36.0/22 185.141.48.0/22 185.141.104.0/22 185.141.132.0/22 185.141.168.0/22 185.141.212.0/22 185.141.244.0/22 185.142.92.0/22 185.142.124.0/22 185.142.156.0/22 185.142.232.0/22 185.143.72.0/22 185.143.204.0/22 185.143.232.0/22 185.144.64.0/22 185.145.8.0/22 185.145.184.0/22 185.147.40.0/22 185.147.84.0/22 185.147.160.0/22 185.147.176.0/22 185.149.192.0/24 185.150.108.0/22 185.153.184.0/22 185.153.208.0/22 185.154.184.0/22 185.155.8.0/21 185.155.72.0/22 185.155.236.0/22 185.157.8.0/22 185.158.172.0/22 185.159.152.0/22 185.159.176.0/22 185.160.104.0/22 185.160.176.0/22 185.161.36.0/22 185.161.112.0/22 185.162.40.0/22 185.162.216.0/22 185.163.88.0/22 185.164.73.0/24 185.164.74.0/23 185.164.252.0/22 185.165.28.0/22 185.165.40.0/22 185.165.100.0/22 185.165.116.0/22 185.165.204.0/22 185.166.60.0/22 185.166.104.0/22 185.166.112.0/22 185.167.72.0/22 185.167.100.0/22 185.167.124.0/22 185.168.28.0/22 185.169.6.0/24 185.169.20.0/22 185.169.36.0/22 185.170.8.0/24 185.170.236.0/22 185.171.52.0/22 185.172.0.0/22 185.172.68.0/22 185.172.212.0/22 185.173.104.0/22 185.173.129.0/24 185.173.130.0/24 185.173.168.0/22 185.174.132.0/24 185.174.134.0/24 185.174.200.0/22 185.174.248.0/22 185.175.76.0/22 185.175.240.0/22 185.176.32.0/22 185.176.56.0/22 185.177.156.0/22 185.177.232.0/22 185.178.104.0/22 185.178.220.0/22 185.179.90.0/24 185.179.168.0/22 185.179.220.0/22 185.180.52.0/22 185.180.128.0/22 185.181.180.0/22 185.182.220.0/22 185.182.248.0/22 185.184.32.0/22 185.184.48.0/22 185.185.16.0/22 185.185.240.0/22 185.186.48.0/22 185.186.240.0/22 185.187.48.0/22 185.187.84.0/22 185.188.104.0/22 185.188.112.0/22 185.189.120.0/22 185.190.20.0/22 185.190.25.128/25 185.190.39.0/24 185.191.76.0/22 185.192.8.0/22 185.192.112.0/22 185.193.47.0/24 185.193.208.0/22 185.194.76.0/22 185.194.244.0/22 185.195.72.0/22 185.196.148.0/22 185.197.68.0/22 185.197.112.0/22 185.198.160.0/22 185.199.64.0/22 185.199.208.0/22 185.201.48.0/22 185.202.56.0/22 185.203.160.0/22 185.204.180.0/22 185.204.197.0/24 185.205.203.0/24 185.205.220.0/22 185.206.92.0/22 185.206.229.0/24 185.206.231.0/24 185.206.236.0/22 185.207.52.0/22 185.207.72.0/22 185.208.76.0/22 185.208.148.0/22 185.208.174.0/23 185.208.180.0/22 185.209.188.0/22 185.210.200.0/22 185.211.56.0/22 185.211.84.0/22 185.211.88.0/22 185.212.48.0/22 185.212.192.0/22 185.213.8.0/22 185.213.164.0/22 185.213.195.0/24 185.214.36.0/22 185.215.124.0/22 185.215.152.0/22 185.215.228.0/22 185.218.139.0/24 185.219.112.0/22 185.220.224.0/22 185.221.112.0/22 185.221.192.0/22 185.221.239.0/24 185.222.120.0/22 185.222.180.0/22 185.222.184.0/22 185.222.210.0/24 185.223.160.0/24 185.224.176.0/22 185.225.80.0/22 185.225.180.0/22 185.225.240.0/22 185.226.97.0/24 185.226.116.0/22 185.226.132.0/22 185.226.140.0/22 185.227.64.0/22 185.227.116.0/22 185.228.236.0/22 185.229.0.0/22 185.229.28.0/22 185.229.204.0/24 185.231.65.0/24 185.231.112.0/24 185.231.114.0/23 185.231.180.0/22 185.232.152.0/22 185.232.176.0/22 185.233.12.0/22 185.233.84.0/22 185.233.131.0/24 185.234.14.0/24 185.234.192.0/22 185.235.136.0/24 185.235.138.0/23 185.235.245.0/24 185.236.36.0/22 185.236.45.0/24 185.236.88.0/22 185.237.8.0/22 185.237.84.0/22 185.238.20.0/22 185.238.44.0/22 185.238.92.0/22 185.238.140.0/24 185.238.143.0/24 185.239.0.0/22 185.239.104.0/22 185.240.56.0/22 185.240.148.0/22 185.243.48.0/22 185.244.52.0/22 185.246.4.0/22 185.248.32.0/24 185.251.76.0/22 185.252.28.0/22 185.252.200.0/24 185.254.165.0/24 185.254.166.0/24 185.255.68.0/22 185.255.88.0/22 185.255.208.0/22 188.0.240.0/20 188.75.64.0/18 188.94.188.0/24 188.95.89.0/24 188.118.64.0/18 188.121.96.0/19 188.121.128.0/19 188.122.96.0/19 188.136.128.0/18 188.136.192.0/19 188.158.0.0/15 188.191.176.0/21 188.208.56.0/21 188.208.64.0/19 188.208.144.0/20 188.208.160.0/19 188.208.200.0/22 188.208.208.0/21 188.208.224.0/19 188.209.0.0/19 188.209.32.0/20 188.209.64.0/20 188.209.116.0/22 188.209.152.0/23 188.209.192.0/20 188.210.64.0/20 188.210.80.0/21 188.210.96.0/19 188.210.128.0/18 188.210.192.0/20 188.210.232.0/22 188.211.0.0/20 188.211.32.0/19 188.211.64.0/18 188.211.128.0/19 188.211.176.0/20 188.211.192.0/19 188.212.22.0/24 188.212.48.0/20 188.212.64.0/19 188.212.96.0/22 188.212.144.0/21 188.212.160.0/19 188.212.200.0/21 188.212.208.0/20 188.212.224.0/20 188.212.240.0/21 188.213.64.0/20 188.213.96.0/19 188.213.144.0/20 188.213.176.0/20 188.213.192.0/21 188.213.208.0/22 188.214.4.0/22 188.214.84.0/22 188.214.96.0/22 188.214.120.0/23 188.214.160.0/19 188.214.216.0/21 188.215.24.0/22 188.215.88.0/22 188.215.128.0/20 188.215.160.0/19 188.215.192.0/19 188.215.240.0/22 188.229.0.0/17 188.240.196.0/24 188.240.212.0/24 188.240.248.0/21 188.253.2.0/23 188.253.32.0/21 188.253.40.0/24 188.253.42.0/23 188.253.44.0/22 188.253.48.0/20 188.253.64.0/19 192.15.0.0/16 192.167.140.66/32 193.0.156.0/24 193.3.31.0/24 193.3.182.0/24 193.3.231.0/24 193.3.255.0/24 193.8.139.0/24 193.19.144.0/23 193.22.20.0/24 193.28.181.0/24 193.29.24.0/24 193.29.26.0/24 193.32.80.0/23 193.34.244.0/22 193.35.62.0/24 193.38.247.0/24 193.39.9.0/24 193.56.59.0/24 193.56.61.0/24 193.56.107.0/24 193.56.118.0/24 193.104.22.0/24 193.104.29.0/24 193.104.212.0/24 193.105.2.0/24 193.105.6.0/24 193.105.234.0/24 193.106.190.0/24 193.107.48.0/24 193.108.242.0/23 193.111.234.0/23 193.134.100.0/23 193.141.64.0/23 193.141.126.0/23 193.142.30.0/24 193.142.232.0/23 193.142.254.0/23 193.148.64.0/22 193.150.66.0/24 193.151.128.0/19 193.162.129.0/24 193.176.240.0/22 193.178.200.0/22 193.186.4.40/30 193.186.32.0/24 193.189.122.0/23 193.200.102.0/23 193.200.148.0/24 193.201.72.0/23 193.201.192.0/22 193.222.51.0/24 193.228.90.0/23 193.228.136.0/24 193.240.187.76/30 193.240.207.0/28 193.242.194.0/23 193.242.208.0/23 193.246.160.0/23 193.246.164.0/23 193.246.174.0/23 193.246.200.0/23 194.5.40.0/22 194.5.175.0/24 194.5.176.0/22 194.5.188.0/24 194.5.195.0/24 194.5.205.0/24 194.9.56.0/23 194.9.80.0/23 194.26.2.0/23 194.26.20.0/23 194.26.117.0/24 194.26.195.0/24 194.31.108.0/24 194.31.194.0/24 194.33.104.0/22 194.33.122.0/23 194.33.124.0/22 194.34.163.0/24 194.36.0.0/24 194.36.174.0/24 194.39.36.0/22 194.41.48.0/22 194.50.204.0/24 194.50.209.0/24 194.50.216.0/24 194.50.218.0/24 194.53.118.0/23 194.53.122.0/23 194.56.148.0/24 194.59.170.0/23 194.59.214.0/23 194.60.208.0/22 194.60.228.0/22 194.62.17.0/24 194.62.43.0/24 194.87.23.0/24 194.143.140.0/23 194.146.148.0/22 194.146.239.0/24 194.147.164.0/22 194.147.212.0/24 194.147.222.0/24 194.150.68.0/22 194.156.140.0/22 194.180.224.0/24 194.225.0.0/16 195.2.234.0/24 195.8.102.0/24 195.8.110.0/24 195.8.112.0/24 195.8.114.0/24 195.20.136.0/24 195.27.14.0/29 195.28.10.0/23 195.28.168.0/23 195.88.188.0/23 195.96.128.0/24 195.96.153.0/24 195.110.38.0/23 195.114.4.0/23 195.114.8.0/23 195.146.32.0/19 195.181.0.0/17 195.182.38.0/24 195.190.130.0/24 195.190.139.0/24 195.190.144.0/24 195.191.22.0/23 195.191.44.0/23 195.191.74.0/23 195.211.44.0/22 195.217.44.172/30 195.219.71.0/24 195.225.232.0/24 195.226.223.0/24 195.230.97.0/24 195.230.105.0/24 195.230.107.0/24 195.230.124.0/24 195.234.191.0/24 195.238.231.0/24 195.238.240.0/24 195.238.247.0/24 195.245.70.0/23 196.3.91.0/24 204.18.0.0/16 204.245.22.24/30 204.245.22.29/32 204.245.22.30/31 209.28.123.0/26 210.5.196.64/26 210.5.197.64/26 210.5.198.32/29 210.5.198.64/28 210.5.198.96/27 210.5.198.128/26 210.5.198.192/27 210.5.204.0/25 210.5.205.0/26 210.5.208.0/26 210.5.208.128/25 210.5.209.0/25 210.5.214.192/26 210.5.218.64/26 210.5.218.128/25 210.5.232.0/25 210.5.233.0/25 210.5.233.128/26 212.1.192.0/21 212.16.64.0/19 212.18.108.0/24 212.23.201.0/24 212.23.214.0/24 212.23.216.0/24 212.33.192.0/19 212.46.45.0/24 212.80.0.0/19 212.86.64.0/19 212.120.146.128/29 212.120.192.0/19 212.151.56.189/32 212.151.60.189/32 212.151.182.155/32 212.151.182.156/31 212.151.186.154/31 212.151.186.156/32 213.108.240.0/23 213.108.242.0/24 213.109.199.0/24 213.109.240.0/20 213.168.224.216/30 213.168.240.96/29 213.176.0.0/20 213.176.16.0/22 213.176.28.0/22 213.176.64.0/18 213.195.0.0/20 213.195.16.0/21 213.195.32.0/19 213.207.192.0/18 213.217.32.0/19 213.232.124.0/22 213.233.160.0/19 217.11.16.0/20 217.24.144.0/20 217.25.48.0/20 217.60.0.0/16 217.66.192.0/19 217.77.112.0/20 217.114.40.0/24 217.144.104.0/22 217.146.208.0/20 217.161.16.0/24 217.170.240.0/20 217.171.145.0/24 217.171.148.0/22 217.171.191.220/30 217.172.98.0/23 217.172.102.0/23 217.172.104.0/21 217.172.112.0/22 217.172.116.0/23 217.172.118.0/24 217.172.120.0/21 217.174.16.0/20 217.198.190.0/24 217.218.0.0/16 217.219.0.0/17 217.219.128.0/18 217.219.192.0/21 217.219.200.0/22 217.219.204.0/24 217.219.205.64/26 217.219.205.128/25 217.219.206.0/23 217.219.208.0/20 217.219.224.0/19" + option interface "wan" + option enabled "1" + +config policy + option name "lan to wwan" + option src_addr "192.168.151.100/24 192.168.3.100/24" + option interface "wwan" + option enabled "1" + +config dns_policy + option name 'Redirect Local IP DNS' + option src_addr '192.168.151.100/24' + option dest_dns '1.1.1.1' + option enabled '0' + +config policy + option name 'Ignore Local Requests' + option interface 'ignore' + option dest_addr '10.0.0.0/24 10.0.1.0/24 192.168.100.0/24 192.168.1.0/24' + option enabled '0' + +config policy + option name 'Plex/Emby Local Server' + option interface 'wan' + option src_port '8096 8920 32400' + option enabled '0' + +config policy + option name 'Plex/Emby Remote Servers' + option interface 'wan' + option dest_addr 'plex.tv my.plexapp.com emby.media app.emby.media tv.emby.media' + option enabled '0' \ No newline at end of file diff --git a/src/files/etc/config/routro b/src/files/etc/config/routro new file mode 100644 index 0000000..14350ac --- /dev/null +++ b/src/files/etc/config/routro @@ -0,0 +1,38 @@ +config remote 'remote' + option enabled '0' + option key '' + option host '' + option port '' + option proxyport '' + option version '0' + option identifier '' + +config subscription 'subscription' + option subscription_token '' + option exprie_at '' + +config device_admin 'device_admin' + option key 'routro' + +config firmware 'firmware' + option version '0.0.99' + +config outlinegate 'outlinegate' + option enabled '0' + option originport '' + option originhost '' + option mapport '' + option maphost '' + +config ireach 'ireach' + option enabled '0' + option host '-' + option port '-' + option hosttype '-' + option proxyport '-' + option proxyfaceport '-' + option outlineport '-' + option user '-' + option pass '-' + + \ No newline at end of file diff --git a/src/files/etc/config/rpcd b/src/files/etc/config/rpcd new file mode 100644 index 0000000..2c6e0a5 --- /dev/null +++ b/src/files/etc/config/rpcd @@ -0,0 +1,16 @@ +config rpcd + option socket /var/run/ubus/ubus.sock + option timeout 30 + +config login + option username 'root' + option password '$p$root' + list read '*' + list write '*' + +config login + option username 'routro' + #You can generate these with uhttpd -m secret + option password '$1$$pnSmUg4O3K/kUup95Gg3E1' + list read routrouser + list write routrouser \ No newline at end of file diff --git a/src/files/etc/config/tinyproxy b/src/files/etc/config/tinyproxy new file mode 100644 index 0000000..b524859 --- /dev/null +++ b/src/files/etc/config/tinyproxy @@ -0,0 +1,258 @@ +config tinyproxy + +# +# Enable the proxy +# +option enabled 1 + +# +# Name of the user the tinyproxy daemon should switch to after the port +# has been bound. +# +option User nobody +option Group nogroup + +# +# Port to listen on. +# +option Port 8888 + +# +# If you have multiple interfaces this allows you to bind to only one. If +# this is commented out, tinyproxy will bind to all interfaces present. +# +#option Listen 192.168.0.1 + +# +# The Bind directive allows you to bind the outgoing connections to a +# particular IP address. +# +#option Bind 192.168.0.1 + +# +# Timeout: The number of seconds of inactivity a connection is allowed to +# have before it closed by tinyproxy. +# +option Timeout 60 + +# +# ErrorFile: Defines the HTML file to send when a given HTTP error +# occurs. You will probably need to customize the location to your +# particular install. The usual locations to check are: +# /usr/local/share/tinyproxy +# /usr/share/tinyproxy +# /etc/tinyproxy +# +#option ErrorFile_404 "/usr/share/tinyproxy/404.html" +#option ErrorFile_400 "/usr/share/tinyproxy/400.html" +#option ErrorFile_503 "/usr/share/tinyproxy/503.html" +#option ErrorFile_403 "/usr/share/tinyproxy/403.html" +#option ErrorFile_408 "/usr/share/tinyproxy/408.html" + +# +# DefaultErrorFile: The HTML file that gets sent if there is no +# HTML file defined with an ErrorFile keyword for the HTTP error +# that has occurred. +# +option DefaultErrorFile "/usr/share/tinyproxy/default.html" + +# +# StatFile: The HTML file that gets sent when a request is made +# for the stathost. If this file doesn't exist a basic page is +# hardcoded in tinyproxy. +# +option StatFile "/usr/share/tinyproxy/stats.html" + +# +# BasicAuth: Tinyproxy server operators may want to not run an "open" proxy +# for the whole world, but rather limit usage to a smaller goup +# of users. They then put the line. +# +option BasicAuth "username password" + +# +# Where to log the information. Either LogFile or Syslog should be set, +# but not both. +# +option LogFile "/var/log/tinyproxy.log" +#option Syslog 1 + +# +# Set the logging level. Allowed settings are: +# Critical (least verbose) +# Error +# Warning +# Notice +# Connect (to log connections without Info's noise) +# Info (most verbose) +# The LogLevel logs from the set level and above. For example, if the LogLevel +# was set to Warning, than all log messages from Warning to Critical would be +# output, but Notice and below would be suppressed. +# +option LogLevel Error + +# +# Include the X-Tinyproxy header, which has the client's IP address when +# connecting to the sites listed. +# +# list XTinyproxy mydomain.com + +# +# This is the absolute highest number of threads which will be created. In +# other words, only MaxClients number of clients can be connected at the +# same time. +# +option MaxClients 100 + +# +# These settings set the upper and lower limit for the number of +# spare servers which should be available. If the number of spare servers +# falls below MinSpareServers then new ones will be created. If the number +# of servers exceeds MaxSpareServers then the extras will be killed off. +# +option MinSpareServers 5 +option MaxSpareServers 20 + +# +# Number of servers to start initially. +# +option StartServers 10 + +# +# MaxRequestsPerChild is the number of connections a thread will handle +# before it is killed. In practise this should be set to 0, which disables +# thread reaping. If you do notice problems with memory leakage, then set +# this to something like 10000 +# +option MaxRequestsPerChild 0 + +# +# The following is the authorization controls. If there are any access +# control keywords then the default action is to DENY. Otherwise, the +# default action is ALLOW. +# +# Also the order of the controls are important. The incoming connections +# are tested against the controls based on order. +# +list Allow 127.0.0.1 +#list Allow 192.168.0.0/16 +#list Allow 172.16.0.0/12 +#list Allow 10.0.0.0/8 + +# +# The "Via" header is required by the HTTP RFC, but using the real host name +# is a security concern. If the following directive is enabled, the string +# supplied will be used as the host name in the Via header; otherwise, the +# server's host name will be used. +# +option ViaProxyName "tinyproxy" + +# +# The location of the filter file. +# +#option Filter "/etc/tinyproxy/filter" + +# +# Filter based on URLs rather than domains. +# +#option FilterURLs 1 + +# +# Use POSIX Extended regular expressions rather than basic. +# +#option FilterExtended 1 + +# +# Use case sensitive regular expressions. +# +#option FilterCaseSensitive 1 + +# +# Change the default policy of the filtering system. If this directive is +# commented out, or is set to "0" then the default policy is to allow +# everything which is not specifically denied by the filter file. +# +# However, by setting this directive to "1" the default policy becomes to +# deny everything which is _not_ specifically allowed by the filter file. +# +#option FilterDefaultDeny 1 + +# +# If an Anonymous keyword is present, then anonymous proxying is enabled. +# The headers listed are allowed through, while all others are denied. If +# no Anonymous keyword is present, then all header are allowed through. +# You must include quotes around the headers. +# +#list Anonymous "Host" +#list Anonymous "Authorization" + +# +# This is a list of ports allowed by tinyproxy when the CONNECT method +# is used. To disable the CONNECT method altogether, set the value to 0. +# If no ConnectPort line is found, all ports are allowed (which is not +# very secure.) +# +# The following two ports are used by SSL. +# +# list ConnectPort 443 +# list ConnectPort 563 + +# +# Turns on upstream proxy support. +# +# The upstream rules allow you to selectively route upstream connections +# based on the host/domain of the site being accessed. +# +# For example: +# # connection to test domain goes through testproxy +# +#config upstream +# option type proxy +# option via testproxy:8008 +# option target ".test.domain.invalid" +# +#config upstream +# option type proxy +# option via testproxy:8008 +# option target ".our_testbed.example.com" +# +#config upstream +# option type proxy +# option via testproxy:8008 +# option target "192.168.128.0/255.255.254.0" +# +# # no upstream proxy for internal websites and unqualified hosts +# +#config upstream +# option type reject +# option target ".internal.example.com" +# +#config upstream +# option type reject +# option target "www.example.com" +# +#config upstream +# option type reject +# option target "10.0.0.0/8" +# +#config upstream +# option type reject +# option target "192.168.0.0/255.255.254.0" +# +#config upstream +# option type reject +# option target "." +# +# # default upstream is internet firewall +# +#config upstream +# option type proxy +# option via firewall.internal.example.com:80 +# +# The LAST matching rule wins the route decision. As you can see, you +# can use a host, or a domain: +# name matches host exactly +# .name matches any host in domain "name" +# . matches any host with no domain (in 'empty' domain) +# IP/bits matches network/mask +# IP/mask matches network/mask diff --git a/src/files/etc/config/users b/src/files/etc/config/users new file mode 100644 index 0000000..eb883c0 --- /dev/null +++ b/src/files/etc/config/users @@ -0,0 +1,3 @@ +config users 'admin' + option block '0' + option password 'QEkxcY!2&VWyUbe7' \ No newline at end of file diff --git a/src/files/etc/crontabs/root b/src/files/etc/crontabs/root new file mode 100644 index 0000000..c909d4b --- /dev/null +++ b/src/files/etc/crontabs/root @@ -0,0 +1,8 @@ +# For example, you can run a backup of all your user accounts +# at 5 a.m every week with: +# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ +# +# For more information see the manual pages of crontab(5) and cron(8) +# +# m h dom mon dow command +* * * * * /usr/bin/proxymaster.sh \ No newline at end of file diff --git a/src/files/etc/dropbear/authorized_keys b/src/files/etc/dropbear/authorized_keys new file mode 100644 index 0000000..5551d77 --- /dev/null +++ b/src/files/etc/dropbear/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgWm2e9/GCHxQN8sGGtZH5UdVw1wO/uWQDBunv5KZh4J4EMus+hgwGnn95t1TRg2sEE1cVg4zp67mWO0mdqrSXjjk6g1mO4C9iWbNV8BtetskGh1+Kj1AhfsNcirMM7GZrEGoY4XrsheW6DOopnPmsGmFGSdcehRwikTjCYLXK+CSqe4FgPKS3IeGK3kQa3J9yV97QrDpxel7olCIRyHUyJgWfAJZ+7433cuCJGukPOmPaz2vFor2W5NVoQI4B/WjCpSKcbn1OVj9bRjCptnafORrtZYsxs/R50M5vFbKHMl5MWhjbOH99IemOxwKiD/kPHTFTcUIgqdXiFyQ6F6N/ openwrt_key \ No newline at end of file diff --git a/src/files/etc/hotplug.d/iface/99-custom b/src/files/etc/hotplug.d/iface/99-custom new file mode 100644 index 0000000..889bcfd --- /dev/null +++ b/src/files/etc/hotplug.d/iface/99-custom @@ -0,0 +1,6 @@ +#!/bin/sh +[ "$ACTION" = "ifup" -a "$INTERFACE" = "wg0" ] && { + logger "Fix IP Route" + wg_scripts.sh fix + # Add your custom command(s) here +} diff --git a/src/files/etc/init.d/chisel b/src/files/etc/init.d/chisel new file mode 100644 index 0000000..9ef6c1f --- /dev/null +++ b/src/files/etc/init.d/chisel @@ -0,0 +1,50 @@ +#!/bin/sh /etc/rc.common +# Example script +# Copyright (C) 2007 OpenWrt.org + +USE_PROCD=1 + +START=90 +STOP=90 +LOGFILE="/var/log/chisel.log" + +start_service() { + + # Retrieve configuration from UCI + ENABLED=$(uci get routro.ireach.enabled) + if [ "$ENABLED" == "0" ];then + echo "Connect - Service is disabled." >> $LOGFILE + exit 0 + fi + + key=$(uci get routro.ireach.user) + port=$(uci get routro.ireach.port) + host=$(uci get routro.ireach.host) + proxyport=$(uci get routro.ireach.proxyport) + password=$(uci get routro.ireach.pass) + + # Check if all required configuration parameters are present + if [ -z "$key" ] || [ -z "$port" ] || [ -z "$host" ] || [ -z "$proxyport" ] || [ -z "$password" ]; then + echo "chisel_status=MISSING_CONFIG" > /tmp/chisel_status + echo "Service is not ready. Missing configuration." + exit 0 + fi + + # Initialize procd instance + procd_open_instance + + # Redirect output to a log file using /bin/sh -c + procd_set_param command /bin/sh -c "/tmp/chisel client --auth $key:$password ${host}:${port} R:0.0.0.0:$proxyport:127.0.0.1:8888 >> $LOGFILE 2>&1" + + # Enable respawn if needed + procd_set_param respawn + + # Close the procd instance + procd_close_instance +} + +stop() { + echo "Connect - Stopping chisel service" >> $LOGFILE + # Commands to stop/kill the application + # killall chisel 2>/dev/null +} diff --git a/src/files/etc/init.d/outlineGate b/src/files/etc/init.d/outlineGate new file mode 100644 index 0000000..ebbacd5 --- /dev/null +++ b/src/files/etc/init.d/outlineGate @@ -0,0 +1,46 @@ +#!/bin/sh /etc/rc.common +# Example script +# Copyright (C) 2007 OpenWrt.org + +USE_PROCD=1 + +START=96 +STOP=96 +LOGFILE="/var/log/outline-gate.log" + + +start_service() { + + key=$(uci get routro.ireach.user) + port=$(uci get routro.ireach.port) + host=$(uci get routro.ireach.host) + password=$(uci get routro.ireach.pass) + + mport=$(uci get routro.ireach.outlineport) + + oport=$(uci get routro.outlinegate.originport) + ohost=$(uci get routro.outlinegate.originhost) + + + if [ -z "$key" ] || [ -z "$port" ] || [ -z "$host" ] || [ -z "$password" ] || [ -z "$mport" ] || [ -z "$oport" ] || [ -z "$ohost" ];then + echo "outlineGate_status=MISSINF_CONFIG" > /tmp/outlineGate_status + echo "Connect - service is not ready" >> $LOGFILE + exit 0; + fi + + procd_open_instance + procd_set_param command /bin/sh -c "/tmp/chisel client --auth $key:$password ${host}:${port} R:0.0.0.0:$mport:$ohost:$oport >> $LOGFILE 2>&1" + + # Enable respawn if needed + procd_set_param respawn + + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +} + +stop() { + + echo "Connect - Stopping outlinegate service" >> $LOGFILE + # commands to kill application +} diff --git a/src/files/etc/init.d/wifipass b/src/files/etc/init.d/wifipass new file mode 100644 index 0000000..eff91cf --- /dev/null +++ b/src/files/etc/init.d/wifipass @@ -0,0 +1,22 @@ +#!/bin/sh /etc/rc.common +# Example script +# Copyright (C) 2007 OpenWrt.org + +USE_PROCD=1 + +START=91 +STOP=91 + +start_service() { + + procd_open_instance + procd_set_param command sh /usr/bin/wrong_wifi_pass_checker.sh + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +} + +stop() { + echo stop + # commands to kill application +} \ No newline at end of file diff --git a/src/files/etc/nodogsplash/htdocs/bootstrap.min.css b/src/files/etc/nodogsplash/htdocs/bootstrap.min.css new file mode 100644 index 0000000..a89937c --- /dev/null +++ b/src/files/etc/nodogsplash/htdocs/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#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-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--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:#c4c8cb;--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-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-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(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-heading-color:inherit;--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-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--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:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::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)}.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;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-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg: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;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#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);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-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-secondary-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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#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-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{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-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(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;-webkit-appearance:none;appearance:none;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}@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;-moz-appearance:none;appearance:none;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}@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>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .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{color:rgba(var(--bs-body-color-rgb),.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{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:var(--bs-border-radius)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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-form-valid-border-color);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-form-valid-border-color)}.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-form-valid-border-color);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-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.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-form-valid-color)}.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-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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-form-invalid-border-color);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-form-invalid-border-color)}.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-form-invalid-border-color);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-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.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-form-invalid-color)}.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:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: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:0 0 0 #000;--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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 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:var(--bs-tertiary-color);--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:var(--bs-border-radius)}.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;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.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:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-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:var(--bs-border-radius);--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 .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a: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,.navbar[data-bs-theme=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-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.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);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;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='%23052c65'%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-emphasis);--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:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: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-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(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(0, 0, 0, 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(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-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;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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg: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%}.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,[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],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-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(0, 0, 0, 0.075);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.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%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.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%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.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%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.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%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.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(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-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){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-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-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-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-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-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-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-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-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-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-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-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-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-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-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-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-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-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-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-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-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-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/files/etc/nodogsplash/htdocs/images/nocensored.jpg b/src/files/etc/nodogsplash/htdocs/images/nocensored.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48bb531c24f655a5f9f41700dc15fcea514e08b0 GIT binary patch literal 45000 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 AD*ylh literal 0 HcmV?d00001 diff --git a/src/files/etc/nodogsplash/htdocs/images/splash.jpg b/src/files/etc/nodogsplash/htdocs/images/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac9a357a64cc324488eea032ba9f46282233a75e GIT binary patch literal 2129 zcmb78dpr{g8{Q0KHVj+Qm^KcEGPz&cTsF68F5#%5+|vjptmRT6muY+`m7KYhxihIy zXbO?sultfju7#sG$kF-Z`+eV^-}CK z36=x{3mrov{a+?P2m}Iy!sH|*`=X&FKmZ5=?XMsq(SL6CC4eAYNb0aKUfRqNEQ2{4_D4Lc6;ado zZ54^tK4yN-Cp@!%{}loJAJbp%zv5)z{~h&D=H55}3Igso0>J?Uz_;-jqD#UM6i0Nv zSt`UyMCd*ebrQ8SC_~n7NK#?-dm1A zFvN;;ImSQ15x#ubqG5g6%$}LfxSIAoGPApEl0ElVUTHrUCJpsqgK58ij7g{l&mi;R)7Z_vT0#er$HWE5#Dkha z?7U`!ucwj@PTz|zz+3Bv#vi73rMV44M@;=T*t8Wt2P`Z1%P9N7>%JbbFzr_4+y(F_ zmHw1QmIn#C#7lct8B)gyx}6Xjf=N`SHu_>&YYLZ8>0TTz-(-`>T^C=J1f!kDZ!|1Y zkNdTE*@>Injo7X;iw*os|FznR2syUq>ucq5_437|lM7euLIdyJU$ZfQnA#K!jbG+3o+zYPW}-f+Kj)9O`ZBI-Zy!sHgTy`g5Mr*zNKKxASZE;S!Xw->D`MUAMRa8iCB( z)7?8uZwCAG4QbOsz_+R$EtQB~uCYNYv)cy01xww^zcyqlUG_52Gc~yJa$TIYrL}y^?S6MP;A0<(mv+8w!4;xpz}yBjR3 z)bH?lHZs!mE$Thz{18V2rC?BaX|b3&MQ`V=KFY%02dx*}#AvIU(u=XdjcTlt)j~zu z)j7khp9toHL;e^&Od9|8s;#|#-Os`#^UP_nCu&fhk%8dNv#q_uxo#T<&zs2u5Sx1I z06(P&=46KLbv4?fJ0-pkt|^;H&ry%YatE-Q;jb>rT6((gf)~$-ZSx%#LQ^QIdjPrR z?H`<*mE>8anw67ELju7@#lv-sPkcNuifPJQLYF>n7be-#_4wH`)N)G|OhGX%k?sg@ zLspI1(J1`VdwC4*lR?mQ5jz{l9xBVp#)%1?fVezH%kZ3v&0y>tA)E_bRV^WYJR2uS Q!WY}d*EsA`=)JMO0p{kTq5uE@ literal 0 HcmV?d00001 diff --git a/src/files/etc/nodogsplash/htdocs/splash.css b/src/files/etc/nodogsplash/htdocs/splash.css new file mode 100644 index 0000000..e1fca2c --- /dev/null +++ b/src/files/etc/nodogsplash/htdocs/splash.css @@ -0,0 +1,104 @@ +body { + background-color: lightgrey; + color: black; + margin-left: 5%; + margin-right: 5%; + text-align: left; +} + +hr { + display:block; + margin-top:0.5em; + margin-bottom:0.5em; + margin-left:auto; + margin-right:auto; + border-style:inset; + border-width:5px; +} + +.offset { + background: rgba(300, 300, 300, 0.6); + margin-left:auto; + margin-right:auto; + max-width:600px; + min-width:200px; + padding: 5px; +} + +.insert +{ + background: rgba(350, 350, 350, 0.7); + border: 2px solid #aaa; + border-radius: 4px; + min-width:200px; + max-width:100%; + padding: 5px; +} + +img { + width: 40%; + max-width: 180px; + margin-left: 0%; + margin-right: 5%; +} + +input[type=text], input[type=email], input[type=number] { + color: black; + background: white; + margin-left: 0%; + margin-right: 5%; + text-align: left; + font-size: 1.0em; + line-height: 2.0em; + font-weight: bold; + border: 3px; + border-style: inset; +} + +input[type=submit] { + color: white; + background: green; + margin-left: 0%; + margin-right: 5%; + text-align: left; + font-size: 1.0em; + line-height: 2.5em; + font-weight: bold; + border: 3px; + border-style: inset; +} + +med-blue { + font-size: 1.2em; + color: blue; + font-weight: bold; + font-style: normal; +} + +big-red { + font-size: 1.5em; + color: red; + font-weight: bold; +} + +italic-black { + font-size: 1.0em; + color: black; + font-weight: bold; + font-style: italic; +} + +copy-right { + font-size: 0.7em; + color: darkgrey; + font-weight: bold; + font-style:italic; +} + +normal-black { + font-size: 1.0em; + color: black; + font-weight: bold; + font-style: normal; +} + diff --git a/src/files/etc/nodogsplash/htdocs/splash.html b/src/files/etc/nodogsplash/htdocs/splash.html new file mode 100644 index 0000000..709f190 --- /dev/null +++ b/src/files/etc/nodogsplash/htdocs/splash.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + $gatewayname Hotspot Gateway. + + + + + + +

+
+
+
+

Welcome!

+

For access to the Internet, please Enter Username and Password, then click + Continue.

+

Please be mindful to use the internet with fair usage practices, as it is a shared + resource.

+
+ + +
+ + +
+
+ + +
+ +
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/src/files/etc/nodogsplash/htdocs/status.html b/src/files/etc/nodogsplash/htdocs/status.html new file mode 100644 index 0000000..534baa3 --- /dev/null +++ b/src/files/etc/nodogsplash/htdocs/status.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + +$gatewayname Hotspot Gateway Status + + + + + + +
+$gatewayname Hotspot Gateway. +
+
+You are already logged in and have access to the Internet. +
+

You are already logged in and have access to the Internet.

+
+

You can use your Browser, Email and other network Apps as you normally would.

+ +
+Copyright © The Nodogsplash Contributors 2004-2019.
This software is released under the GNU GPL license.
+ +
+ + diff --git a/src/files/etc/rc.local b/src/files/etc/rc.local new file mode 100644 index 0000000..94162e8 --- /dev/null +++ b/src/files/etc/rc.local @@ -0,0 +1,259 @@ +# Run setup script +# This script execute once at the device startup. + +# last 2 letter of mac address. added to the SSID +IDENTIFIER=$(cat /sys/class/net/eth0/address | awk -F ':' '{print $6}'); +CLIENT_KEY=$(cat /sys/class/net/eth0/address | md5sum | awk '{print $1}') + +################################################################################# +#-------------< Firmware Versioning +################################################################################# +if ! [ -f /VERSION ]; then + version=$(uci -q get routro.firmware.version) + if [ -z $version ] ; then + echo "active_version=0.0.0" > /VERSION + else + echo "active_version=$version" > /VERSION + fi +fi + + +################################################################################# +#-------------< Device Conf +################################################################################# +uci set routro.remote.identifier="$IDENTIFIER" +uci set routro.remote.key="$CLIENT_KEY" +uci set routro.remote.host="-" +uci set routro.remote.port="-" +uci set routro.outlinegate.maphost="-" +uci set routro.remote.accesshost="-" + + +################################################################################# +#-------------< Network +################################################################################# + # Set default lan IP to 151 range +uci set network.lan.ipaddr='192.168.151.1' + # Set default wan metric +uci set network.wan.metric='20' +uci set network.wan6.metric='1' + # Set up wwan interface +uci set network.wwan=interface +uci set network.wwan.proto='dhcp' +uci set network.wwan.metric='10' + +# uci set network.wan.peerdns='0' +# uci set network.wan.dns='8.8.8.8' + +# uci set network.wwan.peerdns='0' +# uci set network.wwan.dns='8.8.8.8' + + # Set up bridge device +uci set network.brlan2=device +uci set network.brlan2.name='brlan-2' +uci set network.brlan2.type='bridge' + # Set up Guest interface +uci set network.Guest=interface +uci set network.Guest.proto='static' +uci set network.Guest.ipaddr='192.168.3.1' +uci set network.Guest.netmask='255.255.255.0' +uci set network.Guest.device='brlan-2' + + +################################################################################# +#-------------< Wireless +################################################################################# +for i in 0 1 +do + uci -q get wireless.radio$i + if [ $? == 0 ] + then + RADIO=radio$i + BAND=$(uci -q get wireless.radio$i.band) + + # Enable radio + uci set wireless.$RADIO.disabled='0' + + # Set up default $RADIO configuration + uci set wireless.default_$RADIO=wifi-iface + uci set wireless.default_$RADIO.device="$RADIO" + uci set wireless.default_$RADIO.network='lan' + uci set wireless.default_$RADIO.mode='ap' + uci set wireless.default_$RADIO.ssid="OpenWrt-$BAND" + uci set wireless.default_$RADIO.disabled='0' + uci set wireless.default_$RADIO.encryption='psk2' + uci set wireless.default_$RADIO.key='goodlife' + uci set wireless.default_$RADIO.ifname="wlanap_$BAND" + + # Set up wifinet1 configuration + uci set wireless.client_$BAND=wifi-iface + uci set wireless.client_$BAND.device="$RADIO" + uci set wireless.client_$BAND.mode='sta' + uci set wireless.client_$BAND.network='wwan' + uci set wireless.client_$BAND.encryption='psk2' + uci set wireless.client_$BAND.ifname="wlansta_$BAND" + uci set wireless.client_$BAND.disabled='1' + uci set wireless.client_$BAND.ssid='ChangeMe' + uci set wireless.client_$BAND.key='12345678' + + # Set up wifinet3 configuration + uci set wireless.guest_$BAND=wifi-iface + uci set wireless.guest_$BAND.device="$RADIO" + uci set wireless.guest_$BAND.mode='ap' + uci set wireless.guest_$BAND.network='Guest' + uci set wireless.guest_$BAND.encryption='psk2' + uci set wireless.guest_$BAND.key='goodlife' + uci set wireless.guest_$BAND.ssid="Guest-WiFi-$BAND" + uci set wireless.guest_$BAND.disabled='0' + uci set wireless.guest_$BAND.ifname="wlanguest_$BAND" + + fi +done + + + + +################################################################################# +#-------------< Firewall +################################################################################# +# uci rename firewall.@zone[0]="lan" +# uci rename firewall.@zone[1]="wan" + +# # Set up firewall zone for the 'wwan' network +# uci set firewall.wwanzone=zone +# uci set firewall.wwanzone.name='wwanzone' +# uci add_list firewall.wwanzone.network='wwan' +# uci set firewall.wwanzone.input='REJECT' +# uci set firewall.wwanzone.output='ACCEPT' +# uci set firewall.wwanzone.forward='REJECT' +# uci set firewall.wwanzone.masq='1' +# uci set firewall.wwanzone.mtu_fix='1' + + +# # Set up firewall zone for the 'wg0' network +# uci set firewall.wg0zone=zone +# uci set firewall.wg0zone.name='wg0zone' +# uci add_list firewall.wg0zone.network='wg0' +# uci set firewall.wg0zone.input='ACCEPT' +# uci set firewall.wg0zone.output='ACCEPT' +# uci set firewall.wg0zone.forward='REJECT' +# uci set firewall.wg0zone.masq='1' +# uci set firewall.wg0zone.mtu_fix='1' + +# # Set up forwarding from 'lan' to 'wwan' +# uci set firewall.lan_to_wwan=forwarding +# uci set firewall.lan_to_wwan.src='lan' +# uci set firewall.lan_to_wwan.dest='wwanzone' + +# # Set up forwarding from 'lan' to 'wg0' +# uci set firewall.lan_to_wg0=forwarding +# uci set firewall.lan_to_wg0.src='lan' +# uci set firewall.lan_to_wg0.dest='wg0zone' + +# # Set up firewall zone for the 'Guest' network +# uci set firewall.guest_zone=zone +# uci set firewall.guest_zone.name='guest_zone' +# uci set firewall.guest_zone.input='ACCEPT' +# uci set firewall.guest_zone.output='ACCEPT' +# uci set firewall.guest_zone.forward='ACCEPT' +# uci add_list firewall.guest_zone.network='Guest' +# # Set up forwarding from 'guest_zone' to 'wan' +# uci set firewall.forwarding_guest_to_wan=forwarding +# uci set firewall.forwarding_guest_to_wan.src='guest_zone' +# uci set firewall.forwarding_guest_to_wan.dest='wan' +# # Set up DNS Redirect Rule +# uci add firewall redirect +# uci set firewall.@redirect[-1].name='Redirect DNS to 8.8.8.8' +# uci set firewall.@redirect[-1].src='lan' # LAN source (br-lan) +# uci set firewall.@redirect[-1].src_dport='53' # DNS port 53 +# uci set firewall.@redirect[-1].proto='tcp udp' # Both TCP and UDP +# uci set firewall.@redirect[-1].dest_port='53' # Destination port: 53 +# uci set firewall.@redirect[-1].target='DNAT' # Redirection (DNAT) +# uci set firewall.@redirect[-1].dest_ip='8.8.8.8' # Google's DNS +# # Set the rule position to ensure it has higher priority (insert before other rules) +# uci reorder firewall.@redirect[-1]=10 + + +################################################################################# +#-------------< DHCP +################################################################################# + # Set up DHCP configuration for the 'Guest' interface +uci set dhcp.Guest=dhcp +uci set dhcp.Guest.interface='Guest' +uci set dhcp.Guest.start='100' +uci set dhcp.Guest.limit='150' +uci set dhcp.Guest.leasetime='12h' +uci set dhcp.Guest.dhcpv4='server' +#-------------------------------------- + +################################################################################# +#-------------< Tinyproxy +################################################################################# +RANDOMPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10) +USER=iReach$(hexdump -n 2 -e '/2 "%u"' /dev/urandom) +uci set tinyproxy.@tinyproxy[0].BasicAuth="$USER $RANDOMPASS" +#-------------------------------------- + + +################################################################################# +#-------------< uhhtpd +################################################################################# +uci set uhttpd.main.listen_http='192.168.151.1:80' +uci add_list uhttpd.main.setenv='Cache-Control=no-store, no-cache, must-revalidate, max-age=0' +uci add_list uhttpd.main.setenv='Pragma=no-cache' +uci add_list uhttpd.main.setenv='Expires=-1' + +uci add uhttpd uhttpd +uci rename uhttpd.@uhttpd[1]="portal" +uci set uhttpd.portal.listen_http='192.168.3.1:2027' +uci set uhttpd.portal.home='/www/portal' +uci add_list uhttpd.portal.lua_prefix='/auth=/www/portal/auth.lua' +uci add_list uhttpd.portal.setenv='Cache-Control=no-store, no-cache, must-revalidate, max-age=0' +uci add_list uhttpd.portal.setenv='Pragma=no-cache' +uci add_list uhttpd.portal.setenv='Expires=-1' +#-------------------------------------- + +################################################################################# +#-------------< sshkey +################################################################################# +uci set dropbear.@dropbear[0].PasswordAuth='off' +uci set dropbear.@dropbear[0].RootPasswordAuth='off' +chmod 600 /etc/dropbear/authorized_keys +#-------------------------------------- + + +##-------------< Commit All changes +uci commit + + +################################################################################# +#-------------< Sysctl +################################################################################# +echo "net.ipv4.conf.wg0.rp_filter = 2" >> /etc/sysctl.conf + + +##-------------< Executable +# All file inside /etc/init.d +for F in /etc/init.d/* ; do chmod +x $F; done + +# All file inside /usr/bin +for F in /usr/bin/* ; do chmod +x $F; done + +chmod +x /etc/hotplug.d/iface/99-custom +chmod +x /www/cgi-bin/api +chmod +x /www/portal/auth.lua + +/etc/init.d/crontab start +/etc/init.d/crontab enable + +/etc/init.d/wifipass start +/etc/init.d/wifipass enable + +/etc/init.d/tinyproxy stop +/etc/init.d/tinyproxy disable + +/etc/init.d/uhttpd restart +/etc/init.d/dropbear restart + +rm -f /etc/rc.local +reboot \ No newline at end of file diff --git a/src/files/usr/bin/binauth.sh b/src/files/usr/bin/binauth.sh new file mode 100644 index 0000000..99f2473 --- /dev/null +++ b/src/files/usr/bin/binauth.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +USERNAME="$1" +PASSWORD="$2" +CLIENT_IP="$3" + +if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] ; then + exit 1 +fi + +validate_mac_address() { + local mac_address="$1" + + # Use grep to match a valid MAC address format (xx:xx:xx:xx:xx:xx) + if echo "$mac_address" | grep -Eq "^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$"; then + return 0 # Valid MAC address + fi + + return 1 # Invalid MAC address +} + + +validate_ipv4_address() { + local ipv4_address="$1" + + # Use a simple regular expression for IPv4 validation + if echo "$ipv4_address" | grep -Eq "^([0-9]{1,3}\.){3}[0-9]{1,3}$"; then + # Check if each octet is within the valid range (0-255) + for octet in $(echo "$ipv4_address" | tr '.' ' '); do + if [ "$octet" -lt 0 ] || [ "$octet" -gt 255 ]; then + return 1 # Invalid octet + fi + done + return 0 # Valid IPv4 address + fi + + return 1 # Invalid IPv4 address +} + +is_positive_number() { + local number="$1" + + # Use grep to check for a positive integer (including zero) + if echo "$number" | grep -Eq "^[0-9]+$"; then + # Check if the number is greater than or equal to 0 + if [ "$number" -ge 0 ]; then + return 0 # Number is positive + fi + fi + + return 1 # Number is not positive +} + + + +if ! validate_ipv4_address $CLIENT_IP ;then + echo "not valid IP" + exit 1; +fi + +CLIENT_MAC=$( grep $CLIENT_IP /proc/net/arp | grep brlan-2 | awk '{print $4}'); + +if ! validate_mac_address $CLIENT_MAC ;then + echo "not valid MAC" + exit 1; +fi + +userAuth=$(uci get users.$USERNAME.password) +if [ $? = 0 -a "$PASSWORD" = "$userAuth" ]; then + + FW_RULE_ID=$(sh /usr/bin/manage_mac_access.sh check $CLIENT_MAC) + + lastMAC=$(uci get users.$USERNAME.mac) + if [ -n "$lastMAC" ] && [ "$lastMAC" != "$CLIENT_MAC" ];then + sh /usr/bin/manage_mac_access.sh remove $lastMAC + fi + if ! is_positive_number $FW_RULE_ID ; then + sh /usr/bin/manage_mac_access.sh add $CLIENT_MAC + fi + uci set users.$USERNAME.mac="$CLIENT_MAC" + uci commit users + + echo "_SUCCESS_" + exit 0 +else + echo "not match user pass" + exit 1 +fi \ No newline at end of file diff --git a/src/files/usr/bin/check_chisel.sh b/src/files/usr/bin/check_chisel.sh new file mode 100644 index 0000000..96803ca --- /dev/null +++ b/src/files/usr/bin/check_chisel.sh @@ -0,0 +1,28 @@ +#!/bin/sh + + +LOGFILE=/var/log/chisel.log + +if [ "$1" == "outline" ];then + LOGFILE=/var/log/outline-gate.log +fi + +# Filter log lines containing "Connect" (case-insensitive) +last_status="" +# Use a while loop to read each line from the grep output +while IFS= read -r line; do + + HAS_CONNECTED=$(echo "$line" | grep "Connected") + HAS_CONNECTING=$(echo "$line" | grep "Connecting") + + if [ ! -z "$HAS_CONNECTED" ]; then + last_status="Connected" + elif [ ! -z "$HAS_CONNECTED" ]; then + last_status="Connecting" + else + last_status="other" + fi + +done < <(grep -i "Connect" $LOGFILE) + +echo "$last_status" \ No newline at end of file diff --git a/src/files/usr/bin/dragon.sh b/src/files/usr/bin/dragon.sh new file mode 100644 index 0000000..be93948 --- /dev/null +++ b/src/files/usr/bin/dragon.sh @@ -0,0 +1,337 @@ +#!/bin/sh +# this script will work as a api gateway +response() { + echo "<___RESPONSE___>" + echo -e "$1" + echo "<___END___>" + exit 0 +} + +if [ "$1" == "iwscan" ];then + RESULT="" + RESULT0=$(iwinfo radio0 scan) + RESULT1=$(iwinfo radio1 scan) + if echo "$RESULT0" | grep -q "Band"; then + RESULT="${RESULT}\n${RESULT0}" + fi + if echo "$RESULT1" | grep -q "Band"; then + RESULT="${RESULT}\n${RESULT1}" + fi + + response "$RESULT" + +fi + +# Set the Wifi Client Info +if [ "$1" == "iwset" ];then + ssid=$( echo "$2" | base64 -d ) + pass=$( echo "$3" | base64 -d ) + band=$4 + encr=$5 + if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ]; then + response "Missing Info" + exit 1 + fi + rm -f /tmp/wlansta_2g.value + rm -f /tmp/wlansta_5g.value + if [ $band == "2" ];then + uci set wireless.client_2g.ssid="$ssid" + uci set wireless.client_2g.key="$pass" + uci set wireless.client_2g.encryption="$encr" + uci set wireless.client_2g.disabled="0" + uci set wireless.client_5g.disabled="1" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + elif [ $band == "5" ];then + uci set wireless.client_5g.ssid="$ssid" + uci set wireless.client_5g.key="$pass" + uci set wireless.client_5g.encryption="$encr" + uci set wireless.client_5g.disabled="0" + uci set wireless.client_2g.disabled="1" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + else + response "Wrong Band" + exit 1 + fi + response "Done" + exit 0 +fi + +# Return the Wifi Status +if [ "$1" == "iwstat" ];then + band=$2 + if [ -z "$2" ]; then + response "Missing Info" + exit 1; + fi + + + if [ $band == "2" ];then + # Check if the WiFi STA interface is enabled + wifi_status=$(uci get wireless.client_2g.disabled) + IP=$(ifconfig wlansta_2g | grep 'inet addr' | awk -F: '{print $2}' | awk '{print $1}') + elif [ $band == "5" ];then + wifi_status=$(uci get wireless.client_5g.disabled) + IP=$(ifconfig wlansta_5g | grep 'inet addr' | awk -F: '{print $2}' | awk '{print $1}') + else + response "Wrong Band" + fi + + if [ "$wifi_status" = "1" ]; then + response "Disabled" + fi + if [ -z "$IP" ]; then + response "Connecting..." + exit 0 + fi + + response "Connected" +fi + +if [ "$1" == "ifconfig" ];then + RESULT="" + RESULT0=$(ifconfig br-lan) + RESULT1=$(iwinfo radio1 scan) + if echo "$RESULT0" | grep -q "Band"; then + RESULT="${RESULT}\n${RESULT0}" + fi + if echo "$RESULT1" | grep -q "Band"; then + RESULT="${RESULT}\n${RESULT1}" + fi + + response "$RESULT" + +fi + +if [ "$1" == "ip-api" ];then + RESULT=$(curl -s ip-api.com/json?fields=status,message,country,isp,query) + response "$RESULT" +fi + +if [ "$1" == "vpn-on" ];then + RESULT=$(sh /usr/bin/wg_scripts.sh on) + response "$RESULT" +fi + +if [ "$1" == "vpn-off" ];then + RESULT=$(sh /usr/bin/wg_scripts.sh off) + response "$RESULT" +fi + +if [ "$1" == "guest-on" ];then + uci set wireless.guest_2g.disabled="0" + uci set wireless.guest_5g.disabled="0" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + + response "Done" +fi + +if [ "$1" == "guest-off" ];then + + uci set wireless.guest_2g.disabled="1" + uci set wireless.guest_5g.disabled="1" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + + response "Done" +fi + +if [ "$1" == "guest-set" ];then + ssid=$2 + pass=$3 + if [ -z "$1" ] || [ -z "$2" ] ; then + response "Missing Info" + exit 1 + fi + uci set wireless.guest_2g.ssid="$2-2g" + uci set wireless.guest_2g.key="$3" + uci set wireless.guest_5g.ssid="$2-5g" + uci set wireless.guest_5g.key="$3" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + sleep 4 + response "Done" +fi + +if [ "$1" == "wifi-set" ];then + ssid=$2 + pass=$3 + if [ -z "$1" ] || [ -z "$2" ] ; then + response "Missing Info" + exit 1 + fi + uci set wireless.default_radio1.ssid="$2-2g" + uci set wireless.default_radio1.key="$3" + uci set wireless.default_radio0.ssid="$2-5g" + uci set wireless.default_radio0.key="$3" + uci commit wireless + nohup sh -c 'sleep 1 && /etc/init.d/network reload' >/dev/null 2>&1 & + sleep 4 + response "Done" +fi + +if [ "$1" == "infinite-reach-connect" ];then + + if [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$35" ] || [ -z "$6" ] || [ -z "$7" ] || [ -z "$8" ] || [ -z "$9" ]; then + response "Missing_Info" + exit 1 + fi + uci set routro.ireach.enabled='1' + uci set routro.ireach.host=$2 + uci set routro.ireach.port=$3 + uci set routro.ireach.proxyport=$4 + uci set routro.ireach.outlineport=$5 + uci set routro.ireach.proxyfaceport=$6 + uci set routro.ireach.hosttype=$7 + uci set routro.ireach.user=$8 + uci set routro.ireach.pass=$9 + uci commit routro + uci set tinyproxy.@tinyproxy[0].enabled="1" + uci set tinyproxy.@tinyproxy[0].BasicAuth="$8 $9" + uci commit tinyproxy + + # ToDo: uci set mwan3.chisel_server.dest_ip=$3 + /etc/init.d/chisel enable + /etc/init.d/tinyproxy enable + /etc/init.d/chisel restart + /etc/init.d/tinyproxy restart + + sleep 2 + + STATUS=$(/etc/init.d/chisel status) + if [ -z "$STATUS" ] ; then + STATUS="null" + fi + + CHISEL_STATUS=$(sh /usr/bin/check_chisel.sh) + + response "$STATUS $CHISEL_STATUS 2" +fi + +if [ "$1" == "infinite-reach-disconnect" ];then + + uci set routro.ireach.enabled='0' + uci commit routro + uci set tinyproxy.@tinyproxy[0].enabled='0' + uci commit tinyproxy + + /etc/init.d/chisel restart + /etc/init.d/tinyproxy restart + + sleep 2 + + STATUS=$(/etc/init.d/chisel status) + if [ -z "$STATUS" ] ; then + STATUS="null" + fi + + CHISEL_STATUS=$(sh /usr/bin/check_chisel.sh) + + response "$STATUS $CHISEL_STATUS 2" +fi + +if [ "$1" == "infinite-reach-status" ];then + iReach_HOST=$(uci get routro.ireach.host) + iREACH_EN=$(uci get routro.ireach.enabled) + tPROXY_EN=$(uci get tinyproxy.@tinyproxy[0].enabled) + sleep 2 + STATUS=$(/etc/init.d/chisel status) + if [ -z "$STATUS" ] ; then + STATUS="null" + fi + + CHISEL_STATUS=$(sh /usr/bin/check_chisel.sh) + + response "$iREACH_EN $tPROXY_EN $STATUS $CHISEL_STATUS $iReach_HOST 2" +fi + +if [ "$1" == "ireach-proxy-get" ];then + STATUS=$(/etc/init.d/tinyproxy status) + USERNAME=$(uci get routro.ireach.user) + PASSWORD=$(uci get routro.ireach.pass) + + HOST=$(uci get routro.ireach.host) + PORT=$(uci get routro.ireach.proxyfaceport) + HOST_TYPE=$(uci get routro.ireach.hosttype) + sleep 2 + response "$STATUS $HOST_TYPE $USERNAME $PASSWORD $HOST $PORT" +fi + +if [ "$1" == "ireach-enable" ];then + /etc/init.d/tinyproxy start + /etc/init.d/tinyproxy enable + sleep 2 + response "Done" +fi + +if [ "$1" == "ireach-disable" ];then + /etc/init.d/tinyproxy stop + /etc/init.d/tinyproxy disable + sleep 2 + response "Done" +fi + +if [ "$1" == "ireach-regen" ];then + /etc/init.d/tinyproxy stop + RANDOMPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10) + USER=iReach$(hexdump -n 2 -e '/2 "%u"' /dev/urandom) + uci set tinyproxy.@tinyproxy[0].BasicAuth="$USER $RANDOMPASS" + uci commit tinyproxy + /etc/init.d/tinyproxy start + sleep 2 + response "Done" +fi + +if [ "$1" == "ireach-outline-get" ];then + STATUS=$(/etc/init.d/outlineGate status) + if [ -z "$STATUS" ] ; then + STATUS="null" + fi + + SERVICE_STATUS=$(sh /usr/bin/check_chisel.sh outline) + key=$(uci get routro.outlinegate.savedKey) + sleep 2 + response "$STATUS $SERVICE_STATUS $key 4" +fi + +if [ "$1" == "ireach-outline-set" ];then + host=$2 + port=$3 + if [ -z "$1" ] || [ -z "$2" ] ; then + response "Missing_Info" + exit 1 + fi + uci set routro.outlinegate.originport="$port" + uci set routro.outlinegate.originhost="$host" + uci commit routro + + /etc/init.d/outlineGate enable + /etc/init.d/outlineGate restart + sleep 2 + + STATUS=$(/etc/init.d/outlineGate status) + if [ -z "$STATUS" ] ; then + STATUS="null" + fi + + SERVICE_STATUS=$(sh /usr/bin/check_chisel.sh outline) + iReach_HOST=$(uci get routro.ireach.host) + iReach_PORT=$(uci get routro.ireach.outlineport) + + + response "$STATUS $SERVICE_STATUS $iReach_HOST $iReach_PORT 3" +fi + +if [ "$1" == "ireach-outline-write" ];then + uci set routro.outlinegate.savedKey="$2" + uci commit routro + response "Done" +fi + +if [ "$1" == "wireguard-set-conf" ];then + config_base64=$2 + echo "$config_base64" | base64 -d > /peer.json + response "Done" +fi \ No newline at end of file diff --git a/src/files/usr/bin/manage_mac_access.sh b/src/files/usr/bin/manage_mac_access.sh new file mode 100644 index 0000000..c6540ed --- /dev/null +++ b/src/files/usr/bin/manage_mac_access.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# Function to add MAC address to firewall +add_mac() { + MAC_ADDRESS=$1 + RULE_NAME="Allow_MAC_$MAC_ADDRESS" + + echo "Adding MAC address: $MAC_ADDRESS to firewall" + BLOCKING_RULE_INDEX=$(uci show firewall | grep "Drop_Guest_Traffic" | cut -d'[' -f2 | cut -d']' -f1) + + + + uci add firewall rule + uci set firewall.@rule[-1].name="$RULE_NAME" + uci set firewall.@rule[-1].src='guest_zone' + uci set firewall.@rule[-1].src_mac="$MAC_ADDRESS" + uci set firewall.@rule[-1].dest='*' + uci set firewall.@rule[-1].target='ACCEPT' + + uci reorder firewall.@rule[$BLOCKING_RULE_INDEX]=10000 + + uci commit firewall + /etc/init.d/firewall restart + echo "MAC address $MAC_ADDRESS added." +} + +# Function to remove MAC address from firewall +remove_mac() { + MAC_ADDRESS=$1 + RULE_NAME="Allow_MAC_$MAC_ADDRESS" + + echo "Removing MAC address: $MAC_ADDRESS from firewall" + + # Remove the firewall rule for both WAN and WWAN + uci show firewall | grep "$RULE_NAME" | cut -d'[' -f2 | cut -d']' -f1 | while read -r idx; do + uci delete firewall.@rule[$idx] + done + + uci commit firewall + /etc/init.d/firewall restart + echo "MAC address $MAC_ADDRESS removed." +} + +# Function to remove MAC address from firewall +check_mac() { + if [ -z "$1" ] ; then + exit 1 + fi + MAC_ADDRESS=$1 + RULE_NAME="Allow_MAC_$MAC_ADDRESS" + + RULE_INDEX=$(uci show firewall | grep "$RULE_NAME" | cut -d'[' -f2 | cut -d']' -f1 ) + echo "$RULE_INDEX" +} + +# Check for add or remove command +case "$1" in + add) + add_mac "$2" + ;; + remove) + remove_mac "$2" + ;; + check) + check_mac "$2" + ;; + *) + echo "Usage: $0 {add|remove} " + exit 1 + ;; +esac diff --git a/src/files/usr/bin/proxymaster.sh b/src/files/usr/bin/proxymaster.sh new file mode 100644 index 0000000..d8f53c5 --- /dev/null +++ b/src/files/usr/bin/proxymaster.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# Define the file name and the URL to download from +FILE="/tmp/chisel" +ARCH=$(uname -m) +URL="https://holistic-config.s3.us-west-1.amazonaws.com/chisel/chisel_1.10.0_linux_${ARCH}_softfloat" + +reverse_string() { + input=$1 + reversed="" + + # Use a while loop to reverse the string + len=${#input} + while [ $len -gt 0 ]; do + len=$((len - 1)) + reversed="$reversed${input:$len:1}" + done + + echo "$reversed" +} + +# Check if the file exists +if [ ! -f "$FILE" ]; then + # Download the file with curl + curl "$URL" -s -o "$FILE" + if [ $? -eq 0 ]; then + chmod +x "$FILE" + # Restart the chisel service + /etc/init.d/chisel restart + /etc/init.d/outlineGate restart + else + logger -t pmaster "Download failed, check /tmp/wget.log" + exit 1 + fi +else + if [ $(stat -c %s /tmp/chisel) -gt 9500000 ]; then + if ! pgrep chisel; then + # Restart the chisel service + /etc/init.d/chisel restart + /etc/init.d/outlineGate restart + fi + else + rm /tmp/chisel + curl "$URL" -s -o "$FILE" + fi +fi diff --git a/src/files/usr/bin/router_updater.sh b/src/files/usr/bin/router_updater.sh new file mode 100644 index 0000000..bb30347 --- /dev/null +++ b/src/files/usr/bin/router_updater.sh @@ -0,0 +1,66 @@ +#!/bin/sh +# this script will Download the config and pars it and set on networks + +deviceModel=$(cat /proc/device-tree/model) +deviceModel=$(echo "$deviceModel" | awk '{print tolower($0)}' | tr ' ' '_') +if [ "$1" == "Check" ];then + # Define the URL for the versioning.txt file + url="https://s3-firmware-releases.s3.us-west-1.amazonaws.com/version-$deviceModel.txt" + + # Download versioning.txt using wget + curl "$url" -s -o /versioning.txt.new + + # Check if the download was successful + if [ $? -eq 0 ]; then + + #Containg the active_version + source /VERSION + + #Containg the new_version + source /versioning.txt.new + + # Compare versions + if [ "$new_version" = "$active_version" ]; then + echo "Versions are the same: $new_version" + else + echo "Versions are different. New version: $new_version, Current version: $active_version" + fi + + # Cleanup: Remove the temporary file + rm /versioning.txt.new + else + echo "Failed to download info from Server" + fi +elif [ "$1" == "Do" ];then + # Define the URL for the versioning.txt file + url="https://s3-firmware-releases.s3.us-west-1.amazonaws.com/version-$deviceModel.txt" + + # Download versioning.txt using wget + curl "$url" -s -o /versioning.txt.new + + # Check if the download was successful + if [ $? -eq 0 ]; then + + # Containg new_version and firmwareUrl + source /versioning.txt.new + + # Download versioning.txt using wget + curl "$firmwareUrl" -s -o /tmp/firmware.bin + + if [ $? -eq 0 ]; then + echo "Firmware Downloaded Successfully" + + else + echo "Failed to download firmware" + fi + + else + echo "Failed to download info from server" + fi + +elif [ "$1" == "Upgrade" ];then + sysupgrade -n /tmp/firmware.bin + +else + echo "Please enter the valid command" +fi \ No newline at end of file diff --git a/src/files/usr/bin/set_admin_pass.sh b/src/files/usr/bin/set_admin_pass.sh new file mode 100644 index 0000000..5eb996c --- /dev/null +++ b/src/files/usr/bin/set_admin_pass.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# this script will set the admin password + +KEY=$(uci -q get routro.device_admin.key) + +resp() { + input_string="$1" + echo "__${input_string}__" + exit 0 +} + +if [ "$1" == "set" ];then + + if [ ! -z "$KEY" ];then + hashedKey=$(uhttpd -m "$KEY") + uci set rpcd.@login[1].password="$hashedKey" + uci commit rpcd + /etc/init.d/rpcd restart + resp Seted + else + resp Error + fi +fi \ No newline at end of file diff --git a/src/files/usr/bin/shservice.lua b/src/files/usr/bin/shservice.lua new file mode 100644 index 0000000..e42e30a --- /dev/null +++ b/src/files/usr/bin/shservice.lua @@ -0,0 +1,44 @@ +#!/usr/bin/lua + +local ubus = require("ubus") + +-- Connect to UBus +local conn = ubus.connect() +if not conn then + error("Failed to connect to ubus") +end + +-- Define the function to run shell commands +local function run_command(req, msg) + local command = msg.command + if not command then + conn:reply(req, { message = "No command provided" }) + return + end + + -- Run the command in the background + os.execute(command .. " &") + + -- Respond immediately with "done" + conn:reply(req, { message = "done" }) +end + +-- Define the UBus methods +local methods = { + run = { + run_command, { command = ubus.STRING } + } +} + +-- Register the UBus object +conn:add({ shservice = methods }) + +-- Main loop to keep the script running +print("Service is running. Press Ctrl+C to stop.") +while true do + -- Sleep for a short period to avoid busy-waiting + os.execute("sleep 1") +end + +-- Cleanup (though we won't actually reach here in this loop) +conn:close() diff --git a/src/files/usr/bin/wg_prepare_config.sh b/src/files/usr/bin/wg_prepare_config.sh new file mode 100644 index 0000000..1b5b3f9 --- /dev/null +++ b/src/files/usr/bin/wg_prepare_config.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# this script will Prepare the device for wireguard interface VPN + +# Path to the peer.conf file +PEER_CONF_FILE="/peer.json" + +# Read the necessary variables from the peer.conf file +WG_IF="wg0"; +WG_ADDR=$(cat $PEER_CONF_FILE | jq ".Interface.Address" | sed 's/"//g') +WG_KEY=$(cat $PEER_CONF_FILE | jq ".Interface.PrivateKey" | sed 's/"//g') +WG_PUB=$(cat $PEER_CONF_FILE | jq ".Peer.PublicKey" | sed 's/"//g') +WG_SERV=$(cat $PEER_CONF_FILE | jq ".Peer.Endpoint" | sed 's/"//g' | cut -d':' -f1 ) +WG_PORT=$(cat $PEER_CONF_FILE | jq ".Peer.Endpoint" | sed 's/"//g' | cut -d':' -f2 ) +WG_PSK=$(cat $PEER_CONF_FILE | jq ".Peer.PresharedKey" | sed 's/"//g' ) +WG_DNS=$(cat $PEER_CONF_FILE | jq ".Interface.DNS" | sed 's/"//g' ) + +echo "Setup interface" +echo "*******************" +uci -q delete network.${WG_IF} +#uci commit network +uci set network.${WG_IF}="interface" +uci set network.${WG_IF}.proto="wireguard" +uci set network.${WG_IF}.private_key=${WG_KEY} +uci add_list network.${WG_IF}.addresses=${WG_ADDR} +uci set network.${WG_IF}.listen_port=${WG_PORT} +uci set network.${WG_IF}.metric='30' +uci set network.${WG_IF}.disabled='0' +#uci commit network + +echo "" +echo "create client vpn" +echo "*******************" +# Add VPN peers +uci -q delete network.wgclient +#uci commit network +uci set network.wgclient="wireguard_${WG_IF}" +uci set network.wgclient.description=${NAME} +uci set network.wgclient.public_key=${WG_PUB} +uci set network.wgclient.route_allowed_ips="0" +uci set network.wgclient.endpoint_host=${WG_SERV} +uci set network.wgclient.endpoint_port=${WG_PORT} +if [ "$WG_PSK" -ne "null" ];then + uci set network.wgclient.preshared_key="${WG_PSK}" +fi +uci set network.wgclient.persistent_keepalive="25" +uci add_list network.wgclient.allowed_ips="0.0.0.0/0" +uci add_list network.wgclient.allowed_ips="::/0" + +uci commit network + +# Check if wg0 is already in the firewall.wan.network list +if ! uci show firewall.wan.network | grep -q "wg0"; then + # If not present, add it to the list + uci add_list firewall.wan.network="wg0" + # Commit changes to apply them + uci commit firewall + # Restart firewall to apply the new settings + /etc/init.d/firewall restart +fi + diff --git a/src/files/usr/bin/wg_scripts.sh b/src/files/usr/bin/wg_scripts.sh new file mode 100644 index 0000000..f3bd8fb --- /dev/null +++ b/src/files/usr/bin/wg_scripts.sh @@ -0,0 +1,135 @@ +#!/bin/sh +# this script will Download the config and pars it and set on networks + +DEVICE_ID=$(uci get routro.remote.key ) +PUBLIC_KEY=$(uci -q get network.wgclient.public_key) +WG_SHOW=$( wg show | grep handshake ) + +function fix_VPN_route { + WG_HOST=$(uci get network.wgclient.endpoint_host) + + if [ ! -z "$WG_HOST" ]; then + # Check if WG_HOST is an IP address + if [[ $WG_HOST =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + WG_HOST_IP="$WG_HOST" + else + # Resolve WG_HOST to an IP address using nslookup + WG_HOST_IP=$(nslookup "$WG_HOST" | awk '/^Address: / { print $2 }' | tail -n1) + fi + + if [ ! -z "$WG_HOST_IP" ]; then + # Delete existing route if it exists + ip route del $(ip route | grep "$WG_HOST_IP" | awk '{print $1 " via " $3 " dev " $5}') + + WWAN_GW=$(ifstatus wwan | jq -r .data.dhcpserver) + WWAN_DEV=$(ifstatus wwan | jq -r .device) + + if [ ! -z "$WWAN_GW" ]; then + ip route add "$WG_HOST_IP" via "$WWAN_GW" dev "$WWAN_DEV" proto static metric 1 + fi + else + echo "Failed to resolve WG_HOST ($WG_HOST) to an IP address." + fi + fi +} + + +resp() { + input_string="$1" + echo "__${input_string}__" + exit 0 +} + +if [ "$1" == "get" ];then + + sleep 3 + cat /peer.json | grep PublicKey + if [ $? -eq 0 ]; then + wg_prepare_config.sh + resp "GET_DONE" + else + echo "Invalid ID or Missing Info" + resp "Error" + fi + + +elif [ "$1" == "del" ];then + + uci -q delete network.${WG_IF} + uci -q delete network.wgclient + uci commit network + resp "Deleted" + + +elif [ "$1" == "on" ];then + + WG_EXIST=$(uci -q get network.wg0.private_key) + if [ ! -z "$WG_EXIST" ];then + echo "Turn the Wireguard ON" + + #uci set mwan3.vpn.use_policy='wg0_only' + #uci commit mwan3 + uci set pbr.@policy[1].interface='wg0' + uci commit pbr + fix_VPN_route + ifup wg0 + + /etc/init.d/pbr restart + + resp "VPN_ON" + else + echo "Missing wireguard config" + exit 0 + fi + +elif [ "$1" == "off" ];then + + echo "turn of the wireguard" + ifdown wg0 + + # uci set mwan3.vpn.use_policy='wwan_only' + # uci commit mwan3 + uci set pbr.@policy[1].interface='wwan' + uci commit pbr + + fix_VPN_route + + /etc/init.d/pbr restart + + resp "VPN_OFF" + +elif [ "$1" == "status" ];then + WG_STATUS=$(wg | grep handshake) + WG_IF=$(wg | grep interface) + WG_ROUTE=$(uci -q get pbr.@policy[1].interface ) + if [ -z "$PUBLIC_KEY" ];then + resp "No-Config" + + elif [ "$WG_ROUTE" != "wg0" ];then + resp "Disconnected" + + elif [ -z "$WG_IF" ];then + resp "Disconnected" + + elif [ -z "$WG_STATUS" ];then + resp "Error" + + else + resp "Connected" + + fi + +elif [ "$1" == "fix" ];then + fix_VPN_route + +elif [ "$1" == "Upgrade" ];then + echo "Please enter the valid command" +else + echo "Please enter the valid command" +fi + + +# ip route del $(ip route | grep 54.183.254.245) +# ifstatus wwan | jq .data.dhcpserver +# ifstatus wwan | jq .device +# ip route add 54.183.254.245 via 192.168.1.1 dev wlansta_5g proto static metric 1 \ No newline at end of file diff --git a/src/files/usr/bin/wrong_wifi_pass_checker.sh b/src/files/usr/bin/wrong_wifi_pass_checker.sh new file mode 100644 index 0000000..52235aa --- /dev/null +++ b/src/files/usr/bin/wrong_wifi_pass_checker.sh @@ -0,0 +1,71 @@ +#!/usr/bin/sh + +# Define your space-separated string variable +DEVICES="wlansta_2g wlansta_5g" + + +confname(){ + if [ "$1" == "wlansta_2g" ];then + echo "client_2g"; + elif [ "$1" == "wlansta_5g" ];then + echo "client_5g"; + fi +} +# Function to disable the interface +disable_interface() { + interface=$1 + config=$(confname $interface) + uci set wireless.$config.disabled='1' + uci commit wireless + /etc/init.d/network reload + echo "Interface $interface disabled" +} + +# Function to check the IP address of the interface +check() { + interface=$1 + config=$(confname $interface) + + # Check if the WiFi STA interface is enabled + wifi_status=$(uci get wireless.$config.disabled) + + # If the interface is enabled (0), then check the connection + if [ "$wifi_status" = "0" ]; then + + IP=$(ifconfig $interface | grep 'inet addr' | awk -F: '{print $2}' | awk '{print $1}') + + counterfile="/tmp/$device.value" + if [ -z "$IP" ]; then + echo $interface has not ip + if [ ! -f "$counterfile" ]; then + echo 0 > "$counterfile" + fi + + value=$(cat "$counterfile") + value=$((value + 1)) + if [ "$value" -gt 5 ]; then + disable_interface $interface + echo "$interface has been disabled" + rm -f $counterfile + fi + + echo $value > "$counterfile" + return + + else + rm -f $counterfile + fi + else + echo "interface=$interface Not found" + fi +} + + + +while true; do + # Iterate over devices + for device in $DEVICES; do + check $device + done + sleep 10 +done \ No newline at end of file diff --git a/src/files/usr/share/rpcd/acl.d/ubus-routro.json b/src/files/usr/share/rpcd/acl.d/ubus-routro.json new file mode 100644 index 0000000..da9a55a --- /dev/null +++ b/src/files/usr/share/rpcd/acl.d/ubus-routro.json @@ -0,0 +1,24 @@ +{ + "routrouser": { + "description": "Super user access role", + "read": { + "ubus": { + "*": [ "*" ] + }, + "uci": [ "*" ], + "file": { + "*": ["*"] + } + }, + "write": { + "ubus": { + "*": [ "*" ] + }, + "uci": [ "*" ], + "file": { + "*": ["*"] + }, + "cgi-io": ["*"] + } + } +} \ No newline at end of file diff --git a/src/files/usr/share/ubus/dragon.json b/src/files/usr/share/ubus/dragon.json new file mode 100644 index 0000000..770564f --- /dev/null +++ b/src/files/usr/share/ubus/dragon.json @@ -0,0 +1,11 @@ +{ + "custom": { + "custom_script": { + "method": "run_script", + "parameters": {}, + "returns": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/src/files/www/bootstrap.bundle.min.js b/src/files/www/bootstrap.bundle.min.js new file mode 100644 index 0000000..e8f21f7 --- /dev/null +++ b/src/files/www/bootstrap.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/src/files/www/bootstrap.min.css b/src/files/www/bootstrap.min.css new file mode 100644 index 0000000..a89937c --- /dev/null +++ b/src/files/www/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#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-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--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:#c4c8cb;--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-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-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(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-heading-color:inherit;--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-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--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:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::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)}.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;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-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg: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;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#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);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-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-secondary-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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#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-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{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-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(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;-webkit-appearance:none;appearance:none;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}@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;-moz-appearance:none;appearance:none;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}@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>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .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{color:rgba(var(--bs-body-color-rgb),.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{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:var(--bs-border-radius)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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-form-valid-border-color);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-form-valid-border-color)}.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-form-valid-border-color);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-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.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-form-valid-color)}.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-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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-form-invalid-border-color);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-form-invalid-border-color)}.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-form-invalid-border-color);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-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.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-form-invalid-color)}.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:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: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:0 0 0 #000;--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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 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:var(--bs-tertiary-color);--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:var(--bs-border-radius)}.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;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.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:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-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:var(--bs-border-radius);--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 .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a: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,.navbar[data-bs-theme=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-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.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);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;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='%23052c65'%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-emphasis);--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:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: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-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(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(0, 0, 0, 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(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-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;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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg: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%}.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,[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],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-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(0, 0, 0, 0.075);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.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%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.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%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.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%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.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%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.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(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-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){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-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-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-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-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-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-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-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-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-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-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-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-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-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-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-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-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-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-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-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-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-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/files/www/cgi-bin/api b/src/files/www/cgi-bin/api new file mode 100644 index 0000000..62da298 --- /dev/null +++ b/src/files/www/cgi-bin/api @@ -0,0 +1,109 @@ +#!/usr/bin/lua + +-- Utility to decode URL-encoded parameters +local function url_decode(str) + str = string.gsub(str, '+', ' ') + str = string.gsub(str, '%%(%x%x)', function(h) return string.char(tonumber(h, 16)) end) + return str +end + +local function log_message(msg) + local log_file = io.open("/tmp/lua_script.log", "a") + log_file:write(os.date("%Y-%m-%d %H:%M:%S") .. " - " .. msg .. "\n") + log_file:close() +end + +-- Function to quote a parameter for safe shell usage +local function quote_param(param) + return "'" .. string.gsub(param, "'", "'\\''") .. "'" +end + +local function execute_command(cmd, params) + log_message("Executing command: " .. cmd) + if cmd ~= "dragon.sh" then + return "Error: Unauthorized command", 1 + end + + local quoted_params = {} + for _, param in ipairs(params) do + table.insert(quoted_params, quote_param(param)) + end + + local full_cmd = cmd .. " " .. table.concat(quoted_params, " ") + log_message("Full command: " .. full_cmd) + + local result = io.popen(full_cmd .. " 2>&1"):read("*a") + local exit_code = io.popen("echo $?"):read("*n") + + log_message("Command result: " .. (result or "")) + log_message("Exit code: " .. (exit_code or -1)) + + return result, exit_code +end + +local function read_body() + local content_length = tonumber(os.getenv("CONTENT_LENGTH")) + if content_length then + log_message("Content length: " .. content_length) + local body = io.read(content_length) + log_message("Body: " .. body) + return body + end + log_message("No content length provided") + return nil +end + +local function parse_params(body) + local params = {} + for k, v in string.gmatch(body, "([^&=]+)=([^&=]+)") do + params[url_decode(k)] = url_decode(v) + end + log_message("Parsed params: " .. table.concat(params, ", ")) + return params +end + +-- Simple JSON encoding function +local function json_encode(tbl) + local result = {} + for k, v in pairs(tbl) do + if type(v) == "string" then + v = string.gsub(v, '"', '\\"') + table.insert(result, string.format('"%s":"%s"', k, v)) + else + table.insert(result, string.format('"%s":%s', k, tostring(v))) + end + end + return "{" .. table.concat(result, ",") .. "}" +end + +print("Content-Type: application/json\n") + +local body = read_body() +local response = {} + +if body then + local params = parse_params(body) + if params.cmd then + local cmd = params.cmd + local param_str = params.params + local param_list = {} + if param_str then + for param in param_str:gmatch("[^%s]+") do + table.insert(param_list, param) + end + end + local output, exit_code = execute_command(cmd, param_list) + response.output = output + response.exit_code = exit_code + else + log_message("Error: No command provided") + response.error = "Error: No command provided" + response.exit_code = 1 + end +else + log_message("Error: No body provided") + response.error = "Error: No body provided" + response.exit_code = 1 +end + +print(json_encode(response)) \ No newline at end of file diff --git a/src/files/www/dashboard.html b/src/files/www/dashboard.html new file mode 100644 index 0000000..2d96e28 --- /dev/null +++ b/src/files/www/dashboard.html @@ -0,0 +1,146 @@ + + + + + Dashboard + + + + + + + + + + + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ + + +
Disconnected
+ + + +
+ +
+
+
+
+
Your IP
+
+
+
Internet Provider
+
+
+
+
+
0.0.0.0
+
+
+
Checking...
+
+
+
+
+ +
+ +
+
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/dashboard.js b/src/files/www/dashboard.js new file mode 100644 index 0000000..1cd5c7d --- /dev/null +++ b/src/files/www/dashboard.js @@ -0,0 +1,243 @@ +// const vpnOn = document.getElementById("vpn-on") +// const vpnOff = document.getElementById("vpn-off") +const vpnStauts = document.getElementById("connection-status") +const vpnShield = document.getElementById("vpn-shield") +const ipAddress = document.getElementById("ip-address") +const internetProvider = document.getElementById("internet-provider") + +const btnStarlink = document.getElementById('starlink-btn') +const btnIran = document.getElementById('iran-btn') +const btnSettings = document.getElementById('settings-btn') +const btnVPN = document.getElementById('vpn-btn') +const btnGuest = document.getElementById('guest-btn') +const btnReach = document.getElementById('reach-btn') +const btnFrimware = document.getElementById('frimware-btn') + +btnStarlink.onclick=function (e){ + window.location.href = "wifi.html?ref=dashboard"; +} +btnIran.onclick=function (e){ + window.location.href = "ethernet.html?ref=dashboard"; +} +btnSettings.onclick=function (e){ + window.location.href = "settings.html?ref=dashboard"; +} +btnVPN.onclick=function (e){ + window.location.href = "vpn.html?ref=dashboard"; +} +btnGuest.onclick=function (e){ + window.location.href = "guest.html?ref=dashboard"; +} +btnReach.onclick=function (e){ + window.location.href = "infinite_reach.html?ref=dashboard"; +} +btnFrimware.onclick=function (e){ + window.location.href = "firmware.html?ref=dashboard"; +} + + +// document.addEventListener("DOMContentLoaded", function() { +// // Expected values +// const expectedDashboardSeen = "true"; +// // Retrieve values from localStorage +// const dashboardSeen = localStorage.getItem("opr-dashboard-seen"); + +// // Check if the values match the expected values +// if (dashboardSeen !== expectedDashboardSeen ) { +// // Redirect to the desired page if values do not match +// window.location.href = "wifi.html"; +// } +// }); + + + +function changeVPNstatus(status) { + if (status == "connect") { + vpnShield.setAttribute ('fill' ,'blue') + vpnStauts.textContent = "Connected" + //vpnOn.checked=true + } + if (status == "disconnect") { + vpnShield.setAttribute ('fill' ,'red') + vpnStauts.textContent = "Disconnected" + //vpnOff.checked=true + } + if (status == "connecting") { + vpnShield.setAttribute ('fill' ,'yellow') + vpnStauts.textContent = "Connecting..." + //vpnOff.checked=true + } + +} +function setIpInfo(ip,provider) { + ipAddress.textContent=ip + internetProvider.textContent=provider +} + +function updateStarlink(status) { + if (status == "connect") { + btnStarlink.classList.add('btn-success') + btnStarlink.classList.remove('btn-danger') + } + if (status == "disconnect") { + btnStarlink.classList.add('btn-danger') + btnStarlink.classList.remove('btn-success') + } +} +function updateIran(status) { + if (status == "connect") { + btnIran.classList.add('btn-success') + btnIran.classList.remove('btn-danger') + } + if (status == "disconnect") { + btnIran.classList.add('btn-danger') + btnIran.classList.remove('btn-success') + } +} +function updateGuest(status) { + if (status == "enable") { + btnGuest.classList.add('btn-success') + btnGuest.classList.remove('btn-danger') + } + if (status == "disable") { + btnGuest.classList.add('btn-danger') + btnGuest.classList.remove('btn-success') + } +} + +function updateReach(status) { + if (status == "disconnect") { + btnReach.classList.add('btn-danger') + btnReach.classList.remove('btn-suncess') + btnReach.classList.remove('btn-warning') + } + if (status == "disable") { + btnReach.classList.add('btn-warning') + btnReach.classList.remove('btn-success') + btnReach.classList.remove('btn-danger') + } + if (status == "enable") { + btnReach.classList.add('btn-success') + btnReach.classList.remove('btn-danger') + btnReach.classList.remove('btn-warning') + } +} + +function updateVpn(status) { + if (status == "disconnected") { + btnVPN.classList.add('btn-danger') + btnVPN.classList.remove('btn-suncess') + btnVPN.classList.remove('btn-warning') + } + if (status == "noconfig") { + btnVPN.classList.add('btn-warning') + btnVPN.classList.remove('btn-success') + btnVPN.classList.remove('btn-danger') + } + if (status == "connected") { + btnVPN.classList.add('btn-success') + btnVPN.classList.remove('btn-danger') + btnVPN.classList.remove('btn-warning') + } +} + +// vpnOn.onclick=async function(){ +// loading(true,"Connecting to the VPN") +// var vpn=await async_lua_call("dragon.sh","vpn-on") +// console.log(vpn) +// readVpnStatus() +// } +// vpnOff.onclick=async function(){ +// loading(true,"Disconnecting from the VPN, Your starlink ip will not be transparent") +// var vpn=await async_lua_call("dragon.sh","vpn-off") +// console.log(vpn) +// readVpnStatus() +// } + +async function ipapi(){ + //var jsonString= await async_lua_call("dragon.sh","ip-api") + //var unescapedString = jsonString.replace(/\\"/g, '"'); + //var jsonObject = JSON.parse(unescapedString); + //setIpInfo(jsonObject["query"],jsonObject["country"],jsonObject["isp"]) + var jsonString= await async_ipapi_call() + setIpInfo(jsonString["query"],jsonString["isp"]) + return jsonString +} + + + +readVpnStatus() +async function readVpnStatus(){ + loading(true,"Getting vpn status") + const VPN_STAT=["file","exec",{"command":"wg_scripts.sh","params":[ "status" ]}]; + var response=await async_ubus_call(VPN_STAT) + // Extract the 'stdout' from the response + const stdout = response[1].stdout; + // Check if 'Connected' is present in the 'stdout' + if (stdout.includes('__Connected__')) { + changeVPNstatus("connect") + updateVpn("connected") + + } else if (stdout.includes('__Disconnected__')) { + changeVPNstatus("disconnect") + updateVpn("disconnected") + } else if (stdout.includes('__Error__')) { + changeVPNstatus("connecting") + updateVpn("noconfig") + }else if (stdout.includes('__No-Config__')) { + changeVPNstatus("disconnect") + updateVpn("noconfig") + }else { + changeVPNstatus("connecting") + updateVpn("disconnected") + } + await ipapi() + loading(false) +} +netdump() +function netdump(){ + loading(true) + const NET_DUMP=["network.interface","dump",{}] + wanInterface=""; + ubus_call(NET_DUMP,function(chunk){ + if(chunk[0]==0){ + + InterfaceInfo=chunk[1].interface; + InterfaceInfo.forEach(element => { + if (element.interface == "wwan") { + if(element.up){ + updateStarlink("connect") + }else{ + updateStarlink("disconnect") + } + } + if (element.interface == "wan") { + if(element.up){ + updateIran("connect") + }else{ + updateIran("disconnect") + } + } + if (element.interface == "Guest") { + if(element.up){ + updateGuest("enable") + }else{ + updateGuest("disable") + } + } + }); + } + loading(false) + }); +} + +getConfig(); +async function getConfig(){ + var rawConfig = await async_lua_call("dragon.sh","infinite-reach-status") + var splitedConfig = rawConfig.split(" ") + if( splitedConfig[2] == "running" && splitedConfig[3]== "Connected"){ + updateReach("enable") + }else{ + updateReach("disable") + } +} \ No newline at end of file diff --git a/src/files/www/ethernet.html b/src/files/www/ethernet.html new file mode 100644 index 0000000..6576040 --- /dev/null +++ b/src/files/www/ethernet.html @@ -0,0 +1,129 @@ + + + + + + Step 2 + + + + + + + + + + + + +
+ +
+ +
+
Step 2: Connect NeighborLink to Iran Internet
+
+ +
+ + +
+ + + + + + +
+ +
+
+ +
+
+
+
+ Status: Disconnected +
+
+ _ +
+
+ +
+
+ +
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ +
+ + + \ No newline at end of file diff --git a/src/files/www/ethernet.js b/src/files/www/ethernet.js new file mode 100644 index 0000000..5f0c5f0 --- /dev/null +++ b/src/files/www/ethernet.js @@ -0,0 +1,53 @@ + + +const checkButton = document.getElementById('check-eth-btn'); +var testflag=true +checkButton.onclick = () =>{ + netdump(); +} + +const connectionStatus = document.getElementById("connection-status") +function changeStatus(theStatus,SSID) { + const textBox = connectionStatus.getElementsByTagName("strong")[0] + const ssidBox = connectionStatus.getElementsByTagName("strong")[1] + if(theStatus){ + textBox.textContent = "Status: Connected" + ssidBox.textContent = SSID + connectionStatus.classList.remove("alert-danger"); + connectionStatus.classList.add("alert-success"); + } + else{ + textBox.textContent = "Status: Disconnected" + ssidBox.textContent = "" + connectionStatus.classList.remove("alert-success"); + connectionStatus.classList.add("alert-danger"); + } + +} + + +netdump(); +function netdump(){ + loading(true) + const NET_DUMP=["network.interface","dump",{}] + wanInterface=""; + ubus_call(NET_DUMP,function(chunk){ + if(chunk[0]==0){ + + InterfaceInfo=chunk[1].interface; + InterfaceInfo.forEach(element => { + if (element.interface == "wan") { + wanInterface=element + console.log(element); + } + }); + } + if(wanInterface.up ){ + console.log("wanInterface") + changeStatus(wanInterface.up,wanInterface['ipv4-address'][0].address) + } + + loading(false) + + }); +} \ No newline at end of file diff --git a/src/files/www/favicon.ico b/src/files/www/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0e268943907899c4771c293c75f500539f8acb47 GIT binary patch literal 270398 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 Yf%*#6SD?NE^%bbEKz#-Nzh8m>3$D+>X#fBK literal 0 HcmV?d00001 diff --git a/src/files/www/firmware.html b/src/files/www/firmware.html new file mode 100644 index 0000000..add2e7c --- /dev/null +++ b/src/files/www/firmware.html @@ -0,0 +1,101 @@ + + + + + Firmware + + + + + + + + + + + +
+ +
+ +
+

Firmware Upgrade

+
+
+ + +
+ + + + + + +
+ +
+
+
+ + + +
+
+ +
+ +
+
+ +
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ +
+ + diff --git a/src/files/www/firmware.js b/src/files/www/firmware.js new file mode 100644 index 0000000..7a247f7 --- /dev/null +++ b/src/files/www/firmware.js @@ -0,0 +1,51 @@ +var checkUpdateButton = document.getElementById('check-update'); +var doUpdateButton = document.getElementById("do-update") + +checkUpdateButton.onclick = function(e){ + loading(true,"Checking for update") + const UPDATE_CHECK=["file","exec",{"command":"router_updater.sh","params":[ "Check" ]}]; + ubus_call(UPDATE_CHECK,function(chunk){ + loading(false) + if(chunk.length > 1){ + let responseTexMessage = chunk[1]["stdout"] + document.getElementById("update-notif").textContent = responseTexMessage + + if ( responseTexMessage.includes("different") ){ + doUpdateButton.classList.add('d-inline-block') + doUpdateButton.classList.remove('d-none') + } + else{ + doUpdateButton.classList.remove('d-inline-block') + doUpdateButton.classList.add('d-none') + } + } + else{ + document.getElementById("update-notif").textContent = "Connection failed" + } + + }) +} + +doUpdateButton.onclick = function(e){ + const UPDATE_DO=["file","exec",{"command":"router_updater.sh","params":[ "Do" ]}]; + const SYSUPGRADE_N=["file","exec",{"command":"router_updater.sh","params":[ "Upgrade" ]}]; + loading(true,"Preparing for upgrade") + ubus_call(UPDATE_DO,function(chunk){ + let responseTexMessage = chunk[1]["stdout"] + document.getElementById("update-notif").textContent = responseTexMessage + + if ( responseTexMessage.includes("Successfully") ){ + document.getElementById("update-notif").textContent = "Firmware Downloaded" + loading(true,"Upgrade firmware... > Please wait for 10 Minutes, Then reconncet to router and reload this page") + ubus_call(SYSUPGRADE_N,function(chunk){ + console.log( chunk ) + }) + } + else{ + document.getElementById("update-notif").textContent = "Firmware Download Failed" + loading(false) + } + + }) +} + diff --git a/src/files/www/guest.html b/src/files/www/guest.html new file mode 100644 index 0000000..d233959 --- /dev/null +++ b/src/files/www/guest.html @@ -0,0 +1,196 @@ + + + + + Step 4 + + + + + + + + + + + +
+ +
+ +
+
Step 4: Access for Neighbors
+
+ +
+ + +
+ + + + + + +
+ +

Stauts

+
+
+
Guest wifi status:
+
+
+ + +
+
+
+ +
+

Config

+
+
+
+
+
+
+ + +
Username only accept english charechter
+
+
+ + +
Password must be in english and has 8 characters .
+
+
+ +
+
+ +

User Management

+
+
+
+ +
+
+ + +

Statistics

+
+
+
+ + + + + + + + + + + + + + + +
Connected Devices: + +
Total Send: + +
Total Receive: + +
+
+
+ + + + + + + + +
Mac AddressUsage (MB)
+
+
+
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/guest.js b/src/files/www/guest.js new file mode 100644 index 0000000..defae9a --- /dev/null +++ b/src/files/www/guest.js @@ -0,0 +1,214 @@ +var guestWifiEnable = document.getElementById('guest-wifi-enable'); +var guestWifiEnableLabel = document.getElementById('guest-wifi-enable-label'); +var guestSsid = document.getElementById('guest-ssid'); +var guestPassword = document.getElementById('guest-password'); +var guestUpdate = document.getElementById('guest-update'); +var userManagement = document.getElementById('user-management'); +const otherParts = document.getElementById('other-parts') +const connectedDevice = document.getElementById('guest-connected-devices') +const totalSend = document.getElementById('guest-connected-total-send') +const totalReceive = document.getElementById('guest-connected-total-receive') +const connectedClientsList = document.getElementById('connected-clients-list'); + +function validateSSID(ssid) { + // Allowed characters: alphanumeric, space, and special characters ! . _ - () + const ssidRegex = /^[a-zA-Z0-9 !._\-()]+$/; + return ssidRegex.test(ssid); +} + +function validatePassword(password) { + // Allowed characters: any printable ASCII character + const passwordRegex = /^[\x20-\x7E]+$/; // ASCII range for printable characters (space to ~) + return passwordRegex.test(password); +} + +guestUpdate.onclick = async function(e){ + var newSSID = guestSsid.value; + var newPASS = guestPassword.value; + if( !validateSSID(newSSID) ){ + addCustomAlert("Error!","SSID has not acceptable charachter") + return + } + if( !validatePassword(newPASS) ){ + addCustomAlert("Error!","Password has not acceptable charachter") + return + } + loading(true,"Set Guest Wifi Info") + await async_lua_call("dragon.sh","guest-set "+newSSID+" "+newPASS) + await wifiInfo() +} + +function updateTable(count,send,receive) { + connectedDevice.textContent = count; + totalSend.textContent = send + totalReceive.textContent = receive +} + +function addConnectedClient(mac,total) { + + var tr = document.createElement('tr'); + var td1 = document.createElement('td'); + td1.textContent = mac; + var td2 = document.createElement('td'); + td2.textContent = parseInt(total); + + tr.append(td1, td2); + connectedClientsList.append(tr); +} +function clearClient(){ + connectedClientsList.innerHTML=''; +} + + +guestWifiEnable.onclick = async function(e){ + + setStatus(guestWifiEnable.checked) + if(guestWifiEnable.checked){ + loading(true,"Enabling Guest wifi") + await async_lua_call("dragon.sh","guest-on") + await wifiInfo(); + }else{ + loading(true,"Disabling Guest wifi") + await async_lua_call("dragon.sh","guest-off") + await wifiInfo(); + } + +} +function setStatus(status) { + if(status){ + guestWifiEnableLabel.textContent = "Enable"; + guestWifiEnable.checked = true; + otherParts.classList.add('d-block'); + otherParts.classList.remove('d-none'); + }else{ + guestWifiEnableLabel.textContent = "Disable"; + guestWifiEnable.checked = false; + otherParts.classList.remove('d-block'); + otherParts.classList.add('d-none'); + } +} + +userManagement.onclick = function(e){ + window.location.href = './management.html'; +} + +//netdump(); +function netdump(){ + loading(true) + const NET_DUMP=["network.interface","dump",{}] + wanInterface=""; + ubus_call(NET_DUMP,function(chunk){ + if(chunk[0]==0){ + + InterfaceInfo=chunk[1].interface; + InterfaceInfo.forEach(element => { + if (element.interface == "wwan") { + wanInterface=element + console.log(element); + } + }); + } + if(wanInterface.up ){ + console.log("wanInterface") + changeStatus(wanInterface.up,wanInterface['ipv4-address'][0].address) + } + + loading(false) + + }); +} + +wifiInfo() +async function wifiInfo(){ + loading(true) + const WIFI_INFO=["uci", "get", {"config":"wireless"}]; + var info = await async_ubus_call(WIFI_INFO); + var device_wifi_info = info[1].values + var guest_wifi_2g = device_wifi_info["guest_2g"] + + if(guest_wifi_2g && guest_wifi_2g.disabled == "0"){ + setStatus(true); + guestSsid.value = removeSubstring(guest_wifi_2g["ssid"],"-2g") + guestPassword.value = guest_wifi_2g["key"] + loading(false) + return + } + + var guest_wifi_5g = device_wifi_info["guest_5g"] + if(guest_wifi_5g && guest_wifi_5g.disabled == "0"){ + setStatus(true); + guestSsid.value = removeSubstring(guest_wifi_5g["ssid"],"-5g") + guestPassword.value = guest_wifi_5g["key"] + loading(false) + return + } + + setStatus(false); + loading(false) + return +} + +function addCustomAlert(title, message) { + const alertContainer = document.getElementById('alertContainer'); + + const alertDiv = document.createElement('div'); + alertDiv.className = 'alert alert-warning alert-dismissible fade show'; + alertDiv.role = 'alert'; + + const strongText = document.createElement('strong'); + strongText.innerText = title; + + const alertMessage = document.createTextNode(' ' + message); + + const closeButton = document.createElement('button'); + closeButton.type = 'button'; + closeButton.className = 'btn-close'; + closeButton.setAttribute('data-bs-dismiss', 'alert'); + closeButton.setAttribute('aria-label', 'Close'); + + alertDiv.appendChild(strongText); + alertDiv.appendChild(alertMessage); + alertDiv.appendChild(closeButton); + + alertContainer.appendChild(alertDiv); +} + + +async function guestClient() { + const GUEST_CLIENT=["hostapd.wlanguest_2g","get_clients",{}]; + const GUEST_CLIENT_5=["hostapd.wlanguest_5g","get_clients",{}]; + var chunk = await async_ubus_call(GUEST_CLIENT); + var clients = chunk[1]?.clients; + chunk = await async_ubus_call(GUEST_CLIENT_5) + var clients_5g = chunk[1]?.clients; + + var totalSend = 0; + var totalReceive = 0; + var totalClients = 0; + clearClient(); + for (var [key, value] of Object.entries(clients)) { + var sendBytes = value.bytes.rx + var reseiveBytes = value.bytes.tx + totalSend += sendBytes; + totalReceive += reseiveBytes; + totalClients++; + addConnectedClient(key,parseInt((reseiveBytes + sendBytes) / (1024 * 1024))) + } + for (var [key, value] of Object.entries(clients_5g)) { + var sendBytes = value.bytes.rx + var reseiveBytes = value.bytes.tx + totalSend += sendBytes; + totalReceive += reseiveBytes; + totalClients++; + addConnectedClient(key,parseInt((reseiveBytes + sendBytes) / (1024 * 1024))) + } + updateTable(totalClients,parseInt(totalSend / (1024 * 1024)) + ' MB', parseInt(totalReceive / (1024 * 1024)) + ' MB') + //document.getElementById('guest-connected-total-send').textContent = parseInt(totalSend / (1024 * 1024)) + ' MB'; + //document.getElementById('guest-connected-total-receive').textContent = parseInt(totalReceive / (1024 * 1024)) + ' MB'; + // text_deviceID.value=deviceInfo["remote"]["key"]; + // input_admin_pass.value=deviceInfo["device_admin"]["key"]; + +} +setInterval(() => { + guestClient() +}, 6000); \ No newline at end of file diff --git a/src/files/www/heartBeat.js b/src/files/www/heartBeat.js new file mode 100644 index 0000000..8d35c69 --- /dev/null +++ b/src/files/www/heartBeat.js @@ -0,0 +1,31 @@ +const toastLiveExample = document.getElementById('liveToast') +const toastBootstrap = bootstrap.Toast.getOrCreateInstance(toastLiveExample) +var toastShowCount = 0; +var isSet=false +function heartBeat() { + const Device_ID=["uci", "get", {"config":"routro"}]; + ubus_call(Device_ID,function(chunk){ + if(chunk[0] !== 0) { + toastBootstrap.show() + toastShowCount++ + } + else if(chunk[1]?.values?.firmware?.version){ + if(isSet==false){ + const versionSeen = localStorage.getItem("opr-version-seen"); + const currentVersion = chunk[1]?.values?.firmware?.version + if(currentVersion != versionSeen){ + localStorage.setItem("opr-dashboard-seen","false") + } + localStorage.setItem("opr-version-seen",chunk[1]?.values?.firmware?.version); + isSet=true; + } + } + if(toastShowCount >= 3) { + window.location.href = "index.html" + } + }, true); +} + +setInterval(() => { + heartBeat() +}, 5000); \ No newline at end of file diff --git a/src/files/www/index.css b/src/files/www/index.css new file mode 100644 index 0000000..5aa01e9 --- /dev/null +++ b/src/files/www/index.css @@ -0,0 +1,151 @@ +.login-container { + width: 100%; + display: flex; + overflow: auto; + min-height: 100vh; + align-items: center; + flex-direction: column; + justify-content: center; +} +.login-login-form { + width: 566px; + height: 317px; + display: flex; + align-self: center; + margin-top: var(--dl-space-space-twounits); + align-items: flex-start; + flex-direction: column; + justify-content: center; + background-color: #FFFFFF; +} +.login-title { + flex: 0 0 auto; + width: auto; + height: auto; + display: flex; + align-self: flex-start; + margin-top: 0px; + justify-content: center; +} +.login-icon { + fill: #7A3FDB; + width: 68px; + height: 51px; +} +.login-text { + color: rgb(122, 63, 219); + font-size: 40px; + align-self: flex-start; + font-style: normal; + font-family: Roboto; + font-weight: 700; +} +.login-form { + width: 100%; + height: 273px; + display: flex; + position: relative; + align-items: flex-start; + border-radius: 14px; + flex-direction: column; + background-color: #F3F3F3; +} +.login-text1 { + color: rgb(50, 53, 57); + font-size: 24px; + font-style: normal; + margin-top: var(--dl-space-space-twounits); + font-weight: 700; + line-height: 1; + margin-left: var(--dl-space-space-twounits); +} +.login-line { + width: 498px; + height: 5px; + display: flex; + align-self: center; + margin-top: 10px; + align-items: center; + margin-left: 0px; + border-color: rgba(120, 120, 120, 0.4); + border-style: solid; + border-width: 2px; + margin-right: 0px; + padding-left: 0px; + margin-bottom: 20px; + padding-right: 0px; + flex-direction: column; + border-top-width: 3px; + border-left-width: 0px; + border-right-width: 0px; + border-bottom-width: 0px; +} +.login-element { + width: 85%; + height: 108px; + display: flex; + align-self: center; + align-items: flex-start; + padding-top: var(--dl-space-space-unit); + flex-direction: column; + padding-bottom: var(--dl-space-space-unit); +} +.login-container1 { + flex: 0 0 auto; + width: auto; + height: auto; + display: flex; + align-items: flex-start; + justify-content: flex-start; +} +.login-title1 { + font-size: 22px; + font-family: Roboto; + margin-bottom: var(--dl-space-space-halfunit); +} +.login-textinput { + flex: 1; + width: 100%; + height: 55px; + font-size: 20px; + text-align: left; + font-family: Roboto; + line-height: 1; + padding-top: 5px; + border-style: hidden; + border-radius: var(--dl-radius-radius-radius8); + padding-bottom: 5px; +} +.login-button { + color: var(--dl-color-gray-white); + width: 155px; + font-size: 20px; + align-self: center; + text-align: center; + transition: 0.3s; + font-family: Roboto; + border-style: hidden; + border-radius: 25px; + background-color: #7a3fdb; +} +.login-button:hover { + cursor: pointer; +} +.login-text2 { + font-style: normal; + font-weight: 700; +} +.login-text5 { + display: none; + font-size: 14px; + margin-left: 48px; + text-decoration: underline; +} +@media(max-width: 479px) { + .login-login-form { + width: 450px; + } + .login-line { + width: 80%; + } +} diff --git a/src/files/www/index.html b/src/files/www/index.html new file mode 100644 index 0000000..a9af93d --- /dev/null +++ b/src/files/www/index.html @@ -0,0 +1,40 @@ + + + + + Login + + + + + + + +
+
+
+ + +
+
+

Authentication

+
+
+
+ + +
+
+ +
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/src/files/www/index.js b/src/files/www/index.js new file mode 100644 index 0000000..6634584 --- /dev/null +++ b/src/files/www/index.js @@ -0,0 +1,105 @@ +// let login_button=document.getElementById("button_loginBUTTON") +// let login_titlte=document.getElementById("text_loginTITLE") +let login_password_input=document.getElementById("password"); +//let login_form=document.getElementsByClassName("login-form")[0]; +var loginForm = document.getElementById('login-form'); + +loginForm.addEventListener('submit', loginfunction); + +//login_form.addEventListener('submit',loginfunction); +// login_button.onclick=function(){ +// loginfunction(); +// } + +function loginfunction(e){ + e.preventDefault(); + let password=login_password_input.value; + console.log(password); + login(password); +} + +// notif handling +var notifElement = document.getElementById('notif'); +var notifMessageContainer = document.getElementById('notif-message'); +var closeNotif = document.getElementById('close-notif'); +closeNotif.addEventListener('click', function() { notif(false); }); + +function notif(show, type, text) { + if(show) { + notifElement.removeAttribute('class'); + notifElement.classList.add("alert", "alert-"+type); + notifMessageContainer.textContent = text; + notifElement.style.display = "flex"; + } else { + notifElement.style.display = "none"; + } +} + + + + +function login(password){ + // login_titlte.style.color="#111111" + // login_titlte.textContent="Try to Login" + // open a POST request + let body={ + "jsonrpc": "2.0", + "id": 1, + "method": "call", + "params":[ + "00000000000000000000000000000000", + "session", + "login", + { + "username":"routro", + "password":password + } + ] + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var data = JSON.parse(xhr.responseText) + if( data["result"] ){ + if (data["result"][0]==0){ + let token=data["result"][1]["ubus_rpc_session"]; + if ( token.length > 10 ){ + console.log(token); + localStorage.setItem("routro_token",token); + login_password_input.value=""; + window.location.href = "./dashboard.html"; + } + }else{ + notif(true, 'danger', "Incorrect password!"); + // login_titlte.style.color="#EA6333" //Red + // login_titlte.textContent="Password incorrect"; + } + } + else{ + notif(true, 'warning', "Something Went Wrong!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } + console.log(data) + } else { + console.log("Login was failed"); + notif(true, 'danger', "Login was failed!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } + } + + xhr.onerror = function() { + console.log("Network error occurred"); + notif(true, 'danger', "Network error occurred!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } +} diff --git a/src/files/www/infinite_reach.html b/src/files/www/infinite_reach.html new file mode 100644 index 0000000..c3e1022 --- /dev/null +++ b/src/files/www/infinite_reach.html @@ -0,0 +1,145 @@ + + + + + Step 5 + + + + + + + + + + + +
+ +
+ +
+
Step 5:
Infinite Reach - Setup Access to Starlink via Iran Internet
+
+ +
+ + +
+ + + + + + +
+ + + + +

Infinite Reach Connection

+
+
+
+
+
+
+
+
+ Status: Disconnected +
+
+
+
+ +
+
+
+
+ +
+
+
+ Connection String + + +
+ + +
+
+
+ +
+

Outline Gate

+

Convert Global Outline config to use in Iran

+ setup +
+
+ +
+
+
+ +
+

HTTPS Proxy

+

Proxy configuration

+ setup +
+
+ +
+
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/infinite_reach.js b/src/files/www/infinite_reach.js new file mode 100644 index 0000000..0bc6c69 --- /dev/null +++ b/src/files/www/infinite_reach.js @@ -0,0 +1,166 @@ +const connectButton = document.getElementById("connect-btn") +const disconnectButton = document.getElementById("disconnect-btn") +const connectionString = document.getElementById("connection-string") + +connectButton.onclick = async function(e){ + showLoadingConnectButton(true) + var params = validateAndParse(connectionString.value) + if( params == false ) + { + addCustomAlert("Invalid String","Please make sure you copy the correct string, It should start with InR and end with @domain or @server_ip",10000) + showLoadingConnectButton(false) + return; + } + + var result=await async_lua_call("dragon.sh","infinite-reach-connect "+params["SERVER_IP"]+" "+params["DEFAULT_CHISEL_PORT"]+" "+params["INT_PORT1"]+" "+params["EXT_PORT2"]+" "+params["EXT_PORT1"]+" "+params["SERVER_IP_TYPE"]+" "+params["CLIENT_KEY"]+" "+params["PASSWORD"]) + var resultSplit = result.split(" "); + if ( resultSplit[0] == "running" && resultSplit[1] == "Connected" ){ + changeStatus(true,"Server://"+params["SERVER_IP"]) + // connectButton.classList.add("btn-success") + } + else{ + addCustomAlert("Somthing Went Wrong","Please try Agaign",6000) + } + showLoadingConnectButton(false) +} + +disconnectButton.onclick = async function(e){ + loading(true,"Disconnecting...",true); + var result=await async_lua_call("dragon.sh","infinite-reach-disconnect") + var resultSplit = result.split(" "); + if ( resultSplit[0] == "inactive"){ + changeStatus(false,"") + loading(false); + return; + } + addCustomAlert("Something Went Wrong", "Please make sure your iran internet is working and try agaign",5000) + loading(false); + +} + +getStatus_iReach(); +async function getStatus_iReach() { + loading(true,"Getting Status..."); + var result=await async_lua_call("dragon.sh","infinite-reach-status") + var resultSplit = result.split(" "); + if ( resultSplit[2] == "running" && resultSplit[3] == "Connected"){ + changeStatus(true,"Server://"+resultSplit[4]) + loading(false) + return + } + changeStatus(false); + loading(false); +} + +const connectionStatus = document.getElementById("connection-status") +function changeStatus(theStatus,underText) { + const textBox = connectionStatus.getElementsByTagName("strong")[0] + const ssidBox = connectionStatus.getElementsByTagName("strong")[1] + if(theStatus){ + textBox.textContent = "Status: Connected" + ssidBox.textContent = underText + connectionStatus.classList.remove("alert-danger"); + connectionStatus.classList.add("alert-success"); + disconnectButton.classList.remove("d-none") + document.getElementById("config-cards").classList.remove("d-none") + document.getElementById("connection-section").classList.add("d-none") + } + else{ + textBox.textContent = "Status: Disconnected" + ssidBox.textContent = "" + connectionStatus.classList.remove("alert-success"); + connectionStatus.classList.add("alert-danger"); + disconnectButton.classList.add("d-none"); + document.getElementById("config-cards").classList.add("d-none") + document.getElementById("connection-section").classList.remove("d-none") + } + +} + + + +const showLoadingConnectButton = (show) => { + document.querySelector('#connect-btn > span').style.display = show ? 'none' : 'inline'; + document.querySelector('#connect-btn > div').style.display = show ? 'inline-block' : 'none'; +} +/** + * Validate and parse the input string. + * @param {string} input - The input string to validate. + * @returns {Object|boolean} - Returns a JSON object with key-value pairs if valid, otherwise false. + */ +function validateAndParse(input) { + // Define regex for the input format + const regex = /^InRe:([^:]+):([^:]+):(\d+):(\d+):(\d+):(\d+):(\d+)@([a-zA-Z0-9.-]+)$/; + + // Test if input matches the format + const match = input.match(regex); + if (!match) return false; + + // Extract variables from the match + const [ + , // Full match is ignored + CLIENT_KEY, PASSWORD, DEFAULT_CHISEL_PORT, EXT_PORT1, INT_PORT1, EXT_PORT2, INT_PORT2, SERVER_IP + ] = match; + + // Convert port values to numbers + const ports = [DEFAULT_CHISEL_PORT, EXT_PORT1, INT_PORT1, EXT_PORT2, INT_PORT2].map(Number); + + // Check if all port values are numbers + if (ports.some(isNaN)) return false; + + // Determine if SERVER_IP is a domain, IPv4, or IPv6 + let serverIpType = null; + if (isIPv4(SERVER_IP)) { + serverIpType = "IPv4"; + } else if (isIPv6(SERVER_IP)) { + serverIpType = "IPv6"; + } else if (isDomain(SERVER_IP)) { + serverIpType = "domain"; + } else { + return false; // Invalid SERVER_IP format + } + + // Return the JSON object with the extracted values + return { + CLIENT_KEY, + PASSWORD, + DEFAULT_CHISEL_PORT: ports[0], + EXT_PORT1: ports[1], + INT_PORT1: ports[2], + EXT_PORT2: ports[3], + INT_PORT2: ports[4], + SERVER_IP, + SERVER_IP_TYPE: serverIpType + }; + } + + /** + * Check if the input is a valid IPv4 address. + * @param {string} ip - The input to check. + * @returns {boolean} - True if valid IPv4, false otherwise. + */ + function isIPv4(ip) { + const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; + return ipv4Regex.test(ip); + } + + /** + * Check if the input is a valid IPv6 address. + * @param {string} ip - The input to check. + * @returns {boolean} - True if valid IPv6, false otherwise. + */ + function isIPv6(ip) { + const ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; + return ipv6Regex.test(ip); + } + + /** + * Check if the input is a valid domain name. + * @param {string} domain - The input to check. + * @returns {boolean} - True if valid domain, false otherwise. + */ + function isDomain(domain) { + const domainRegex = /^([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$/; + return domainRegex.test(domain); + } + diff --git a/src/files/www/loading.js b/src/files/www/loading.js new file mode 100644 index 0000000..7d5df6d --- /dev/null +++ b/src/files/www/loading.js @@ -0,0 +1,107 @@ +function loading(show,message,errorStyle) { + + document.getElementById('overlay').style.display = show ? 'flex' : 'none'; + var message_element = document.getElementById('overlay_message'); + + if(errorStyle) + { + message_element.classList.add("text-danger") + message_element.classList.remove("text-light") + } + else{ + message_element.classList.remove("text-danger") + message_element.classList.add("text-light") + } + if (message){ + message_element.textContent = message; + }else{ + message_element.textContent = "Loading ..."; + } +} + + +function removeSubstring ( mainStr , substringToRemove ){ + var mainString = mainStr + // Check if the mainString ends with the substringToRemove + if (mainString.endsWith(substringToRemove)) { + // Get the length of the substringToRemove + let substringLength = substringToRemove.length; + // Remove the substring from the end of the mainString using slice() + mainString = mainString.slice(0, -substringLength); + } + + return mainString +} + +document.addEventListener("DOMContentLoaded", function() { + const urlParams = new URLSearchParams(window.location.search); + if (urlParams.has('ref') && urlParams.get('ref') === 'dashboard') { + const previousButtonText = document.getElementById('back-btn-text'); + previousButtonText.textContent = 'Back to Dashboard'; + const previousButtonhref = document.getElementById('back-btn-href'); + previousButtonhref.href = 'dashboard.html'; + } +}) + +function addCustomAlert(title, message, visibilityTime) { + const alertContainer = document.getElementById('alertContainer'); + + const alertDiv = document.createElement('div'); + alertDiv.className = 'alert alert-warning alert-dismissible fade show'; + alertDiv.role = 'alert'; + + // Title on its own line + const strongText = document.createElement('strong'); + strongText.innerText = title; + strongText.style.display = 'block'; // Make title a block element to appear on a new line + + // Message on its own line + const alertMessage = document.createElement('span'); + alertMessage.innerText = message; + alertMessage.style.display = 'block'; // Make message a block element to appear on a new line + alertMessage.style.marginTop = '5px'; // Optional: Adds some spacing between title and message + + // Container for close button and countdown text + const buttonContainer = document.createElement('div'); + buttonContainer.style.display = 'flex'; + buttonContainer.style.flexDirection = 'column'; + buttonContainer.style.alignItems = 'flex-end'; // Aligns items to the right + + const closeButton = document.createElement('button'); + closeButton.type = 'button'; + closeButton.className = 'btn-close'; + closeButton.setAttribute('data-bs-dismiss', 'alert'); + closeButton.setAttribute('aria-label', 'Close'); + + const countdownSpan = document.createElement('span'); + countdownSpan.style.fontSize = '0.8em'; // Smaller font size for the countdown + countdownSpan.style.marginTop = '5px'; // Adds a little space between button and countdown + let countdown = Math.floor((visibilityTime || 20000) / 1000); // Convert visibility time to seconds + countdownSpan.innerText = `(${countdown})`; + + buttonContainer.appendChild(closeButton); + buttonContainer.appendChild(countdownSpan); + + alertDiv.appendChild(strongText); // Append title + alertDiv.appendChild(alertMessage); // Append message + alertDiv.appendChild(buttonContainer); // Add the button container to the alert + + alertContainer.appendChild(alertDiv); + + // Update the countdown every second + const interval = setInterval(() => { + countdown--; + countdownSpan.innerText = `( ${countdown} )`; + + if (countdown <= 0) { + clearInterval(interval); // Stop the interval when countdown is 0 + } + }, 1000); + + // Remove the alert after the specified visibility time + setTimeout(() => { + alertDiv.classList.remove('show'); // Hides the alert + alertDiv.classList.add('fade'); // Optional: adds fade-out effect + setTimeout(() => alertDiv.remove(), 500); // Removes it after fade out + }, visibilityTime || 20000); +} diff --git a/src/files/www/management.css b/src/files/www/management.css new file mode 100644 index 0000000..7c52023 --- /dev/null +++ b/src/files/www/management.css @@ -0,0 +1,119 @@ +body { + font-family: Arial, sans-serif; + background-color: #f2f2f2; + margin: 0; + padding: 20px; + display: flex; + flex-direction: column; +} + +h1 { + background-color: #333; + color: #fff; + padding: 20px; + text-align: center; +} + +h2 { + margin-top: 20px; +} + +table { + width: 80%; + margin: 20px auto; + border-collapse: collapse; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +th, td { + padding: 10px; + text-align: center; +} + +th { + background-color: #333; + color: #fff; +} + +tr:nth-child(even) { + background-color: #f2f2f2; +} + +tr:nth-child(odd) { + background-color: #ddd; +} + +button { + background-color: #333; + color: #fff; + border: none; + padding: 5px 10px; + cursor: pointer; + margin-right: 5px; +} + +button:hover { + background-color: #555; +} + +form { + width: 80%; + margin: 20px auto; + background-color: #fff; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +label, input, select { + display: block; + margin: 10px 0; +} + +input[type="text"], input[type="password"] { + width: 95%; + padding: 10px; +} + +input[type="radio"] { + margin: 5px 5px 5px 0; +} + +select { + width: 100%; + padding: 10px; +} + +button[type="submit"] { + background-color: #333; + color: #fff; + border: none; + padding: 10px 20px; + cursor: pointer; +} + +button[type="CTA"] { + background-color: #0e572f; + color: #fff; + border: none; + padding: 10px 20px; + cursor: pointer; + margin-right: 10px; +} + +button[type="submit"]:hover { + background-color: #555; +} + +.blocking { + display: flex; + flex-direction: row; + align-items: center; +} + +.something { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/src/files/www/management.html b/src/files/www/management.html new file mode 100644 index 0000000..c22fed0 --- /dev/null +++ b/src/files/www/management.html @@ -0,0 +1,80 @@ + + + + + Dashboard + + + + + + +
+
+
+ + + + Back to Dashboard + +

User Management

+
+
+
+ + +
+
+ + +
+ + +
+
+ + + + + + + + + + +
#UsernameActions
+ +
+
+
+
+
+ Loading... +
+
+ + + + + + + \ No newline at end of file diff --git a/src/files/www/management.js b/src/files/www/management.js new file mode 100644 index 0000000..d69f039 --- /dev/null +++ b/src/files/www/management.js @@ -0,0 +1,257 @@ + +// JSON object for users +let users = [ + { + username: 'loading ...', + password: 'loading ...', + } +] +let fetch_users= [] +var ubus_call_id=1 +var token=localStorage.getItem("routro_token"); + +function ubus_call(params,cb){ + + ubus_call_id++; + var body={ + "jsonrpc": "2.0", + "id": ubus_call_id, + "method": "call", + "params":[ + token + ] + } + for (param of params){ + body["params"].push(param); + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var resBody = JSON.parse(xhr.responseText); + + if (resBody["result"]){ + cb(resBody["result"]); + } + + else{ + console.log(resBody) + if(resBody["error"]?.["code"] == -32002){ + window.location.href = "index.html"; + } + } + } + else { + console.log("XHR was failed") + } + } + xhr.onerror = function() { + loading(false); + console.log("Network error occurred") + } +} + + +function transformValuesToObject(values) { + const users = []; + + for (const key in values) { + const user = { + username: key, + password: values[key].password, // Assuming the password is the same as the username + }; + + users.push(user); + } + + return users; +} + +// const inputValues = { +// "captive": { +// ".anonymous": false, +// ".type": "users", +// ".name": "captive", +// ".index": 0, +// "username": "password", +// "block": true +// }, +// "captive2": { +// ".anonymous": false, +// ".type": "users", +// ".name": "captive", +// ".index": 0, +// "username": "password2" +// } +// }; + + +// Function to render the user list +function renderUserList() { + const userList = document.getElementById('userList'); + userList.innerHTML = ''; + users.forEach((user, index) => { + const row = document.createElement('tr'); + row.innerHTML = ` + ${index+1} + ${user.username} + + + + + `; + userList.appendChild(row); + }); +} + +// Function to edit a user +function editUser(username) { + // Find the user by username + const user = users.find(u => u.username === username); + if (user) { + // Populate the form fields with user data + document.getElementById('newUsername').value = user.username; + document.getElementById('newPassword').value = user.password; + document.getElementById('modify-user-btn').value = "Update User"; + } +} + +// Function to delete a user +function deleteUser(btn) { + const username = btn.getAttribute('data-username'); + // Find the user index by username + const userIndex = users.findIndex(u => u.username === username); + if (userIndex !== -1) { + // Remove the user from the array + users.splice(userIndex, 1); + // Update the user list + renderUserList(); + } + SaveIN(); + myModal.hide(); +} + +const myModal = new bootstrap.Modal(document.getElementById('confirmModal')); +function deleteUserModal(username) { + document.getElementById('modal-username').innerText = username; + document.getElementById('modal-delete-btn').setAttribute('data-username', username); + myModal.show(); +} + +// Function to add a user +function addUser() { + const newUsername = document.getElementById('newUsername').value; + const newPassword = document.getElementById('newPassword').value; + + // Check for duplicate username + const existingUser = users.find(u => u.username === newUsername); + if (existingUser) { + // Replace the existing user's data + existingUser.password = newPassword; + } else { + // Add the new user + users.push({ + username: newUsername, + password: newPassword + }); + } + + // Update the user list + // renderUserList(); + // Clear the input fields + document.getElementById('newUsername').value = ''; + document.getElementById('newPassword').value = ''; + document.getElementById('modify-user-btn').value = "Add User"; + SaveIN(); +} + +function resetForm() { + document.getElementById('modify-user-btn').value = "Add User"; +} + +const UCI_GET_USERS=["uci", "get", {"config":"users"}] +const UCI_SET_USERS=["uci", "set", {"config":"users"}] +const UCI_ADD_USERS=["uci", "add", {"config":"users"}] +const UCI_DEL_USERS=["uci", "delete", {"config":"users"}] +const UCI_COMMIT=["uci", "commit", {"config":"---"}]; + +// Function to read data +function reloadData() { + ubus_call(UCI_GET_USERS,function(chunk){ + console.log(chunk[1]); + if(chunk[1]){ + users = transformValuesToObject(chunk[1]["values"]); + fetch_users = Object.assign([],users); + renderUserList(); + console.log(users); + } + }) +} + +function SaveIN(){ + users.forEach(element => { + + var new_param = []; + + var params = { + "values" : { + password: element.password } + } + + if ( isUsernameInArray(element.username,fetch_users) ){ + params["section"] = element.username; + new_param = UCI_SET_USERS; + }else{ + params["type"] = "users"; + params["name"] = element.username; + new_param = UCI_ADD_USERS; + } + + new_param[2] = Object.assign(new_param[2],params); + + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + }); + + fetch_users.forEach(element => { + if(!isUsernameInArray(element.username,users)){ + var new_param = UCI_DEL_USERS; + var params = { + "section":element.username + } + new_param[2] = Object.assign(new_param[2],params); + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + } + }) + + renderUserList(); +} +function isUsernameInArray(usernameToCheck, arrayToSearch) { + return arrayToSearch.some(item => item.username === usernameToCheck); +} +// Initial rendering of user list +reloadData() +//renderUserList(); \ No newline at end of file diff --git a/src/files/www/old-dashboard/bootstrap.bundle.min.js b/src/files/www/old-dashboard/bootstrap.bundle.min.js new file mode 100644 index 0000000..e8f21f7 --- /dev/null +++ b/src/files/www/old-dashboard/bootstrap.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return n(e)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/src/files/www/old-dashboard/bootstrap.min.css b/src/files/www/old-dashboard/bootstrap.min.css new file mode 100644 index 0000000..a89937c --- /dev/null +++ b/src/files/www/old-dashboard/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#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-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--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:#c4c8cb;--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-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-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(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-heading-color:inherit;--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-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--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:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::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)}.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;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-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg: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;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#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);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-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-secondary-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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#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-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{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-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(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;-webkit-appearance:none;appearance:none;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}@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;-moz-appearance:none;appearance:none;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}@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>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .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{color:rgba(var(--bs-body-color-rgb),.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{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:var(--bs-border-radius)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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-form-valid-border-color);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-form-valid-border-color)}.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-form-valid-border-color);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-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.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-form-valid-color)}.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-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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-form-invalid-border-color);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-form-invalid-border-color)}.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-form-invalid-border-color);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-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.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-form-invalid-color)}.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:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: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:0 0 0 #000;--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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 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:var(--bs-tertiary-color);--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:var(--bs-border-radius)}.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;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.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:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-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:var(--bs-border-radius);--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 .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a: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,.navbar[data-bs-theme=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-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.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);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;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='%23052c65'%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-emphasis);--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:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: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-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(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(0, 0, 0, 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(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-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;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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg: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%}.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,[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],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-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(0, 0, 0, 0.075);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.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%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.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%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.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%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.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%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.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(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-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){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-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-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-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-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-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-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-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-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-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-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-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-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-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-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-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-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-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-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-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-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-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/files/www/old-dashboard/dash.html b/src/files/www/old-dashboard/dash.html new file mode 100644 index 0000000..0ae1649 --- /dev/null +++ b/src/files/www/old-dashboard/dash.html @@ -0,0 +1,194 @@ + + + + + Dashboard + + + + + + + +
+
+
+ + + +
+ +
+

+ +

+
+
+
+
+
+ + + + + + + + + + + +
Network Interface: + +
Status: + +
+
+
+ + + + + + + + + + + +
IP: + +
Gateway: + +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + +
+
+
+ + +
+

+ +

+
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ Loading... +
+
+ Loading... +
+
+
+ +
+ + \ No newline at end of file diff --git a/src/files/www/old-dashboard/dashboard.html b/src/files/www/old-dashboard/dashboard.html new file mode 100644 index 0000000..3ceafc3 --- /dev/null +++ b/src/files/www/old-dashboard/dashboard.html @@ -0,0 +1,424 @@ + + + + + Dashboard + + + + + + + +
+
+
+ + + +
+ +
+

+ +

+
+
+
+
+
+ + + + + + + + + + + +
Network Interface: + +
Status: + +
+
+
+ + + + + + + + + + + +
IP: + +
Gateway: + +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+ + + + +
+
+
+ + +
+

+ +

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

+ +

+
+
+ +
+
+ + +
+
+
+ + +
+
+ + +
Your password must be 8-20 characters long. Also, You can leave it empty.
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + +
Connected Devices: + +
Total Send: + +
Total Receive: + +
+
+
+
+
+ + + + + + + + + + + +
Mac AddressUsage (MB)SignalUploadDownload
+
+
+
+
+
+ + +
+

+ +

+
+
+
+ +
+ + +
+
+
+ + +
Your password must be 8-20 characters long.
+
+
+ + +
+
+ + +
Your password must be 8-20 characters long.
+
+ + +
+
+
+ + + +
+

+ +

+
+
+
+ + +
+
+ +
+ +
+
+
+ +
+
+
+
+
+
+ Loading... +
+
+ Loading... +
+
+
+ +
+ + \ No newline at end of file diff --git a/src/files/www/old-dashboard/index.css b/src/files/www/old-dashboard/index.css new file mode 100644 index 0000000..5aa01e9 --- /dev/null +++ b/src/files/www/old-dashboard/index.css @@ -0,0 +1,151 @@ +.login-container { + width: 100%; + display: flex; + overflow: auto; + min-height: 100vh; + align-items: center; + flex-direction: column; + justify-content: center; +} +.login-login-form { + width: 566px; + height: 317px; + display: flex; + align-self: center; + margin-top: var(--dl-space-space-twounits); + align-items: flex-start; + flex-direction: column; + justify-content: center; + background-color: #FFFFFF; +} +.login-title { + flex: 0 0 auto; + width: auto; + height: auto; + display: flex; + align-self: flex-start; + margin-top: 0px; + justify-content: center; +} +.login-icon { + fill: #7A3FDB; + width: 68px; + height: 51px; +} +.login-text { + color: rgb(122, 63, 219); + font-size: 40px; + align-self: flex-start; + font-style: normal; + font-family: Roboto; + font-weight: 700; +} +.login-form { + width: 100%; + height: 273px; + display: flex; + position: relative; + align-items: flex-start; + border-radius: 14px; + flex-direction: column; + background-color: #F3F3F3; +} +.login-text1 { + color: rgb(50, 53, 57); + font-size: 24px; + font-style: normal; + margin-top: var(--dl-space-space-twounits); + font-weight: 700; + line-height: 1; + margin-left: var(--dl-space-space-twounits); +} +.login-line { + width: 498px; + height: 5px; + display: flex; + align-self: center; + margin-top: 10px; + align-items: center; + margin-left: 0px; + border-color: rgba(120, 120, 120, 0.4); + border-style: solid; + border-width: 2px; + margin-right: 0px; + padding-left: 0px; + margin-bottom: 20px; + padding-right: 0px; + flex-direction: column; + border-top-width: 3px; + border-left-width: 0px; + border-right-width: 0px; + border-bottom-width: 0px; +} +.login-element { + width: 85%; + height: 108px; + display: flex; + align-self: center; + align-items: flex-start; + padding-top: var(--dl-space-space-unit); + flex-direction: column; + padding-bottom: var(--dl-space-space-unit); +} +.login-container1 { + flex: 0 0 auto; + width: auto; + height: auto; + display: flex; + align-items: flex-start; + justify-content: flex-start; +} +.login-title1 { + font-size: 22px; + font-family: Roboto; + margin-bottom: var(--dl-space-space-halfunit); +} +.login-textinput { + flex: 1; + width: 100%; + height: 55px; + font-size: 20px; + text-align: left; + font-family: Roboto; + line-height: 1; + padding-top: 5px; + border-style: hidden; + border-radius: var(--dl-radius-radius-radius8); + padding-bottom: 5px; +} +.login-button { + color: var(--dl-color-gray-white); + width: 155px; + font-size: 20px; + align-self: center; + text-align: center; + transition: 0.3s; + font-family: Roboto; + border-style: hidden; + border-radius: 25px; + background-color: #7a3fdb; +} +.login-button:hover { + cursor: pointer; +} +.login-text2 { + font-style: normal; + font-weight: 700; +} +.login-text5 { + display: none; + font-size: 14px; + margin-left: 48px; + text-decoration: underline; +} +@media(max-width: 479px) { + .login-login-form { + width: 450px; + } + .login-line { + width: 80%; + } +} diff --git a/src/files/www/old-dashboard/index.html b/src/files/www/old-dashboard/index.html new file mode 100644 index 0000000..55cedfa --- /dev/null +++ b/src/files/www/old-dashboard/index.html @@ -0,0 +1,45 @@ + + + + + Dashboard + + + + + + + +
+
+
+ + + +
+
+ +

Login

+
+
+
+ + +
+
+ +
+
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/src/files/www/old-dashboard/index.js b/src/files/www/old-dashboard/index.js new file mode 100644 index 0000000..6634584 --- /dev/null +++ b/src/files/www/old-dashboard/index.js @@ -0,0 +1,105 @@ +// let login_button=document.getElementById("button_loginBUTTON") +// let login_titlte=document.getElementById("text_loginTITLE") +let login_password_input=document.getElementById("password"); +//let login_form=document.getElementsByClassName("login-form")[0]; +var loginForm = document.getElementById('login-form'); + +loginForm.addEventListener('submit', loginfunction); + +//login_form.addEventListener('submit',loginfunction); +// login_button.onclick=function(){ +// loginfunction(); +// } + +function loginfunction(e){ + e.preventDefault(); + let password=login_password_input.value; + console.log(password); + login(password); +} + +// notif handling +var notifElement = document.getElementById('notif'); +var notifMessageContainer = document.getElementById('notif-message'); +var closeNotif = document.getElementById('close-notif'); +closeNotif.addEventListener('click', function() { notif(false); }); + +function notif(show, type, text) { + if(show) { + notifElement.removeAttribute('class'); + notifElement.classList.add("alert", "alert-"+type); + notifMessageContainer.textContent = text; + notifElement.style.display = "flex"; + } else { + notifElement.style.display = "none"; + } +} + + + + +function login(password){ + // login_titlte.style.color="#111111" + // login_titlte.textContent="Try to Login" + // open a POST request + let body={ + "jsonrpc": "2.0", + "id": 1, + "method": "call", + "params":[ + "00000000000000000000000000000000", + "session", + "login", + { + "username":"routro", + "password":password + } + ] + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var data = JSON.parse(xhr.responseText) + if( data["result"] ){ + if (data["result"][0]==0){ + let token=data["result"][1]["ubus_rpc_session"]; + if ( token.length > 10 ){ + console.log(token); + localStorage.setItem("routro_token",token); + login_password_input.value=""; + window.location.href = "./dashboard.html"; + } + }else{ + notif(true, 'danger', "Incorrect password!"); + // login_titlte.style.color="#EA6333" //Red + // login_titlte.textContent="Password incorrect"; + } + } + else{ + notif(true, 'warning', "Something Went Wrong!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } + console.log(data) + } else { + console.log("Login was failed"); + notif(true, 'danger', "Login was failed!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } + } + + xhr.onerror = function() { + console.log("Network error occurred"); + notif(true, 'danger', "Network error occurred!"); + // login_titlte.style.color="#EA9A33" //Orange + // login_titlte.textContent="Something Went Wrong"; + } +} diff --git a/src/files/www/old-dashboard/index_backup.html b/src/files/www/old-dashboard/index_backup.html new file mode 100644 index 0000000..1ec2cef --- /dev/null +++ b/src/files/www/old-dashboard/index_backup.html @@ -0,0 +1,91 @@ + + + + Device Login Page + + + + + + + + + + + + +
+ + + +
+ + + diff --git a/src/files/www/old-dashboard/management.css b/src/files/www/old-dashboard/management.css new file mode 100644 index 0000000..7c52023 --- /dev/null +++ b/src/files/www/old-dashboard/management.css @@ -0,0 +1,119 @@ +body { + font-family: Arial, sans-serif; + background-color: #f2f2f2; + margin: 0; + padding: 20px; + display: flex; + flex-direction: column; +} + +h1 { + background-color: #333; + color: #fff; + padding: 20px; + text-align: center; +} + +h2 { + margin-top: 20px; +} + +table { + width: 80%; + margin: 20px auto; + border-collapse: collapse; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +th, td { + padding: 10px; + text-align: center; +} + +th { + background-color: #333; + color: #fff; +} + +tr:nth-child(even) { + background-color: #f2f2f2; +} + +tr:nth-child(odd) { + background-color: #ddd; +} + +button { + background-color: #333; + color: #fff; + border: none; + padding: 5px 10px; + cursor: pointer; + margin-right: 5px; +} + +button:hover { + background-color: #555; +} + +form { + width: 80%; + margin: 20px auto; + background-color: #fff; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +label, input, select { + display: block; + margin: 10px 0; +} + +input[type="text"], input[type="password"] { + width: 95%; + padding: 10px; +} + +input[type="radio"] { + margin: 5px 5px 5px 0; +} + +select { + width: 100%; + padding: 10px; +} + +button[type="submit"] { + background-color: #333; + color: #fff; + border: none; + padding: 10px 20px; + cursor: pointer; +} + +button[type="CTA"] { + background-color: #0e572f; + color: #fff; + border: none; + padding: 10px 20px; + cursor: pointer; + margin-right: 10px; +} + +button[type="submit"]:hover { + background-color: #555; +} + +.blocking { + display: flex; + flex-direction: row; + align-items: center; +} + +.something { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/src/files/www/old-dashboard/management.html b/src/files/www/old-dashboard/management.html new file mode 100644 index 0000000..cfdbfa5 --- /dev/null +++ b/src/files/www/old-dashboard/management.html @@ -0,0 +1,117 @@ + + + + + Dashboard + + + + + + +
+
+
+ + + + Back to Dashboard + +

Remote Access

+
+ + + + + + + + + + + + + + + + + +
Host: + domain.com +
Port: + 3000 +
Username: + myuser +
Password: + 123456 +
+
+ +

User Management

+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + +
#UsernameBlock Internet AccessActions
+ +
+
+
+
+
+ Loading... +
+
+ + + + + + + \ No newline at end of file diff --git a/src/files/www/old-dashboard/management.js b/src/files/www/old-dashboard/management.js new file mode 100644 index 0000000..9602f3e --- /dev/null +++ b/src/files/www/old-dashboard/management.js @@ -0,0 +1,267 @@ + +// JSON object for users +let users = [ + { + username: 'loading ...', + password: 'loading ...', + blockInternetAccess: false, + } +] +let fetch_users= [] +var ubus_call_id=1 +var token=localStorage.getItem("routro_token"); + +function ubus_call(params,cb){ + + ubus_call_id++; + var body={ + "jsonrpc": "2.0", + "id": ubus_call_id, + "method": "call", + "params":[ + token + ] + } + for (param of params){ + body["params"].push(param); + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var resBody = JSON.parse(xhr.responseText); + + if (resBody["result"]){ + cb(resBody["result"]); + } + + else{ + console.log(resBody) + if(resBody["error"]?.["code"] == -32002){ + window.location.href = "index.html"; + } + } + } + else { + console.log("XHR was failed") + } + } + xhr.onerror = function() { + loading(false); + console.log("Network error occurred") + } +} + + +function transformValuesToObject(values) { + const users = []; + + for (const key in values) { + const user = { + username: key, + password: values[key].password, // Assuming the password is the same as the username + blockInternetAccess: values[key].block || false, + }; + + users.push(user); + } + + return users; +} + +// const inputValues = { +// "captive": { +// ".anonymous": false, +// ".type": "users", +// ".name": "captive", +// ".index": 0, +// "username": "password", +// "block": true +// }, +// "captive2": { +// ".anonymous": false, +// ".type": "users", +// ".name": "captive", +// ".index": 0, +// "username": "password2" +// } +// }; + + +// Function to render the user list +function renderUserList() { + const userList = document.getElementById('userList'); + userList.innerHTML = ''; + users.forEach((user, index) => { + const row = document.createElement('tr'); + row.innerHTML = ` + ${index+1} + ${user.username} + ${user.blockInternetAccess == 1 ? 'Yes' : 'No'} + + + + + `; + userList.appendChild(row); + }); +} + +// Function to edit a user +function editUser(username) { + // Find the user by username + const user = users.find(u => u.username === username); + if (user) { + // Populate the form fields with user data + document.getElementById('newUsername').value = user.username; + document.getElementById('newPassword').value = user.password; + document.querySelector('input[name="blockInternetAccess"]').checked = user.blockInternetAccess == 1; + document.getElementById('modify-user-btn').value = "Update User"; + } +} + +// Function to delete a user +function deleteUser(btn) { + const username = btn.getAttribute('data-username'); + // Find the user index by username + const userIndex = users.findIndex(u => u.username === username); + if (userIndex !== -1) { + // Remove the user from the array + users.splice(userIndex, 1); + // Update the user list + renderUserList(); + } + SaveIN(); + myModal.hide(); +} + +const myModal = new bootstrap.Modal(document.getElementById('confirmModal')); +function deleteUserModal(username) { + document.getElementById('modal-username').innerText = username; + document.getElementById('modal-delete-btn').setAttribute('data-username', username); + myModal.show(); +} + +// Function to add a user +function addUser() { + const newUsername = document.getElementById('newUsername').value; + const newPassword = document.getElementById('newPassword').value; + const blockInternetAccess = document.querySelector('input[name="blockInternetAccess"]').checked; + + // Check for duplicate username + const existingUser = users.find(u => u.username === newUsername); + if (existingUser) { + // Replace the existing user's data + existingUser.password = newPassword; + existingUser.blockInternetAccess = blockInternetAccess; + } else { + // Add the new user + users.push({ + username: newUsername, + password: newPassword, + blockInternetAccess: blockInternetAccess, + }); + } + + // Update the user list + // renderUserList(); + // Clear the input fields + document.getElementById('newUsername').value = ''; + document.getElementById('newPassword').value = ''; + document.getElementById('blockInternetAccess').checked = false; + document.getElementById('modify-user-btn').value = "Add User"; + SaveIN(); +} + +function resetForm() { + document.getElementById('modify-user-btn').value = "Add User"; +} + +const UCI_GET_USERS=["uci", "get", {"config":"users"}] +const UCI_SET_USERS=["uci", "set", {"config":"users"}] +const UCI_ADD_USERS=["uci", "add", {"config":"users"}] +const UCI_DEL_USERS=["uci", "delete", {"config":"users"}] +const UCI_COMMIT=["uci", "commit", {"config":"---"}]; + +// Function to read data +function reloadData() { + ubus_call(UCI_GET_USERS,function(chunk){ + console.log(chunk[1]); + if(chunk[1]){ + users = transformValuesToObject(chunk[1]["values"]); + fetch_users = Object.assign([],users); + renderUserList(); + console.log(users); + } + }) +} + +function SaveIN(){ + users.forEach(element => { + + var new_param = []; + + var params = { + "values" : { + password: element.password, + block: element.blockInternetAccess + } + } + + if ( isUsernameInArray(element.username,fetch_users) ){ + params["section"] = element.username; + new_param = UCI_SET_USERS; + }else{ + params["type"] = "users"; + params["name"] = element.username; + new_param = UCI_ADD_USERS; + } + + new_param[2] = Object.assign(new_param[2],params); + + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + }); + + fetch_users.forEach(element => { + if(!isUsernameInArray(element.username,users)){ + var new_param = UCI_DEL_USERS; + var params = { + "section":element.username + } + new_param[2] = Object.assign(new_param[2],params); + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + } + }) + + renderUserList(); +} +function isUsernameInArray(usernameToCheck, arrayToSearch) { + return arrayToSearch.some(item => item.username === usernameToCheck); +} +// Initial rendering of user list +reloadData() +//renderUserList(); \ No newline at end of file diff --git a/src/files/www/old-dashboard/management_backup.html b/src/files/www/old-dashboard/management_backup.html new file mode 100644 index 0000000..7f6acf9 --- /dev/null +++ b/src/files/www/old-dashboard/management_backup.html @@ -0,0 +1,50 @@ + + + + User Management + + + +

User Management

+ + + +

User List

+ + + + + + + + + + +
UsernamePasswordBlock Internet AccessAction
+ + +

Add User

+
+ + + + + +
+ + Yes + No +
+ + + +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/src/files/www/old-dashboard/management_backup.js b/src/files/www/old-dashboard/management_backup.js new file mode 100644 index 0000000..06ed608 --- /dev/null +++ b/src/files/www/old-dashboard/management_backup.js @@ -0,0 +1,246 @@ + +// JSON object for users +let users = [ + { + username: 'loading ...', + password: 'loading ...', + blockInternetAccess: false, + } +] +let fetch_users= [] +var ubus_call_id=1 +var token=localStorage.getItem("routro_token"); + +function ubus_call(params,cb){ + + ubus_call_id++; + var body={ + "jsonrpc": "2.0", + "id": ubus_call_id, + "method": "call", + "params":[ + token + ] + } + for (param of params){ + body["params"].push(param); + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var resBody = JSON.parse(xhr.responseText); + + if (resBody["result"]){ + cb(resBody["result"]); + } + else{ + window.location.href = "index.html"; + } + } + else { + console.log("XHR was failed") + } + } + xhr.onerror = function() { + loading(false); + console.log("Network error occurred") + } +} + + +function transformValuesToObject(values) { + const users = []; + + for (const key in values) { + const user = { + username: key, + password: values[key].password, // Assuming the password is the same as the username + blockInternetAccess: values[key].block || false, + }; + + users.push(user); + } + + return users; +} + +const inputValues = { + "captive": { + ".anonymous": false, + ".type": "users", + ".name": "captive", + ".index": 0, + "username": "password", + "block": true + }, + "captive2": { + ".anonymous": false, + ".type": "users", + ".name": "captive", + ".index": 0, + "username": "password2" + } +}; + + + + + +// Function to render the user list +function renderUserList() { + const userList = document.getElementById('userList'); + userList.innerHTML = ''; + users.forEach(user => { + const row = document.createElement('tr'); + row.innerHTML = ` + ${user.username} + ${user.password} + ${user.blockInternetAccess == "true" ? 'Yes' : 'No'} + + + + + `; + userList.appendChild(row); + }); +} + +// Function to edit a user +function editUser(username) { + // Find the user by username + const user = users.find(u => u.username === username); + if (user) { + // Populate the form fields with user data + document.getElementById('newUsername').value = user.username; + document.getElementById('newPassword').value = user.password; + document.querySelector(`input[name="blockInternetAccess"][value="${user.blockInternetAccess ? 'Yes' : 'No'}"]`).checked = true; + } +} + +// Function to delete a user +function deleteUser(username) { + // Find the user index by username + const userIndex = users.findIndex(u => u.username === username); + if (userIndex !== -1) { + // Remove the user from the array + users.splice(userIndex, 1); + // Update the user list + renderUserList(); + } +} + +// Function to add a user +function addUser() { + const newUsername = document.getElementById('newUsername').value; + const newPassword = document.getElementById('newPassword').value; + const blockInternetAccess = document.querySelector('input[name="blockInternetAccess"]:checked').value === 'Yes'; + + // Check for duplicate username + const existingUser = users.find(u => u.username === newUsername); + if (existingUser) { + // Replace the existing user's data + existingUser.password = newPassword; + existingUser.blockInternetAccess = blockInternetAccess; + } else { + // Add the new user + users.push({ + username: newUsername, + password: newPassword, + blockInternetAccess: blockInternetAccess, + }); + } + + // Update the user list + renderUserList(); + // Clear the input fields + document.getElementById('newUsername').value = ''; + document.getElementById('newPassword').value = ''; +} + +const UCI_GET_USERS=["uci", "get", {"config":"users"}] +const UCI_SET_USERS=["uci", "set", {"config":"users"}] +const UCI_ADD_USERS=["uci", "add", {"config":"users"}] +const UCI_DEL_USERS=["uci", "delete", {"config":"users"}] +const UCI_COMMIT=["uci", "commit", {"config":"---"}]; + +// Function to read data +function reloadData() { + ubus_call(UCI_GET_USERS,function(chunk){ + console.log(chunk[1]); + if(chunk[1]){ + users = transformValuesToObject(chunk[1]["values"]); + fetch_users = Object.assign([],users); + renderUserList(); + console.log(users); + } + }) +} + +function SaveIN(){ + users.forEach(element => { + + var new_param = []; + + var params = { + "values" : { + password: element.password, + block: element.blockInternetAccess + } + } + + if ( isUsernameInArray(element.username,fetch_users) ){ + params["section"] = element.username; + new_param = UCI_SET_USERS; + }else{ + params["type"] = "users"; + params["name"] = element.username; + new_param = UCI_ADD_USERS; + } + + new_param[2] = Object.assign(new_param[2],params); + + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + }); + + fetch_users.forEach(element => { + if(!isUsernameInArray(element.username,users)){ + var new_param = UCI_DEL_USERS; + var params = { + "section":element.username + } + new_param[2] = Object.assign(new_param[2],params); + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + + } + }) +} +function isUsernameInArray(usernameToCheck, arrayToSearch) { + return arrayToSearch.some(item => item.username === usernameToCheck); +} +// Initial rendering of user list +reloadData() +//renderUserList(); \ No newline at end of file diff --git a/src/files/www/old-dashboard/script.js b/src/files/www/old-dashboard/script.js new file mode 100644 index 0000000..40c3d0a --- /dev/null +++ b/src/files/www/old-dashboard/script.js @@ -0,0 +1,1110 @@ +// Global Variables +var wifiApDevices=[]; +var input_global_wifi_frq="2 or 5" +var has5G=false; +var wifiRadios=[] + +//Const + +var copyBtn = document.getElementById('copy-device-id'); +copyBtn.addEventListener('click', copyDeviceId); + +function copyDeviceId() { + var deviceId = document.getElementById('device-id-input').value; + navigator.clipboard.writeText(deviceId); + copyBtn.textContent = 'Copied!'; + copyBtn.setAttribute('disabled', 'disabled'); + setTimeout(function () { + copyBtn.textContent = 'Copy'; + copyBtn.removeAttribute('disabled'); + }, 3000); +} + + +function showWifiElements(showing){ + + var globalWifiElements = document.querySelectorAll('.internet-source-global-wifi'); + for (var i = 0; i < globalWifiElements.length; i++) { + globalWifiElements[i].style.display = showing? 'block' : 'none' ; + } + +} + + +var globalWifiCTA = document.getElementById('internet-source-global-wifi-connect'); +var globalReloadCTA = document.getElementById('internet-source-global-reload'); + +// notif handling +var notifElement = document.getElementById('notif'); +var notifMessageContainer = document.getElementById('notif-message'); +var closeNotif = document.getElementById('close-notif'); +closeNotif.addEventListener('click', function() { notif(false); }); + +function notif(show, type, text) { + if(show) { + notifElement.removeAttribute('class'); + notifElement.classList.add("alert", "alert-"+type); + notifMessageContainer.textContent = text; + notifElement.style.display = "flex"; + } else { + notifElement.style.display = "none"; + } +} + +globalWifiCTA.onclick = function () { + + if( input_global_wifi_frq == 5 ){ + setDeviceWifiInfo(input_global_wifi_ssid.value, input_global_wifi_pass.value, "client_2g", "1"); + setDeviceWifiInfo(input_global_wifi_ssid.value, input_global_wifi_pass.value, "client_5g", "0",1); + } + else{ + setDeviceWifiInfo(input_global_wifi_ssid.value, input_global_wifi_pass.value, "client_5g", "1"); + setDeviceWifiInfo(input_global_wifi_ssid.value, input_global_wifi_pass.value, "client_2g", "0", 1 ); + } +}; + +// this tocken is require to comminicate with router +var token=localStorage.getItem("routro_token"); + +var ubus_call_id=0; +var cache_wifi_ssid="SSID"; +var cache_wifi_pass=""; + +const NET_DUMP=["network.interface","dump",{}]; +const GUEST_CLIENT=["hostapd.wlanguest_2g","get_clients",{}]; +const GUEST_CLIENT_5=["hostapd.wlanguest_5g","get_clients",{}]; +const WIERLESS_STATUS=["network.wireless","status"]; +const VPN_ON=["file","exec",{"command":"wg_scripts.sh","params":[ "on" ]}]; +const VPN_OFF=["file","exec",{"command":"wg_scripts.sh","params":[ "off" ]}]; +const VPN_STAT=["file","exec",{"command":"wg_scripts.sh","params":[ "status" ]}]; +const VPN_SCR=["file","exec",{"command":"wg_scripts.sh","params":[ "?" ]}]; +const UPDATE_CHECK=["file","exec",{"command":"router_updater.sh","params":[ "Check" ]}]; +const UPDATE_DO=["file","exec",{"command":"router_updater.sh","params":[ "Do" ]}]; +const SYSUPGRADE_N=["file","exec",{"command":"router_updater.sh","params":[ "Upgrade" ]}]; + + + +const Device_ID=["uci", "get", {"config":"routro"}]; +// { +// "value": "b8917cdd927ff3bbf822f5f062225920" +// } +const WIFI_INFO=["uci", "get", {"config":"wireless"}]; +// "values": { +// ".anonymous": false, +// ".type": "wifi-iface", +// ".name": "default_radio0", +// "device": "radio0", +// "network": "lan", +// "mode": "ap", +// "ssid": "OpenWrt", +// "encryption": "none" +// } +const WIFI_CHANGE=["uci", "set", {"config":"wireless", "section":"default_radio0", "values":{}}];//"ssid":"SSID" , {"key":"WIFIPASS"} +const WIFI_DISABLE=["uci", "set", {"config":"wireless", "section":"...", "values":{"disabled": "1"}}];//"ssid":"SSID" , {"key":"WIFIPASS"} +const WIFI_SCAN=["iwinfo", "scan", {"device":"wlan-ap"}]; +const WIFI_DEVICES=["iwinfo", "devices",{}]; +const ADMIN_CHANGE=["uci", "set", {"config":"routro", "section":"device_admin", "values":{}}];//{"key":"password"} +const ADMIN_SETP=[ "file","exec",{"command":"set_admin_pass.sh","params":[ "set" ]} ]; +const UCI_COMMIT=["uci", "commit", {"config":"---"}]; +const EXEC_COMMAND=[ "file", "exec", {"command":"String","params":"Array"} ]; +const UCI_GET_OPENNDS=["uci", "get", {"config":"opennds", "section":"@opennds[0]"}] +const UCI_SET_OPENNDS=["uci", "set", {"config":"opennds", "section":"@opennds[0]", "values":{}}] // {"uploadrate": "1000", "downloadrate": "1000"} +const WIFI_DOWN=["network.wireless", "down"]; +const WIFI_UP=["network.wireless", "up"]; +const NET_RESTART=[ "rc", "init", {'name':'network','action':'restart'} ] +const NET_RELOAD=[ "rc", "init", {'name':'network','action':'reload'} ] + +[ + "uci set wireless.rasio0.ssid=ali", + "uci commit wireless", + "rc init network restat" +] + +/// + +///Button +var but_update_device_info=document.getElementById("device-update"); +var but_reload_device_info=document.getElementById("device-reload"); +var but_scan_wifi_global=document.getElementById("scan-wifi-global-btn"); + +///Inputs +var input_admin_pass=document.getElementById("device-admin-password"); +var input_wifi_ssid=document.getElementById("device-wifi-ssid"); +var input_wifi_pass=document.getElementById("device-wifi-password"); +var input_global_wifi_ssid=document.getElementById("internet-source-global-ssid"); +var input_global_wifi_pass=document.getElementById("internet-source-global-pass"); + + +var changeFlag_admin=false +var changeFlag_wifi=false +input_wifi_ssid.onfocus=function(e){ + changeFlag_wifi=true; +} +input_wifi_pass.onfocus=function(e){ + changeFlag_wifi=true; +} +input_admin_pass.onfocus=function(e){ + changeFlag_admin=true; +} +but_update_device_info.onclick = function (e) { + e.preventDefault(); + if( input_wifi_ssid.value.length > 3 && + validationPassword(input_admin_pass.value, "device-admin-password") && + validationPassword(input_wifi_pass.value, "device-wifi-password") ) + { + if( changeFlag_admin ){ + setAdminPassword(); + } + if (changeFlag_wifi){ + setDeviceWifiInfo(input_wifi_ssid.value+"-5g", input_wifi_pass.value, "default_radio0", "0",false); + setDeviceWifiInfo(input_wifi_ssid.value+"-2g", input_wifi_pass.value, "default_radio1", "0",true); + } + + /*ubus_call(WIFI_DOWN,chunk => { + console.log(chunk) + ubus_call(WIFI_UP,chunk2 =>{ + console.log(chunk2) + }); + })*/ + } + else{ + notif(true,"danger","Wrong Input") + } +}; + + +var btn_get_vpn_config = document.getElementById("get-vpn-config") +var txt_vpn_config = document.getElementById("vpn-config-notif") +btn_get_vpn_config.onclick = function(e){ + var vpnScript = VPN_SCR; + vpnScript[2].params = ["get"] + ubus_call(vpnScript,function(response){ + const stdout = response[1].stdout; + if(stdout.includes("__GET_DONE__")){ + txt_vpn_config.textContent = "VPN is Ready to be connected" + showHasConfig() + } + else if(stdout.includes("__Error__")){ + + txt_vpn_config.textContent = "Something Went wrong, please check you internet and try agaign" + } + + console.log(response); + }) +} + +var noConfigEl = document.getElementById('if-no-config') +var hasConfigEl = document.getElementById('if-has-config') + +function showNoConfig() { + noConfigEl.classList.add('d-flex') + noConfigEl.classList.remove('d-none') + hasConfigEl.classList.add('d-none') + hasConfigEl.classList.remove('d-block') +} +function showHasConfig() { + noConfigEl.classList.remove('d-flex') + noConfigEl.classList.add('d-none') + hasConfigEl.classList.remove('d-none') + hasConfigEl.classList.add('d-block') +} + +function readVpnStatus(){ + ubus_call(VPN_STAT,function(response){ + // Extract the 'stdout' from the response + const stdout = response[1].stdout; + vpnButton.disabled=false + showHasConfig() + // Check if 'Connected' is present in the 'stdout' + if (stdout.includes('__Connected__')) { + + connectionStatus("connected") + vpnButton.checked = true; + vpnSwitchLable.textContent = "Connected" + steps_handler(4) + + } else if (stdout.includes('__Disconnected__')) { + + connectionStatus("disconnected") + vpnButton.checked = false + vpnSwitchLable.textContent = "Disconnected" + steps_handler(4) + + } else if (stdout.includes('__Error__')) { + + connectionStatus("connecting") + vpnButton.checked = true + vpnSwitchLable.textContent = "Connection Error" + + }else if (stdout.includes('__No-Config__')) { + + connectionStatus("idle") + vpnButton.checked = false + vpnSwitchLable.textContent = "Connection Error" + btn_get_vpn_config.disabled=false + txt_vpn_config.textContent='You need VPN config, Please click on "Get Config" to get it from server' + txt_vpn_config.style.display='block' + showNoConfig() + + }else { + + connectionStatus("idle") + vpnButton.checked = false + vpnSwitchLable.textContent = "Unknown" + } + }) +} + +function setAdminPassword() { + ubus_call_set_and_commit(ADMIN_CHANGE,{"key":input_admin_pass.value},function(chunk){ + console.log(chunk); + ubus_call(ADMIN_SETP,function(chunk){ + console.log(chunk); + //get_info(); + },false) + + }) +} +function setDeviceWifiInfo(ssid, pass, section, disabled, restart) { + ubus_call_set_and_commit(prepareWifiConfig(section,disabled,ssid,pass),{},function(chunk){ + if (chunk[0] == 0){ + notif(true,"success","Device setting has been changed successfully"); + if(restart){ + ubus_call(NET_RESTART,function(temp){}) + } + + } + else { + notif(true,"warning","Something Went wrong"); + } + }) +} +function prepareWifiConfig(section,disabled,ssid,password){ + var newConfig=WIFI_CHANGE; + newConfig[2]["section"]=section; + newConfig[2]["values"]={ + "ssid":ssid, + "key":password, + "disabled": disabled + } + if(password){ + newConfig[2]["values"]["encryption"]= "psk2"; + } + else{ + newConfig[2]["values"]["encryption"]= "none"; + } + + return newConfig; +} +function disableWifi(section,disable,reload){ + + var newConfig=WIFI_DISABLE; + newConfig[2]["section"]=section; + if( disable == "0" ){ + newConfig[2]["values"]={"disabled": "0"} + + } + ubus_call_set_and_commit(newConfig,{},function(chunk){ + if (chunk[0] == 0){ + notif(true,"success","Device setting has been changed successfully, You device will be restart, please reconnect to device after 10 secounds"); + if(reload){ + ubus_call(NET_RELOAD,function(temp){},false) + } + + } + else { + notif(true,"warning","Something Went wrong"); + } + }) + +} +function validationPassword(pass, id, allowEmpty) { + var element = document.getElementById(id); + var regex_test= new RegExp("^[a-zA-Z0-9-&@_*]+$"); + element.classList.remove('is-invalid'); + if(allowEmpty && pass.length === 0) { + return true; + } + if (pass.length < 8 || pass.length > 20 ) { + element.classList.add('is-invalid'); + notif(true, 'danger', 'Invalid password length!'); + return false; + } else if ( ! regex_test.test(pass) ) + { + element.classList.add('is-invalid'); + notif(true, 'danger', 'Password is limited to Alphanumericals and -_*&@'); + return false; + } + return true; +} + + + + + +/// Text +var text_deviceID=document.getElementById("device-id-input"); +//var text_notif=document.getElementById("text_infoResult"); + +// List +var list_wifi_global=document.getElementById("internet-source-global-connect-to"); +var iranInternetItem=document.getElementById("iran-internet-item"); +var internetSourceGlobalReload = document.getElementById('internet-source-global-reload'); + +internetSourceGlobalReload.onclick = function (e) { + e.preventDefault(); + get_info(); +}; + +var networkInterface = 'Unknown'; +var networkInterfaceIP = '0.0.0.0'; +var networkInterfaceDNS = '0.0.0.0'; +var networkInterfaceStatus = 'unknown'; + +var guestConnectedDevices = "Unknown"; +var guestConnectedIP = "0.0.0.0"; + +function getRadioArray(jsonObj) { + const radioArray = []; + + // Iterate over the keys of the JSON object + for (const key in jsonObj) { + if (key.startsWith("radio")) { // Check if key starts with "radio" + const radioObj = jsonObj[key]; + const radioName = radioObj[".name"]; // Get the radio name + const band = radioObj["band"]; // Get the band + if (band.includes("5g")){ + has5G=true; + } + radioArray.push({"name":radioName,"band":band}); // Push [radioName, band] to the radioArray + } + } + return radioArray; +} + +function getStaRadios(jsonObj) { + const staRadios = {}; + + // Iterate over the keys of the JSON object + for (const key in jsonObj) { + + const radioObj = jsonObj[key]; + const radioName = radioObj[".name"]; // Get the radio name + const mode = radioObj["mode"]; // Get the mode + if (mode === "sta") { + staRadios[radioName] = radioObj; // Add to staRadios object + } + } + + return staRadios; +} +function removeSubstring ( mainStr , substringToRemove ){ + var mainString = mainStr + // Check if the mainString ends with the substringToRemove + if (mainString.endsWith(substringToRemove)) { + // Get the length of the substringToRemove + let substringLength = substringToRemove.length; + // Remove the substring from the end of the mainString using slice() + mainString = mainString.slice(0, -substringLength); + } + + return mainString +} + +function steps_handler(step){ + stepElements = document.getElementsByClassName("accordion-collapse"); + stepHeaderElements = document.getElementsByClassName("accordion-button"); + + for(let i=0; i= 3) { + window.location.href = "index.html" + } + }, true); +} + +setInterval(() => { + heartBeat() +}, 5000); + + +//################ +// # Get_Device_Info_And_Update_Values +//################ +get_info(); +function get_info(){ + notif(false,"success","nothing"); + showWifiElements(true) + + //Device ID and Admin Password + ubus_call(Device_ID,function(chunk){ + var deviceInfo=chunk[1].values; + text_deviceID.value=deviceInfo["remote"]["key"]; + input_admin_pass.value=deviceInfo["device_admin"]["key"]; + }); + + //Extract the Wifi Radios + ubus_call(WIFI_DEVICES,function(chunk){ + var wifi_devices=chunk[1].devices; + for(wifidev of wifi_devices){ + if(wifidev.includes("-ap-")){ + wifiApDevices.push(wifidev); + } + } + }) + + // Get Wifi Info + ubus_call(WIFI_INFO,function(chunk){ + var device_wifi_info=chunk[1].values; + wifiRadios=getRadioArray(device_wifi_info); + var refRadio=wifiRadios[0]["name"]; + var refBand=wifiRadios[0]["band"]; + //check how many WIFI does route have + //Set the Band + input_wifi_ssid.value=removeSubstring(device_wifi_info["default_"+refRadio]["ssid"],"-"+refBand); + input_wifi_pass.value=device_wifi_info["default_"+refRadio]["key"] ? device_wifi_info["default_"+refRadio]["key"] : ""; + + input_global_wifi_ssid.value = device_wifi_info["client_"+refBand]["ssid"]; + input_global_wifi_pass.value = device_wifi_info["client_"+refBand]["key"] ? device_wifi_info["client_"+refBand]["key"] : ''; + + var staWifis=getStaRadios(device_wifi_info); + for (const key in staWifis) { + // Internet Source + if(device_wifi_info[key]["disabled"] == "0"){ + + // set the WIfi info to Global internet and enable the local + //handleInternetSourceSelect('wifi', 'global'); + iranInternetItem.style.display="block"; + } + } + + + ubus_call(NET_DUMP,function(chunk){ + var interfaceInfo=chunk[1].interface; + var wwanInterfaceInfo = ''; + + // if(internetSource === 'cable') { + // wanInterfaceInfo = interfaceInfo.filter(intinf => intinf.interface === "wan"); + // networkInterface = "Ethernet"; + + // } + + wwanInterfaceInfo = interfaceInfo.filter(intinf => intinf.interface === "wwan"); + networkInterface = "Wireless"; + + if(wwanInterfaceInfo[0].up == true ){ + internetConnectionStatus("connected") + networkInterfaceIP = wwanInterfaceInfo[0]['ipv4-address'][0].address; + networkInterfaceDNS = wwanInterfaceInfo[0]['dns-server'][0] ; + console.log(wwanInterfaceInfo); + } + else{ + // if(internetSource === 'cable'){ + // internetConnectionStatus("disconnected") + // } + // else if(internetSource === 'wifi') { + internetConnectionStatus("connecting") + // } + // else{ + // internetConnectionStatus("needAttention") + // } + } + networkInterfaceStatus = wwanInterfaceInfo[0]['up']; + document.getElementById('network-interface').textContent = networkInterface; + document.getElementById('network-interface-ip').textContent = networkInterfaceIP; + document.getElementById('network-interface-dns').textContent = networkInterfaceDNS; + document.getElementById('network-interface-status').textContent = networkInterfaceStatus; + if (networkInterfaceStatus == true ){ + steps_handler(2); + } + else { + console.log("was not true"); + console.log(networkInterfaceStatus); + } + + + var wanInfo = interfaceInfo.filter(intinf => intinf.interface === "wan"); + if(wanInfo[0].up == true ){ + iranInternetConnectionStatus("connected") + networkInterfaceIP = wanInfo[0]['ipv4-address'][0].address; + networkInterfaceDNS = wanInfo[0]['dns-server'][0] ; + document.getElementById('iran-interface-name').textContent = wanInfo[0]['device']; + document.getElementById('iran-interface-status').textContent = wanInfo[0]['proto'];; + document.getElementById('iran-interface-ip').textContent = wanInfo[0]['ipv4-address'][0].address; + document.getElementById('iran-interface-dns').textContent = wanInfo[0]['dns-server'][0]; + } + else{ + iranInternetConnectionStatus("disconnected") + } + + + + }); + + if(device_wifi_info["guest_"+refBand]["disabled"] == "1"){ + //set the Global internet to cable and disable local internet + guestWifiEnableControl(false); + } + else{ + // set the WIfi info to Global internet and enable the local + guestWifiEnableControl(true); + } + + guestSsid.value = removeSubstring( device_wifi_info["guest_"+refBand]["ssid"], "-"+refBand ); + guestPassword.value = device_wifi_info["guest_"+refBand]["key"]; + + }) + + // Read VPN Status + readVpnStatus(); + + + //Read Open NDS Settings + // ubus_get_opennds(function(chunk){ + // const result = chunk[1] + // if(result && result["values"]){ + // var uploadrate = result["values"]["uploadrate"] + // var downloadrate = result["values"]["downloadrate"] + // guestSend.value = Math.round(uploadrate/1000) + // guestReceive.value = Math.round(downloadrate/1000) + // } + // }) + +} + +//Reload the device info +but_reload_device_info.onclick=function(){ + get_info(); +} + +function isEmpty(obj) { + for (const prop in obj) { + if (Object.hasOwn(obj, prop)) { + return false; + } + } + return true; +} + +async function async_ubus_call(ubus_command){ + return new Promise((resolve,reject) =>{ + try { + ubus_call(ubus_command, function(chunk) { + resolve(chunk); + }) + } catch (error) { + reject(error); + } + }) +} + +var list_of_avaiable_wifi=[]; +var list_of_avaiable_band=[]; + +var wifi_list_freq=[] + +but_scan_wifi_global.onclick=async function(){ + + wifi_list_freq=[]; + list_of_avaiable_wifi=[]; + list_of_avaiable_band=[]; + + // Remove the existing list of available wifis + for (var i = list_wifi_global.options.length ; i > 0 ; i--) { + list_wifi_global.options.remove(i); + } + + for ( ap of wifiRadios ){ + var ubus_command=WIFI_SCAN + ubus_command[2]["device"]=ap["name"] + var band="2Ghz" + if( ap["band"]=="5g" ){ + band="5Ghz" + } + var wifi_scan_raw = await async_ubus_call(ubus_command) + var available_wifi_list=wifi_scan_raw[1].results; + list_of_avaiable_wifi= Object.assign([],available_wifi_list,list_of_avaiable_wifi); + } + + console.log(list_of_avaiable_wifi); + + for (var i = 0; i< list_of_avaiable_wifi.length; i++){ + var opt = document.createElement('option'); + opt.value = i ; + var wifiType = "(2.4GHz)" + if( list_of_avaiable_wifi[i]["band"] == 5 ){ + wifiType ="(5GHz)" + } + var ssid = list_of_avaiable_wifi[i]["ssid"] + if ( !ssid ){ + ssid = 'Hidden Network' + } + + opt.innerHTML = ssid+" "+wifiType+' ( ch:'+list_of_avaiable_wifi[i]["channel"]+' Q:'+list_of_avaiable_wifi[i]["quality"]+' '+( + isEmpty(list_of_avaiable_wifi[i]["encryption"]) ? 'Free' : 'Encrypted' + )+')' ; + //ch:5 Q:48 Lock/Free + list_wifi_global.appendChild(opt); + wifi_list_freq.push(band); + } + +} + +var globalWifiNotif = document.getElementById('wifi-connect-notif'); +list_wifi_global.onchange=function(){ + input_global_wifi_pass.value = ""; + var index=this.value; + input_global_wifi_ssid.value=list_of_avaiable_wifi[index]["ssid"]; + input_global_wifi_frq=list_of_avaiable_wifi[index]["band"];; + + globalWifiCTA.classList.remove('d-none'); + globalWifiCTA.classList.add('d-inline'); + + globalWifiNotif.style.display = 'block' +} + + +function ubus_call(params,cb, noLoading){ + + //return {}; + + if(!noLoading) { + loading(true); + } + ubus_call_id++; + var body={ + "jsonrpc": "2.0", + "id": ubus_call_id, + "method": "call", + "params":[ + token + ] + } + for (param of params){ + body["params"].push(param); + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + loading(false); + if (xhr.status === 200) { + //parse JSON datax`x + var resBody = JSON.parse(xhr.responseText); + + if (resBody["result"]){ + cb(resBody["result"]); + } + + else{ + //console.log(resBody) + if(resBody["error"]?.["code"] == -32002){ + window.location.href = "index.html"; + } + } + + } + else { + console.log("XHR was failed") + } + } + xhr.onerror = function() { + loading(false); + console.log("Network error occurred") + cb([-1]) + } +} + +function ubus_call_set_and_commit(params,value,cb){ + var new_param=Object.assign([],params); + new_param[2]["values"]= Object.assign(params[2]["values"],value); + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + cb(chunk2) + }) + } + }) +} + +function ubus_exec(params,command,arg,cb){ + var new_param=params; + new_param[2]["command"]= command; + if (arg) { + new_param[2]["params"]= arg; + } + ubus_call(new_param,function(chunk){ + cb(chunk) + }) +} + +function ubus_get_opennds(cb){ + ubus_call(UCI_GET_OPENNDS,function(chunk){ + cb(chunk) + }) +} +function setRateLimit(upload,download){ + var values = { + "uploadrate": upload, + "downloadrate": download + } + ubus_set_opennds(values); + +} +function ubus_set_opennds(values) +{ + var new_param= UCI_SET_OPENNDS; + new_param[2]["values"]= Object.assign(new_param[2]["values"],values); + ubus_call(new_param,function(chunk){ + if(chunk[0] == 0){ + var commit_param=UCI_COMMIT; + commit_param[2]["config"]=new_param[2]["config"]; + ubus_call(commit_param,function(chunk2){ + console.log(chunk2) + }) + } + }) + +} + +function loading(show,message) { + document.getElementById('overlay').style.display = show ? 'flex' : 'none'; + var message_element = document.getElementById('overlay_message'); + if (message){ + message_element.textContent = message; + }else{ + message_element.textContent = "Loading ..."; + } +} + +var vpnButton = document.getElementById('flexSwitchCheckDefault'); +var vpnStatus = document.getElementById('vpn-status'); +var internetStatus = document.getElementById('internet-status'); +var iranInternetStatus = document.getElementById('iran-internet-status'); +var vpnStatusFlash = document.getElementById('vpn-status-flash'); +var vpnSwitchLable = document.getElementById('vpnSwitchLable'); +var checkUpdateButton = document.getElementById('check-update'); +var doUpdateButton = document.getElementById("do-update") + + +function resetVPNStatusLabel() { + vpnStatus.classList.remove( + 'bg-success', + 'bg-danger', + 'bg-secondary', + 'bg-warning', + 'text-body'); +} +function resetInternetStatusLabel() { + internetStatus.classList.remove( + 'bg-success', + 'bg-danger', + 'bg-secondary', + 'bg-warning', + 'text-body'); +} +function resetIranInternetStatusLabel() { + iranInternetStatus.classList.remove( + 'bg-success', + 'bg-danger', + 'bg-secondary', + 'bg-warning', + 'text-body'); +} + +vpnButton.onclick = function(e){ + vpnButton.disabled=true + if(vpnButton.checked){ + connectionStatus("connecting") + ubus_call(VPN_ON,function(chunk){ + //connectionStatus("connected") + setTimeout(readVpnStatus, 3000); + },"NO") + } + else{ + connectionStatus("connecting") + ubus_call(VPN_OFF,function(chunk){ + //connectionStatus("disconnected") + setTimeout(readVpnStatus, 3000); + },"NO") + } +} + +checkUpdateButton.onclick = function(e){ + ubus_call(UPDATE_CHECK,function(chunk){ + if(chunk.length > 1){ + let responseTexMessage = chunk[1]["stdout"] + document.getElementById("update-notif").textContent = responseTexMessage + + if ( responseTexMessage.includes("different") ){ + doUpdateButton.classList.add('d-inline-block') + doUpdateButton.classList.remove('d-none') + } + else{ + doUpdateButton.classList.remove('d-inline-block') + doUpdateButton.classList.add('d-none') + } + } + else{ + document.getElementById("update-notif").textContent = "Connection failed" + } + + },false) +} + +doUpdateButton.onclick = function(e){ + ubus_call(UPDATE_DO,function(chunk){ + let responseTexMessage = chunk[1]["stdout"] + document.getElementById("update-notif").textContent = responseTexMessage + + if ( responseTexMessage.includes("Successfully") ){ + document.getElementById("update-notif").textContent = "Firmware Downloaded" + setTimeout(notif(true,"danger","upgrade will take 10 minutes, reload this page after 10 minutes")) + loading(true,"Upgrade firmware ...\nPlease wait for 10 Minutes, Then reconncet to router and reload this page") + ubus_call(SYSUPGRADE_N,function(chunk){ + console.log( chunk ) + },false) + } + else{ + document.getElementById("update-notif").textContent = "Firmware Download Failed" + } + + },false) +} + +function connectionStatus(phase) { + resetVPNStatusLabel(); + switch (phase) { + case 'connected': + vpnStatus.textContent = "Connected"; + vpnStatusFlash.style.visibility = "hidden"; + vpnStatus.classList.add('bg-success'); + break; + case 'disconnected': + vpnStatus.textContent = "Disconnected"; + vpnStatusFlash.style.visibility = "hidden"; + vpnStatus.classList.add('bg-danger'); + break; + case 'connecting': + vpnStatus.textContent = "Connecting..."; + vpnStatusFlash.style.visibility = "visible"; + vpnStatus.classList.add('bg-warning', 'text-body'); + break; + default: + vpnStatus.textContent = "Idle"; + vpnStatusFlash.style.visibility = "hidden"; + vpnStatus.classList.add('bg-secondary'); + + } +} +function internetConnectionStatus(status) { + resetInternetStatusLabel(); + switch (status) { + case 'connected': + internetStatus.textContent = "Connected to internet"; + internetStatus.classList.add('bg-success'); + break; + case 'disconnected': + internetStatus.textContent = "No Internet"; + internetStatus.classList.add('bg-danger'); + break; + case 'connecting': + internetStatus.textContent = "Connecting..."; + internetStatus.classList.add('bg-secondary', 'text-body'); + break; + default: + internetStatus.textContent = "Need Attention"; + internetStatus.classList.add('bg-warning'); + + } +} +function iranInternetConnectionStatus(status) { + resetIranInternetStatusLabel(); + switch (status) { + case 'connected': + iranInternetStatus.textContent = "Connected to internet"; + iranInternetStatus.classList.add('bg-success'); + break; + case 'disconnected': + iranInternetStatus.textContent = "No Internet"; + iranInternetStatus.classList.add('bg-danger'); + break; + case 'connecting': + iranInternetStatus.textContent = "Connecting..."; + iranInternetStatus.classList.add('bg-secondary', 'text-body'); + break; + default: + iranInternetStatus.textContent = "Need Attention"; + iranInternetStatus.classList.add('bg-warning'); + + } +} + +var guestWifiEnable = document.getElementById('guest-wifi-enable'); +var guestWifiEnableLabel = document.getElementById('guest-wifi-enable-label'); +var guestSsid = document.getElementById('guest-ssid'); +var guestPassword = document.getElementById('guest-password'); +var guestSend = document.getElementById('guest-send'); +var guestReceive = document.getElementById('guest-receive'); +var guestUpdate = document.getElementById('guest-update'); +var guestReload = document.getElementById('guest-reload'); +var userManagement = document.getElementById('management-btn') + +guestWifiEnable.addEventListener('change', {guestWifiEnableChange}); +guestWifiEnable.onclick = function(e){ + if(guestWifiEnable.checked){ + disableWifi("guest_2g", "0") + disableWifi("guest_5g", "0" , true ) + }else{ + disableWifi("guest_2g","1") + disableWifi("guest_5g","1", true ) + } + +} + +guestUpdate.onclick = function (e) { + e.preventDefault(); + if(guestSsid.value.length > 3 && validationPassword(guestPassword.value, "guest-password", true)) { + setDeviceWifiInfo(guestSsid.value+"-2g", guestPassword.value, "guest_2g", guestWifiEnable.checked ? "0" : "1"); + setDeviceWifiInfo(guestSsid.value+"-5g", guestPassword.value, "guest_5g", guestWifiEnable.checked ? "0" : "1",1); + } + else{ + notif(true,"danger","Wrong Input") + } + // if(guestSend.value >=0 && guestReceive.value >= 0 ){ + // setRateLimit(guestSend.value*1000,guestReceive.value*1000); + // } +}; + +/*setInterval(function () { + guestClient(); +}, 5000);*/ + +function guestClient() { + ubus_call(GUEST_CLIENT,function(chunk){ + var clients=chunk[1].clients; + var connectedClientsList = document.getElementById('connected-clients-list'); + connectedClientsList.innerHTML = ""; + document.getElementById('guest-connected-devices').textContent = Object.keys(clients).length; + ubus_call(GUEST_CLIENT_5,function(chunk){ + var clients_5g=chunk[1]?.clients; + var totalSend = 0; + var totalReceive = 0; + for (var [key, value] of Object.entries(clients)) { + var sendBytes = value.bytes.rx + var reseiveBytes = value.bytes.tx + totalSend += sendBytes; + totalReceive += reseiveBytes; + var tr = document.createElement('tr'); + var td1 = document.createElement('td'); + td1.textContent = key; + var td2 = document.createElement('td'); + td2.textContent = parseInt((reseiveBytes + sendBytes) / (1024 * 1024)); + var td3 = document.createElement('td'); + td3.textContent = value.signal; + var td4 = document.createElement('td'); + td4.textContent = parseInt( sendBytes / (1024*1024) ) + 'MB'; + var td5 = document.createElement('td'); + td5.textContent = parseInt(reseiveBytes / (1024*1024) ) + 'MB'; + tr.append(td1, td2, td3, td4, td5); + connectedClientsList.append(tr); + } + for (var [key, value] of Object.entries(clients_5g)) { + var sendBytes = value.bytes.rx + var reseiveBytes = value.bytes.tx + totalSend += sendBytes; + totalReceive += reseiveBytes; + var tr = document.createElement('tr'); + var td1 = document.createElement('td'); + td1.textContent = key; + var td2 = document.createElement('td'); + td2.textContent = parseInt((reseiveBytes + sendBytes) / (1024 * 1024)); + var td3 = document.createElement('td'); + td3.textContent = value.signal; + var td4 = document.createElement('td'); + td4.textContent = parseInt( sendBytes / (1024*1024) ) + 'MB'; + var td5 = document.createElement('td'); + td5.textContent = parseInt(reseiveBytes / (1024*1024) ) + 'MB'; + tr.append(td1, td2, td3, td4, td5); + connectedClientsList.append(tr); + } + document.getElementById('guest-connected-total-send').textContent = parseInt(totalSend / (1024 * 1024)) + ' MB'; + document.getElementById('guest-connected-total-receive').textContent = parseInt(totalReceive / (1024 * 1024)) + ' MB'; + // text_deviceID.value=deviceInfo["remote"]["key"]; + // input_admin_pass.value=deviceInfo["device_admin"]["key"]; + },true) + }, true); +} + +guestReload.onclick = function () { + get_info(); + guestClient(); +}; + +userManagement.onclick = function(){ + window.location.href = './management.html'; +} + +function guestWifiEnableChange() { + guestWifiEnableControl(this.checked); +} + +function guestWifiEnableControl(status) { + guestWifiEnable.checked = status; + if(status) { + guestWifiEnableLabel.textContent = "Enable"; + guestSsid.removeAttribute('disabled'); + guestPassword.removeAttribute('disabled'); + guestSend.removeAttribute('disabled'); + guestReceive.removeAttribute('disabled'); + + } else { + guestWifiEnableLabel.textContent = "Disable"; + guestSsid.setAttribute('disabled','disabled'); + guestPassword.setAttribute('disabled','disabled'); + guestSend.setAttribute('disabled','disabled'); + guestReceive.setAttribute('disabled','disabled'); + } +} + +function validateForm() { + var fileInput = document.getElementById('file'); + var file = fileInput.files[0]; + + if (file) { + var fileSize = file.size / 1024 / 1024; // Convert to MB + if (file.type !== 'application/octet-stream' || fileSize > 16) { + alert('Please select a valid .bin file (max 16MB).'); + return false; + } + } + + return true; +} \ No newline at end of file diff --git a/src/files/www/old-dashboard/steper.html b/src/files/www/old-dashboard/steper.html new file mode 100644 index 0000000..7638b22 --- /dev/null +++ b/src/files/www/old-dashboard/steper.html @@ -0,0 +1,183 @@ + + + + + Dashboard + + + + + + + +
+
+
+ + + +
+

Step 1: Setup Starlink internet connection

+ +
+
+
+
+ + + + + + + + + + + +
Network Interface: + +
Status: + +
+
+
+ + + + + + + + + + + +
IP: + +
Gateway: + +
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+ + +
+
+ + +
+
+
+ +
+ + + +
+ +
+ +
+

Step 2: VPN Status

+ +
+
+
+ +
+
+ +
+
+
+
+ + +
+ +
+
+ + +
+ + + +
+
+
+ +
+
+ Loading... +
+
+ Loading... +
+
+
+ +
+ + + + diff --git a/src/files/www/old-dashboard/style.css b/src/files/www/old-dashboard/style.css new file mode 100644 index 0000000..f609d44 --- /dev/null +++ b/src/files/www/old-dashboard/style.css @@ -0,0 +1,39 @@ +body { + padding-top: 32px; +} + +.internet-source-local-wifi, +.internet-source-global-wifi { + display: none; +} + +#notif { + display: none; + justify-content: space-between; +} + +#overlay { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0,0,0,0.8); + z-index: 100; + display: none; + align-items: center; + justify-content: center; +} + +#vpn-status-flash { + visibility: hidden; +} + +.scroll-table { + height: 124px; + overflow: scroll; +} +.scroll-table td { + padding-top: 5px; + padding-bottom: 5px; +} \ No newline at end of file diff --git a/src/files/www/old-dashboard/test.html b/src/files/www/old-dashboard/test.html new file mode 100644 index 0000000..d934110 --- /dev/null +++ b/src/files/www/old-dashboard/test.html @@ -0,0 +1,16 @@ +
+ +
+ \ No newline at end of file diff --git a/src/files/www/outline.html b/src/files/www/outline.html new file mode 100644 index 0000000..9f344d9 --- /dev/null +++ b/src/files/www/outline.html @@ -0,0 +1,105 @@ + + + + + Step 5 + + + + + + + + + + + +
+ +
+ +
+
Setup Outline Gate
+
+ +
+ + +
+ + + + + + +
+ + +
+

Outline:

+
+
+
+
+
+
+
+ +
+
+
+ + + +
Past original accesskey here
+
+ + +
+   + +
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/outline.js b/src/files/www/outline.js new file mode 100644 index 0000000..4336bff --- /dev/null +++ b/src/files/www/outline.js @@ -0,0 +1,120 @@ + +infoSection = document.getElementById("info-section") +iHost = document.getElementById("i-host") +iPort = document.getElementById("i-port") +iUsername = document.getElementById("i-username") +iPassword = document.getElementById("i-password") +regenButton = document.getElementById("regen-pass") + +function updateTable(user,pass,host,port) { + iHost.textContent = host; + iPort.textContent = port + iUsername.textContent = user + iPassword.textContent = pass +} + +function parseOutlineAccessKey(accessKey) { + const regex = /^ss:\/\/[^@]+@([^:]+):(\d+)/; + const match = accessKey.match(regex); + + if (!match) { + return { error: 'Invalid access key format' }; + } + + const hash = accessKey.split("@")[0]; + const host = match[1]; + const port = match[2]; + + const isIp = /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/.test(host); + const isDomain = /^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(host); + + if (!isIp && !isDomain) { + return { error: 'Host is neither a valid IP address nor a domain' }; + } + + return { + hash, + host, + port, + type: isIp ? 'IP' : 'Domain', + }; + } + + +const convertButton = document.getElementById("outline-convert") +const accessKey = document.getElementById("access-key") +const outlineOrigin = document.getElementById("outline-origin") +const outlineMap = document.getElementById("outline-map") +const convertedAccessKey = document.getElementById("out-access-key") + + +convertButton.onclick = async function(e){ + loading(true,"Connect & Convert ...") + var parsedKey=parseOutlineAccessKey(accessKey.value) + if( parsedKey["error"] ) + { + addCustomAlert("access-key is not valid",parsedKey["error"]) + loading(false) + return; + } + var outlineServerIP=parsedKey["host"] + if( parsedKey["type"] == "Domain" ){ + outlineServerIP=await domainToIP(parsedKey["host"]) + if ( outlineServerIP == null ){ + addCustomAlert("Invarlid outline server","The domain is not resolve to any ipv4") + loading(false) + return; + } + } + + var rawinfo = await async_lua_call("dragon.sh","ireach-outline-set "+outlineServerIP+" "+parsedKey["port"]) + var parsedInfo= rawinfo.split(" ") + if( parsedInfo[0] != "running" || parsedInfo[1] != "Connected" ){ + addCustomAlert("Something went wrong","Please try again later",4000) + loading(false) + return + } + var convertedKeyString = parsedKey["hash"]+"@"+parsedInfo[2]+":"+parsedInfo[3]; + await async_lua_call("dragon.sh","ireach-outline-write "+btoa(convertedKeyString) ) + convertedAccessKey.textContent = convertedKeyString+"/?outline=1#🚀 Free Internet" + loading(false) +} + +getOutline() +async function getOutline(){ + loading(true,"Getting info") + var rawinfo = await async_lua_call("dragon.sh","ireach-outline-get") + + var [status, connection, savedKey] = rawinfo.split(' '); + if (status != "running" || connection !="Connected" ) { + outlineOrigin.textContent = "Service Is not running" + outlineOrigin.classList.add("text-danger") + outlineOrigin.classList.remove("text-success") + } + else{ + outlineOrigin.textContent = "Service is Running, Share the converted key with anyone you want" + outlineOrigin.classList.add("text-success") + outlineOrigin.classList.remove("text-danger") + convertedAccessKey.textContent = atob(savedKey)+"/?outline=1#🚀 Free Internet" + } + loading(false) + return rawinfo.split(' '); +} + + +async function domainToIP(domain) { + try { + const response = await fetch(`https://dns.google/resolve?name=${domain}&type=A`); + const data = await response.json(); + + if (data.Answer && data.Answer.length > 0) { + return data.Answer[0].data; // Returns the first A record (IPv4 address) + } else { + // Return null if no IP address is found + return null; + } + } catch (error) { + console.error("Error fetching IP:", error.message); + return null; // Return null if there was an error during the fetch or parsing + } + } \ No newline at end of file diff --git a/src/files/www/portal/auth.lua b/src/files/www/portal/auth.lua new file mode 100644 index 0000000..7c2f2fa --- /dev/null +++ b/src/files/www/portal/auth.lua @@ -0,0 +1,81 @@ +#!/usr/bin/lua + +-- Function to parse the query string without urllib +function parse_query_string(query) + local params = {} + for k, v in string.gmatch(query, "([^&=?]+)=([^&=?]+)") do + params[k] = v + end + return params +end + +-- Function to serialize a table (stringify) +function table_to_string(tbl, indent) + local str = "" + local indent = indent or "" + + for k, v in pairs(tbl) do + str = str .. indent .. tostring(k) .. ": " + + if type(v) == "table" then + str = str .. "\n" .. table_to_string(v, indent .. " ") + else + str = str .. tostring(v) .. "\n" + end + end + + return str +end + +-- Function to log data to a file +function log_to_file(data) + local file = io.open("/www/portal/env_log.txt", "a") -- Open the file in append mode + if file then + file:write(data .. "\n") -- Write the data to the file + file:close() -- Close the file + else + print("Error opening file for logging") + end +end + +-- Define the handle_request function required by uhttpd +function handle_request(env) + -- Log the entire env table to the file + local env_string = table_to_string(env) + log_to_file(env_string) -- Log the environment variables to a file + + -- Get the query string from the environment variable + local query_string = env.QUERY_STRING or "" + local params = parse_query_string(query_string) + + -- Retrieve username and password from query parameters + local username = params["username"] or "" + local password = params["password"] or "" + + -- Get the client's IP address + local client_ip = env.REMOTE_ADDR or "" + + -- Example command to get MAC address (if needed) + -- local client_mac = "" -- You can retrieve MAC using ARP or similar methods + + -- Prepare the command to execute binauth.sh + local command = string.format("/usr/bin/binauth.sh %s %s %s", username, password, client_ip) + + -- Execute the command + local handle = io.popen(command) + local result = handle:read("*a") + local success = handle:close() + + -- Redirect based on the result of the command + if string.find(result, "_SUCCESS_") then + -- Redirect to /success + print("Status: 302 Found") + print("Location: /success.html") + print() -- End of headers + else + -- Redirect to /failed + print("Status: 302 Found") + print("Location: /failed.html") + print() -- End of headers + end +end diff --git a/src/files/www/portal/bootstrap.min.css b/src/files/www/portal/bootstrap.min.css new file mode 100644 index 0000000..a89937c --- /dev/null +++ b/src/files/www/portal/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#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-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--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:#c4c8cb;--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-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-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(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-heading-color:inherit;--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-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--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:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::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)}.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;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-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg: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;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#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);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);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-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-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-secondary-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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#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-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{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-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-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;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(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;-webkit-appearance:none;appearance:none;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}@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;-moz-appearance:none;appearance:none;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}@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>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .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{color:rgba(var(--bs-body-color-rgb),.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{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:var(--bs-border-radius)}.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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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-form-valid-border-color);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-form-valid-border-color)}.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-form-valid-border-color);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-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.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-form-valid-color)}.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-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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-form-invalid-border-color);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-form-invalid-border-color)}.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-form-invalid-border-color);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-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.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-form-invalid-color)}.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:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: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:0 0 0 #000;--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:var(--bs-border-radius-lg)}.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:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 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:var(--bs-tertiary-color);--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:var(--bs-border-radius)}.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;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.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:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-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:var(--bs-border-radius);--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 .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a: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,.navbar[data-bs-theme=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-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.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);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;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='%23052c65'%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-emphasis);--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:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.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:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: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-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(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(0, 0, 0, 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(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-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;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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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:calc(-1 * var(--bs-tooltip-arrow-height))}.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:calc(-1 * var(--bs-tooltip-arrow-height));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(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg: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%}.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,[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],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-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(0, 0, 0, 0.075);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.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%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.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%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.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%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.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%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.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(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-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){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-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-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-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-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-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-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-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-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-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-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-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-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-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-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-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-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-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-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-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-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-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/files/www/portal/failed.html b/src/files/www/portal/failed.html new file mode 100644 index 0000000..4b2f932 --- /dev/null +++ b/src/files/www/portal/failed.html @@ -0,0 +1,102 @@ + + + + + + Authentication Failed + + + + +
+
⚠️
+

Authentication Failed

+

Please wait 10 seconds before trying again.

+ Return to Splash Page +
+ + + + + diff --git a/src/files/www/portal/images/nocensored.jpg b/src/files/www/portal/images/nocensored.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48bb531c24f655a5f9f41700dc15fcea514e08b0 GIT binary patch literal 45000 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 AD*ylh literal 0 HcmV?d00001 diff --git a/src/files/www/portal/images/splash.jpg b/src/files/www/portal/images/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac9a357a64cc324488eea032ba9f46282233a75e GIT binary patch literal 2129 zcmb78dpr{g8{Q0KHVj+Qm^KcEGPz&cTsF68F5#%5+|vjptmRT6muY+`m7KYhxihIy zXbO?sultfju7#sG$kF-Z`+eV^-}CK z36=x{3mrov{a+?P2m}Iy!sH|*`=X&FKmZ5=?XMsq(SL6CC4eAYNb0aKUfRqNEQ2{4_D4Lc6;ado zZ54^tK4yN-Cp@!%{}loJAJbp%zv5)z{~h&D=H55}3Igso0>J?Uz_;-jqD#UM6i0Nv zSt`UyMCd*ebrQ8SC_~n7NK#?-dm1A zFvN;;ImSQ15x#ubqG5g6%$}LfxSIAoGPApEl0ElVUTHrUCJpsqgK58ij7g{l&mi;R)7Z_vT0#er$HWE5#Dkha z?7U`!ucwj@PTz|zz+3Bv#vi73rMV44M@;=T*t8Wt2P`Z1%P9N7>%JbbFzr_4+y(F_ zmHw1QmIn#C#7lct8B)gyx}6Xjf=N`SHu_>&YYLZ8>0TTz-(-`>T^C=J1f!kDZ!|1Y zkNdTE*@>Injo7X;iw*os|FznR2syUq>ucq5_437|lM7euLIdyJU$ZfQnA#K!jbG+3o+zYPW}-f+Kj)9O`ZBI-Zy!sHgTy`g5Mr*zNKKxASZE;S!Xw->D`MUAMRa8iCB( z)7?8uZwCAG4QbOsz_+R$EtQB~uCYNYv)cy01xww^zcyqlUG_52Gc~yJa$TIYrL}y^?S6MP;A0<(mv+8w!4;xpz}yBjR3 z)bH?lHZs!mE$Thz{18V2rC?BaX|b3&MQ`V=KFY%02dx*}#AvIU(u=XdjcTlt)j~zu z)j7khp9toHL;e^&Od9|8s;#|#-Os`#^UP_nCu&fhk%8dNv#q_uxo#T<&zs2u5Sx1I z06(P&=46KLbv4?fJ0-pkt|^;H&ry%YatE-Q;jb>rT6((gf)~$-ZSx%#LQ^QIdjPrR z?H`<*mE>8anw67ELju7@#lv-sPkcNuifPJQLYF>n7be-#_4wH`)N)G|OhGX%k?sg@ zLspI1(J1`VdwC4*lR?mQ5jz{l9xBVp#)%1?fVezH%kZ3v&0y>tA)E_bRV^WYJR2uS Q!WY}d*EsA`=)JMO0p{kTq5uE@ literal 0 HcmV?d00001 diff --git a/src/files/www/portal/splash.css b/src/files/www/portal/splash.css new file mode 100644 index 0000000..e1fca2c --- /dev/null +++ b/src/files/www/portal/splash.css @@ -0,0 +1,104 @@ +body { + background-color: lightgrey; + color: black; + margin-left: 5%; + margin-right: 5%; + text-align: left; +} + +hr { + display:block; + margin-top:0.5em; + margin-bottom:0.5em; + margin-left:auto; + margin-right:auto; + border-style:inset; + border-width:5px; +} + +.offset { + background: rgba(300, 300, 300, 0.6); + margin-left:auto; + margin-right:auto; + max-width:600px; + min-width:200px; + padding: 5px; +} + +.insert +{ + background: rgba(350, 350, 350, 0.7); + border: 2px solid #aaa; + border-radius: 4px; + min-width:200px; + max-width:100%; + padding: 5px; +} + +img { + width: 40%; + max-width: 180px; + margin-left: 0%; + margin-right: 5%; +} + +input[type=text], input[type=email], input[type=number] { + color: black; + background: white; + margin-left: 0%; + margin-right: 5%; + text-align: left; + font-size: 1.0em; + line-height: 2.0em; + font-weight: bold; + border: 3px; + border-style: inset; +} + +input[type=submit] { + color: white; + background: green; + margin-left: 0%; + margin-right: 5%; + text-align: left; + font-size: 1.0em; + line-height: 2.5em; + font-weight: bold; + border: 3px; + border-style: inset; +} + +med-blue { + font-size: 1.2em; + color: blue; + font-weight: bold; + font-style: normal; +} + +big-red { + font-size: 1.5em; + color: red; + font-weight: bold; +} + +italic-black { + font-size: 1.0em; + color: black; + font-weight: bold; + font-style: italic; +} + +copy-right { + font-size: 0.7em; + color: darkgrey; + font-weight: bold; + font-style:italic; +} + +normal-black { + font-size: 1.0em; + color: black; + font-weight: bold; + font-style: normal; +} + diff --git a/src/files/www/portal/splash.html b/src/files/www/portal/splash.html new file mode 100644 index 0000000..046a289 --- /dev/null +++ b/src/files/www/portal/splash.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + $gatewayname Hotspot Gateway. + + + + + + +

+
+
+
+

Welcome!

+

For access to the Internet, please Enter Username and Password, then click Continue.

+

Please be mindful to use the internet with fair usage practices, as it is a shared resource.

+
+ + +
+ + +
+
+ + +
+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/src/files/www/portal/status.html b/src/files/www/portal/status.html new file mode 100644 index 0000000..534baa3 --- /dev/null +++ b/src/files/www/portal/status.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + +$gatewayname Hotspot Gateway Status + + + + + + +
+$gatewayname Hotspot Gateway. +
+
+You are already logged in and have access to the Internet. +
+

You are already logged in and have access to the Internet.

+
+

You can use your Browser, Email and other network Apps as you normally would.

+ +
+Copyright © The Nodogsplash Contributors 2004-2019.
This software is released under the GNU GPL license.
+ +
+ + diff --git a/src/files/www/portal/success.html b/src/files/www/portal/success.html new file mode 100644 index 0000000..81476c0 --- /dev/null +++ b/src/files/www/portal/success.html @@ -0,0 +1,70 @@ + + + + + + Authentication Successful + + + + +
+
🎉
+

Authentication Successful!

+

You're all set! Now close this page and enjoy free internet.

+
+ + + diff --git a/src/files/www/proxy.html b/src/files/www/proxy.html new file mode 100644 index 0000000..249dafc --- /dev/null +++ b/src/files/www/proxy.html @@ -0,0 +1,108 @@ + + + + + Step 5 + + + + + + + + + + + +
+ +
+ +
+
HTTPS Proxy Config
+
+ +
+ + +
+ + + + + + +
+ + +

Proxy Info:

+
+
+
+ + + + + + + + + + + + + + + + + + + +
Host: + +
Port: + +
Username: + +
Password: + +
+
+
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/proxy.js b/src/files/www/proxy.js new file mode 100644 index 0000000..03d277f --- /dev/null +++ b/src/files/www/proxy.js @@ -0,0 +1,32 @@ + +iHost = document.getElementById("i-host") +iPort = document.getElementById("i-port") +iUsername = document.getElementById("i-username") +iPassword = document.getElementById("i-password") + +function updateTable(user,pass,host,port) { + iHost.textContent = host; + iPort.textContent = port + iUsername.textContent = user + iPassword.textContent = pass +} + +getProxyConfig(); +async function getProxyConfig(){ + loading(true,"Getting info...") + var rawConfig = await async_lua_call("dragon.sh","ireach-proxy-get") + var status=rawConfig.split(' ')[0] + if( status == "running"){ + //setStatus(true); + var [state,isdomain,user,pass,host,port] = rawConfig.split(' '); + var proxyHost="https://"+host; + if( isdomain != "domain" ){ + proxyHost="http://"+host; + } + updateTable(user,pass,proxyHost,port) + }else{ + updateTable("no-Config","no-Config","no-Config","no-Config") + //setStatus(false); + } + loading(false); +} diff --git a/src/files/www/settings.html b/src/files/www/settings.html new file mode 100644 index 0000000..4b952a3 --- /dev/null +++ b/src/files/www/settings.html @@ -0,0 +1,80 @@ + + + + + Step 4 + + + + + + + + + + + +
+ +
+ +
+
Device Settings
+
+
+ Dashboard + +
+
+ + +
+

Config

+
+
+
+
+
+
+ + +
Choose your device wifi name
+
+
+ + +
Chose secure password
+
+
+ +
+
+ +
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/settings.js b/src/files/www/settings.js new file mode 100644 index 0000000..8ede1a0 --- /dev/null +++ b/src/files/www/settings.js @@ -0,0 +1,65 @@ +var guestSsid = document.getElementById('wifi-ssid'); +var guestPassword = document.getElementById('wifi-password'); +var guestUpdate = document.getElementById('wifi-update'); + + +function validateSSID(ssid) { + // Allowed characters: alphanumeric, space, and special characters ! . _ - () + const ssidRegex = /^[a-zA-Z0-9 !._\-()]+$/; + return ssidRegex.test(ssid); +} + +function validatePassword(password) { + // Allowed characters: any printable ASCII character + const passwordRegex = /^[\x20-\x7E]+$/; // ASCII range for printable characters (space to ~) + return passwordRegex.test(password); +} + +guestUpdate.onclick = async function(e){ + var newSSID = guestSsid.value; + var newPASS = guestPassword.value; + if( !validateSSID(newSSID) ){ + addCustomAlert("Error!","SSID has not acceptable charachter",5000) + return + } + if( !validatePassword(newPASS) ){ + addCustomAlert("Error!","Password has not acceptable charachter",5000) + return + } + if( newPASS.length < 8 ){ + addCustomAlert("Error!","Password must be at leaset 8 charachters",5000) + return + } + + loading(true,"Set Wifi Info") + await async_lua_call("dragon.sh","wifi-set "+newSSID+" "+newPASS) + await wifiInfo() +} + + +wifiInfo() +async function wifiInfo(){ + loading(true) + const WIFI_INFO=["uci", "get", {"config":"wireless"}]; + var info = await async_ubus_call(WIFI_INFO); + var device_wifi_info = info[1].values + var guest_wifi_2g = device_wifi_info["default_radio1"] + + if(guest_wifi_2g && guest_wifi_2g.disabled == "0"){ + guestSsid.value = removeSubstring(guest_wifi_2g["ssid"],"-2g") + guestPassword.value = guest_wifi_2g["key"] + loading(false) + return + } + + var guest_wifi_5g = device_wifi_info["default_radio0"] + if(guest_wifi_5g && guest_wifi_5g.disabled == "0"){ + guestSsid.value = removeSubstring(guest_wifi_5g["ssid"],"-5g") + guestPassword.value = guest_wifi_5g["key"] + loading(false) + return + } + + loading(false) + return +} \ No newline at end of file diff --git a/src/files/www/style.css b/src/files/www/style.css new file mode 100644 index 0000000..ce45692 --- /dev/null +++ b/src/files/www/style.css @@ -0,0 +1,52 @@ +body { + padding-top: 32px; +} + + +#notif { + display: none; + justify-content: space-between; +} + +#overlay { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0,0,0,0.8); + z-index: 100; + display: none; + align-items: center; + justify-content: center; +} + +#vpn-status-flash { + visibility: hidden; +} + +.scroll-table { + height: 124px; + overflow: scroll; +} +.scroll-table td { + padding-top: 5px; + padding-bottom: 5px; +} + +.wifi-element-row { + border: 1px solid white; + border-radius: 5px; + margin-top: 10px; + padding: 10px; + cursor: pointer; + transition: background-color 0.3s; + } + .wifi-element-row:hover { + background-color: #ffffff8e; + color: black; + } + + :dir(rtl) { + font-family: 'Vazirmatn', sans-serif; + } \ No newline at end of file diff --git a/src/files/www/ubus.js b/src/files/www/ubus.js new file mode 100644 index 0000000..e3a7f47 --- /dev/null +++ b/src/files/www/ubus.js @@ -0,0 +1,146 @@ +var ubus_call_id = 0; +var token=localStorage.getItem("routro_token"); + +function ubus_call(params,cb){ + + ubus_call_id++; + var body={ + "jsonrpc": "2.0", + "id": ubus_call_id, + "method": "call", + "params":[ + token + ] + } + for (param of params){ + body["params"].push(param); + } + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/ubus"); + xhr.setRequestHeader("Content-Type", "application/json"); + xhr.send(JSON.stringify(body)); + + xhr.onload = function() { + if (xhr.status === 200) { + //parse JSON datax`x + var resBody = JSON.parse(xhr.responseText); + + if (resBody["result"]){ + cb(resBody["result"]); + } + + else{ + //console.log(resBody) + if(resBody["error"]?.["code"] == -32002 || resBody["error"]?.["code"] == -37200 ){ + window.location.href = "index.html"; + } + } + + } + else { + console.log("XHR was failed") + } + } + xhr.onerror = function() { + loading(false); + console.log("Network error occurred") + cb([-1]) + } +} + +async function async_ubus_call(ubus_command){ + return new Promise((resolve,reject) =>{ + try { + ubus_call(ubus_command, function(chunk) { + resolve(chunk); + }) + } catch (error) { + reject(error); + } + }) +} + + +function lua_call(command, params, cb) { + + // URL-encode the body + const urlEncodedBody = `cmd=${encodeURIComponent(command)}¶ms=${encodeURIComponent(params)}`; + + // create XMLHttpRequest object + const xhr = new XMLHttpRequest(); + xhr.open("POST", "http://192.168.151.1/cgi-bin/api"); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(urlEncodedBody); + + xhr.onload = function() { + if (xhr.status === 200) { + // Extract the text between <___RESPONSE___> and <___END___> + const responseText = xhr.responseText; + const startTag = "<___RESPONSE___>"; + const endTag = "<___END___>"; + const startIndex = responseText.indexOf(startTag); + const endIndex = responseText.indexOf(endTag); + + if (startIndex !== -1 && endIndex !== -1 && startIndex < endIndex) { + const extractedText = responseText.substring(startIndex + startTag.length, endIndex); + cb(extractedText.trim()); + } else { + cb("error"); + } + } else { + console.log("XHR failed with status: " + xhr.status); + cb("error"); + } + } + + xhr.onerror = function() { + console.log("Network error occurred"); + cb("error"); + } +} + +async function async_lua_call(cmd,params){ + return new Promise((resolve,reject) =>{ + try { + lua_call(cmd,params, function(chunk) { + resolve(chunk); + }) + } catch (error) { + reject(error); + } + }) +} + +function ipapi_call(cb) { + + const xhr = new XMLHttpRequest(); + xhr.open("GET", "http://ip-api.com/json"); + xhr.send(); + + xhr.onload = function() { + if (xhr.status === 200) { + var resBody = JSON.parse(xhr.responseText); + cb(resBody) + } else { + cb("error"); + } + } + + xhr.onerror = function() { + cb("error"); + } +} + +async function async_ipapi_call(){ + return new Promise((resolve,reject) =>{ + try { + ipapi_call(function(chunk) { + resolve(chunk); + }) + } catch (error) { + reject(error); + } + }) +} \ No newline at end of file diff --git a/src/files/www/vpn.html b/src/files/www/vpn.html new file mode 100644 index 0000000..095cde1 --- /dev/null +++ b/src/files/www/vpn.html @@ -0,0 +1,178 @@ + + + + + Step 3 + + + + + + + + + + + + +
+ +
+ +
+
Step 3: VPN Connection
+
+ +
+ + +
+ + + + + + + +
+ + + +
+
Put the Wireguard config here
+
+ + +
+ +
+ +
Please make sure the device is connected to Starlink and click on Button
+
+
+ +
+
+ +
+
+
+ + + +
Disconnected
+ +
+ + + + +
+
+
+ +
+ +
+
+
+
+
+
Your IP
+
+
+
Country
+
+
+
Internet Provider
+
+
+
+
+
0.0.0.0
+
+
+
Unknown
+
+
+
Checking...
+
+
+
+
+
+ +
+
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + diff --git a/src/files/www/vpn.js b/src/files/www/vpn.js new file mode 100644 index 0000000..e6c93a7 --- /dev/null +++ b/src/files/www/vpn.js @@ -0,0 +1,204 @@ +const configPart = document.getElementById("config-part") +const getConfig = document.getElementById("get-config") +const changeConfig = document.getElementById("change-config") +const configStatus = document.getElementById("config-status") +const vpnPart = document.getElementById("vpn-part") +const vpnOn = document.getElementById("vpn-on") +const vpnOff = document.getElementById("vpn-off") +const vpnStauts = document.getElementById("connection-status") +const vpnShield = document.getElementById("vpn-shield") +const ipAddress = document.getElementById("ip-address") +const ipCountry = document.getElementById("ip-country") +const internetProvider = document.getElementById("internet-provider") + +function changeVPNstatus(status) { + if (status == "connect") { + vpnShield.setAttribute ('fill' ,'blue') + vpnStauts.textContent = "Connected" + vpnOn.checked=true + } + if (status == "disconnect") { + vpnShield.setAttribute ('fill' ,'red') + vpnStauts.textContent = "Disconnected" + vpnOff.checked=true + } + if (status == "connecting") { + vpnShield.setAttribute ('fill' ,'yellow') + vpnStauts.textContent = "Connecting..." + vpnOff.checked=true + } + +} +function setIpInfo(ip,country,provider) { + ipAddress.textContent=ip + internetProvider.textContent=provider + ipCountry.textContent=country +} + +function configView(hasconfig){ + if(hasconfig){ + configPart.classList.add("d-none") + configPart.classList.remove("d-flex") + + vpnPart.classList.add("d-flex") + vpnPart.classList.remove("d-none") + } + else{ + configPart.classList.add("d-flex") + configPart.classList.remove("d-none") + + vpnPart.classList.add("d-none") + vpnPart.classList.remove("d-flex") + } +} + +getConfig.onclick=async function(){ + loading(true,"Parse & Save config ...") + parseConfig(); + const VPN_SCR=["file","exec",{"command":"wg_scripts.sh","params":[ "get" ]}]; + configStatus.textContent = "Download Config ..." + const response = await async_ubus_call(VPN_SCR) + const stdout = response[1].stdout; + if(stdout.includes("__GET_DONE__")){ + configView(true) + } + else if(stdout.includes("__Error__")){ + configStatus.textContent = "Something Went wrong, please check you internet and try agaign" + } + loading(false) +} + +changeConfig.onclick=async function(){ + loading(true, "Removing the config ...") + const VPN_SCR=["file","exec",{"command":"wg_scripts.sh","params":[ "del" ]}]; + const response = await async_ubus_call(VPN_SCR) + const stdout = response[1].stdout; + if(stdout.includes("Deleted")){ + configView(false); + await async_lua_call("dragon.sh","vpn-off") + readVpnStatus() + } + else if(stdout.includes("__Error__")){ + configStatus.textContent = "Something Went wrong, please check you internet and try agaign" + } + loading(false) +} + +vpnOn.onclick=async function(){ + loading(true,"Connecting to the VPN") + var vpn=await async_lua_call("dragon.sh","vpn-on") + console.log(vpn) + readVpnStatus() +} +vpnOff.onclick=async function(){ + loading(true,"Disconnecting from the VPN, Your starlink ip will not be transparent") + var vpn=await async_lua_call("dragon.sh","vpn-off") + console.log(vpn) + readVpnStatus() +} + +netdump(); +function netdump(){ + loading(true) + const NET_DUMP=["network.interface","dump",{}] + wanInterface=""; + ubus_call(NET_DUMP,function(chunk){ + if(chunk[0]==0){ + + InterfaceInfo=chunk[1].interface; + InterfaceInfo.forEach(element => { + if (element.interface == "wg0") { + wanInterface=element + console.log(element); + } + }); + } + if(wanInterface.up == false ){ + console.log("wanInterface") + //changeStatus(wanInterface.up,wanInterface['ipv4-address'][0].address) + } + + loading(false) + + }); +} + +async function ipapi(){ + //var jsonString= await async_lua_call("dragon.sh","ip-api") + //var unescapedString = jsonString.replace(/\\"/g, '"'); + //var jsonObject = JSON.parse(unescapedString); + //setIpInfo(jsonObject["query"],jsonObject["country"],jsonObject["isp"]) + var jsonString= await async_ipapi_call() + setIpInfo(jsonString["query"],jsonString["country"],jsonString["isp"]) + return jsonString +} + + + +readVpnStatus() +async function readVpnStatus(){ + loading(true,"Getting vpn status") + const VPN_STAT=["file","exec",{"command":"wg_scripts.sh","params":[ "status" ]}]; + var response=await async_ubus_call(VPN_STAT) + configView(true) + // Extract the 'stdout' from the response + const stdout = response[1].stdout; + // Check if 'Connected' is present in the 'stdout' + if (stdout.includes('__Connected__')) { + changeVPNstatus("connect") + } else if (stdout.includes('__Disconnected__')) { + changeVPNstatus("disconnect") + } else if (stdout.includes('__Error__')) { + changeVPNstatus("connecting") + }else if (stdout.includes('__No-Config__')) { + configView(false) + }else { + changeVPNstatus("connecting") + } + await ipapi() + loading(false) +} + +function parseConfig() { + const textarea = document.getElementById('wireguard-config'); + const configText = textarea.value; + + const lines = configText.trim().split('\n'); + const configObject = {}; + + let currentSection = null; + + lines.forEach(line => { + line = line.trim(); + + if(line.startsWith('#')){ + // the line is command + console.log(line); + } + else if(line.startsWith('[') && line.endsWith(']')) { + // New section + currentSection = line.slice(1, -1).trim(); + configObject[currentSection] = {}; + } else if (line.includes('=')) { + // Key-value pair with improved handling for '=' in values + const indexOfEqual = line.indexOf('='); + const key = line.substring(0, indexOfEqual).trim(); + const value = line.substring(indexOfEqual + 1).trim(); + + if (currentSection) { + configObject[currentSection][key] = value; + } else { + configObject[key] = value; + } + } + }); + + setWireguardConfig(configObject); + console.log( configObject ); + console.log( btoa(JSON.stringify(configObject) ) ); +} + +async function setWireguardConfig(config){ + const VPN_CONFIG=["file","exec",{"command":"dragon.sh","params":[ "wireguard-set-conf", btoa(JSON.stringify(config) ) ]}]; + res = await async_ubus_call(VPN_CONFIG) +} \ No newline at end of file diff --git a/src/files/www/wifi.html b/src/files/www/wifi.html new file mode 100644 index 0000000..e6f4400 --- /dev/null +++ b/src/files/www/wifi.html @@ -0,0 +1,178 @@ + + + + + Step 1 + + + + + + + + + + + + +
+ +
+ +
+
Step 1:
Connect NeighborLink to Global Internet
+
+ +
+ + +
+ + + + + + + +
+ +
+
+
+
+ Status: Disconnected +
+
+ _ +
+
+
+ + + +
+ + +
+
+ + + + + Pegah +
+
+ 2.4 Ghz +
+
+ none +
+
+ + + +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ + +
Know the hidden network SSID
+
+
+ + +
Enter the Wi-Fi Passphrase and press Connect
+
+
+
+ +
+
+ +
+ +
+ +
+
+ +
+
+ Loading... +
+
+
+ Loading... +
+
+
+ +
+ +
+ + + diff --git a/src/files/www/wifi.js b/src/files/www/wifi.js new file mode 100644 index 0000000..c5210aa --- /dev/null +++ b/src/files/www/wifi.js @@ -0,0 +1,270 @@ +var connectionBand="2 or 5" +var connectionEncryption = "WPA3 WPA2 PSK" + +function cloneAndUpdateWifiElement(ssid, band, security) { + // Select the element to be cloned + const originalElement = document.getElementById('wifi-element'); + + // Clone the element + const clonedElement = originalElement.cloneNode(true); + + // Update the SSID + const ssidElement = clonedElement.getElementsByClassName('ssid-span')[0]; + ssidElement.textContent = ssid; + + // Update the band + const bandElement = clonedElement.getElementsByClassName('band-span')[0]; + bandElement.textContent = band; + + // Update the band + const encElement = clonedElement.getElementsByClassName('encryption-span')[0]; + encElement.textContent = security; + + // Update the security icon visibility + const lockIcon = clonedElement.getElementsByClassName('wifi-lock-icon')[0]; + console.log(security) + if (security == "none") { + lockIcon.classList.add("d-none"); + console.log("none added") + } + clonedElement.classList.remove("d-none"); + clonedElement.classList.add("d-flex") + // Return the updated element + return clonedElement; +} + +const wifiContainer = document.getElementById('elements-container'); +function clearElements() { + wifiContainer.innerHTML = ''; +} +function addWifiElement(SSiD,band,encryption){ + const newElement = cloneAndUpdateWifiElement(SSiD,band+" Ghz", encryption); + newElement.onclick = () => wificlick(SSiD,band, encryption); + wifiContainer.appendChild(newElement); // Append the new element to the body for demonstration +} +function wificlick(SSiD,band,encryption){ + connectionElement.classList.add("d-flex"); + connectionElement.classList.remove("d-none") + passInput.value="" + if(SSiD == "Hiden Network"){ + ssidPart.classList.add("d-block"); + ssidPart.classList.remove("d-none"); + ssidInput.value="" + } + else{ + ssidPart.classList.remove("d-block"); + ssidPart.classList.add("d-none"); + ssidInput.value=SSiD + } + connectionBand=band + connectionEncryption=encryption; +} + + +const scanButton = document.getElementById("scan-wifi-btn") +scanButton.onclick=async function(){ + loading(true,"Scanning the Wi-Fi. This will take some time.") + clearElements(); + for (let index = 0; index < 2; index++) { + const WIFI_SCAN=["iwinfo", "scan", {"device":"radio"+index}]; + var wifi_scan_raw = await async_ubus_call(WIFI_SCAN); + if( wifi_scan_raw[0] == 0 ) + { + var available_wifi_list=wifi_scan_raw[1].results; + for (var i = 0; i< available_wifi_list.length; i++){ + addWifiElement(available_wifi_list[i]["ssid"] || "Hiden Network", available_wifi_list[i]["band"] ,getEncryptionType( available_wifi_list[i] )) + } + } + } + loading(false) +} + + +const ssidInput = document.getElementById("connection-ssid"); +const ssidPart = document.getElementById("ssid-part"); +const passInput = document.getElementById("connection-password"); +const cancelButton=document.getElementById("cancel"); +const ConnectButton=document.getElementById("connect"); +const connectionElement = document.getElementById("connection-span") + + +cancelButton.onclick=function(){ + connectionElement.classList.remove("d-flex"); + connectionElement.classList.add("d-none"); +} + +async function check_wifi_status(){ + var status= await async_lua_call("dragon.sh", "iwstat "+connectionBand) + return status +} +function checkWifiLoop() { + let intervalId = setInterval(async () => { + try { + let status = await check_wifi_status(); + if (status === "Connected") { + clearInterval(intervalId); + console.log("Wi-Fi is connected."); + changeStatus(true,ssidInput.value) + connectionElement.classList.remove("d-flex"); + connectionElement.classList.add("d-none"); + clearElements(); + loading(false); + } + else if (status === "Disabled") { + clearInterval(intervalId); + console.log("Wi-Fi is disabled."); + loading(false); + addCustomAlert("Error!","The password might be incorrect.") + } else { + console.log("Checking Wi-Fi status..."); + } + } catch (error) { + console.error("Error checking Wi-Fi status:", error); + } + }, 5000); // 5000 milliseconds = 5 seconds +} +ConnectButton.onclick=function(){ + + const ssid = ssidInput.value.trim(); + const password = passInput.value.trim(); + + if (ssid === "" || password === "") { + addCustomAlert("Error: ","SSID and Password cannot be empty"); + return; + } + if (password.length < 6 ) { + addCustomAlert("Error: ","Password is too short"); + return; + } + var b64ssid=btoa(ssid) + var b64pass=btoa(password) + const param = "iwset " + b64ssid + " " + b64pass + " " + connectionBand + " " + connectionEncryption + lua_call("dragon.sh", param,function(chunk){ + console.log(chunk); + loading(false); + if(chunk == "Done"){ + loading(true,"Establishing the connection will take about 20 seconds. If you were using Wi-Fi, you might be disconnected now.") + checkWifiLoop() + } + else{ + addCustomAlert("Something Went Wrong!","Try again") + } + + }) + +} + + +function addCustomAlert(title, message) { + const alertContainer = document.getElementById('alertContainer'); + + const alertDiv = document.createElement('div'); + alertDiv.className = 'alert alert-warning alert-dismissible fade show'; + alertDiv.role = 'alert'; + + const strongText = document.createElement('strong'); + strongText.innerText = title; + + const alertMessage = document.createTextNode(' ' + message); + + const closeButton = document.createElement('button'); + closeButton.type = 'button'; + closeButton.className = 'btn-close'; + closeButton.setAttribute('data-bs-dismiss', 'alert'); + closeButton.setAttribute('aria-label', 'Close'); + + alertDiv.appendChild(strongText); + alertDiv.appendChild(alertMessage); + alertDiv.appendChild(closeButton); + + alertContainer.appendChild(alertDiv); +} + +const connectionStatus = document.getElementById("connection-status") +function changeStatus(theStatus,SSID) { + const textBox = connectionStatus.getElementsByTagName("strong")[0] + const ssidBox = connectionStatus.getElementsByTagName("strong")[1] + if(theStatus){ + textBox.textContent = "Status: Connected" + ssidBox.textContent = SSID + connectionStatus.classList.remove("alert-danger"); + connectionStatus.classList.add("alert-success"); + } + else{ + textBox.textContent = "Status: Disconnected" + ssidBox.textContent = "" + connectionStatus.classList.remove("alert-success"); + connectionStatus.classList.add("alert-danger"); + } + +} + +netdump(); +function netdump(){ + loading(true) + const NET_DUMP=["network.interface","dump",{}] + wanInterface=""; + ubus_call(NET_DUMP,function(chunk){ + if(chunk[0]==0){ + + InterfaceInfo=chunk[1].interface; + InterfaceInfo.forEach(element => { + if (element.interface == "wwan") { + wanInterface=element + console.log(element); + } + }); + } + if(wanInterface.up ){ + console.log("wanInterface") + changeStatus(wanInterface.up,wanInterface['ipv4-address'][0].address) + } + + loading(false) + + }); +} + +function getEncryptionType(accessPoint) { + if (!accessPoint.encryption || !accessPoint.encryption.enabled) { + return "none"; // No encryption + } + + const wpaVersions = accessPoint.encryption.wpa || []; + const authMethods = accessPoint.encryption.authentication || []; + const ciphers = accessPoint.encryption.ciphers || []; + + // Check for WPA3 (SAE) + if (wpaVersions.includes(3) && authMethods.includes("sae")) { + if (wpaVersions.includes(2) && authMethods.includes("psk")) { + return "sae-mixed"; // WPA3/WPA2 mixed mode + } + return "sae"; // WPA3 (SAE) only + } + + // Check for WPA2-PSK + if (wpaVersions.includes(2) && authMethods.includes("psk")) { + if (ciphers.includes("ccmp")) { + return "psk2"; // WPA2 with AES (CCMP) + } else if (ciphers.includes("tkip")) { + return "psk2-tkip"; // WPA2 with TKIP (less secure) + } + } + + // Check for WPA-PSK + if (wpaVersions.includes(1) && authMethods.includes("psk")) { + if (ciphers.includes("ccmp")) { + return "psk"; // WPA with AES + } else if (ciphers.includes("tkip")) { + return "psk-tkip"; // WPA with TKIP + } + } + + // Check for WEP encryption + if (authMethods.includes("wep")) { + return "wep"; // WEP encryption + } + + // Return "unknown" for any unrecognized encryption types + return "unknown"; +} \ No newline at end of file diff --git a/utils/IR_IP_LIST b/utils/IR_IP_LIST new file mode 100644 index 0000000..7ef62ba --- /dev/null +++ b/utils/IR_IP_LIST @@ -0,0 +1,1823 @@ +2.144.0.0/14 +2.176.0.0/12 +5.1.43.0/24 +5.22.0.0/17 +5.22.192.0/21 +5.22.200.0/22 +5.23.112.0/21 +5.42.223.0/24 +5.52.0.0/16 +5.53.32.0/19 +5.56.128.0/22 +5.56.132.0/24 +5.56.134.0/23 +5.57.32.0/21 +5.61.24.0/23 +5.61.26.0/24 +5.61.28.0/22 +5.62.160.0/19 +5.62.192.0/18 +5.63.8.0/21 +5.72.0.0/15 +5.74.0.0/16 +5.75.0.0/17 +5.104.208.0/21 +5.106.0.0/16 +5.112.0.0/12 +5.134.128.0/18 +5.134.192.0/21 +5.135.116.200/30 +5.144.128.0/21 +5.145.112.0/22 +5.145.116.0/24 +5.159.48.0/21 +5.160.0.0/16 +5.182.44.0/22 +5.190.0.0/16 +5.198.160.0/19 +5.200.64.0/18 +5.200.128.0/17 +5.201.128.0/17 +5.202.0.0/16 +5.208.0.0/12 +5.232.0.0/14 +5.236.0.0/17 +5.236.128.0/20 +5.236.144.0/21 +5.236.156.0/22 +5.236.160.0/19 +5.236.192.0/18 +5.237.0.0/16 +5.238.0.0/15 +5.250.0.0/17 +5.252.216.0/22 +5.253.24.0/22 +5.253.96.0/22 +5.253.225.0/24 +8.27.67.32/32 +8.27.67.41/32 +31.2.128.0/17 +31.7.64.0/21 +31.7.72.0/22 +31.7.76.0/23 +31.7.88.0/22 +31.7.96.0/19 +31.7.128.0/20 +31.14.80.0/20 +31.14.112.0/20 +31.14.144.0/20 +31.24.200.0/21 +31.24.232.0/21 +31.25.90.0/23 +31.25.92.0/22 +31.25.104.0/21 +31.25.128.0/21 +31.25.232.0/23 +31.40.0.0/22 +31.40.4.0/24 +31.41.35.0/24 +31.47.32.0/19 +31.56.0.0/14 +31.130.176.0/20 +31.170.48.0/22 +31.170.52.0/23 +31.170.54.0/24 +31.170.56.0/21 +31.171.216.0/21 +31.184.128.0/18 +31.193.112.0/21 +31.193.186.0/24 +31.214.132.0/23 +31.214.146.0/23 +31.214.154.0/24 +31.214.168.0/21 +31.214.200.0/23 +31.214.228.0/22 +31.214.248.0/21 +31.216.62.0/24 +31.217.208.0/21 +37.9.248.0/21 +37.10.64.0/22 +37.10.109.0/24 +37.10.117.0/24 +37.19.80.0/20 +37.32.0.0/19 +37.32.32.0/20 +37.32.112.0/20 +37.44.56.0/21 +37.63.128.0/17 +37.75.240.0/21 +37.98.0.0/17 +37.114.192.0/18 +37.129.0.0/16 +37.130.200.0/21 +37.137.0.0/16 +37.143.144.0/21 +37.148.0.0/17 +37.148.248.0/22 +37.152.160.0/19 +37.153.128.0/22 +37.153.176.0/20 +37.156.0.0/22 +37.156.8.0/21 +37.156.16.0/20 +37.156.48.0/20 +37.156.100.0/22 +37.156.112.0/20 +37.156.128.0/20 +37.156.144.0/22 +37.156.152.0/21 +37.156.160.0/21 +37.156.176.0/22 +37.156.212.0/22 +37.156.232.0/21 +37.156.240.0/22 +37.156.248.0/22 +37.191.64.0/19 +37.202.128.0/17 +37.221.0.0/18 +37.228.131.0/24 +37.228.133.0/24 +37.228.135.0/24 +37.228.136.0/22 +37.235.16.0/20 +37.254.0.0/16 +37.255.0.0/17 +37.255.128.0/26 +37.255.128.64/27 +37.255.128.96/28 +37.255.128.128/25 +37.255.129.0/24 +37.255.130.0/23 +37.255.132.0/22 +37.255.136.0/21 +37.255.144.0/20 +37.255.160.0/19 +37.255.192.0/18 +45.8.160.0/22 +45.9.144.0/22 +45.9.252.0/22 +45.15.200.0/22 +45.15.248.0/22 +45.81.16.0/22 +45.82.136.0/22 +45.84.156.0/22 +45.84.248.0/22 +45.86.4.0/22 +45.86.87.0/24 +45.86.196.0/22 +45.87.4.0/22 +45.89.136.0/22 +45.89.200.0/22 +45.89.236.0/22 +45.90.72.0/22 +45.91.152.0/22 +45.92.92.0/22 +45.93.168.0/22 +45.94.212.0/22 +45.94.252.0/22 +45.128.140.0/22 +45.129.36.0/22 +45.129.116.0/22 +45.132.32.0/24 +45.132.168.0/21 +45.135.240.0/22 +45.138.132.0/22 +45.139.9.0/24 +45.139.10.0/23 +45.139.100.0/22 +45.140.28.0/22 +45.140.224.0/21 +45.142.188.0/22 +45.144.16.0/22 +45.144.124.0/22 +45.147.76.0/22 +45.148.248.0/22 +45.149.76.0/22 +45.150.88.0/22 +45.150.150.0/24 +45.155.192.0/22 +45.156.180.0/22 +45.156.184.0/22 +45.156.192.0/21 +45.156.200.0/22 +45.157.244.0/22 +45.158.120.0/22 +45.159.112.0/22 +45.159.148.0/22 +45.159.196.0/22 +46.18.248.0/21 +46.21.80.0/20 +46.28.72.0/21 +46.32.0.0/19 +46.34.96.0/19 +46.34.160.0/19 +46.36.96.0/20 +46.38.128.0/23 +46.38.130.0/24 +46.38.131.0/25 +46.38.131.128/26 +46.38.132.0/22 +46.38.136.0/21 +46.38.144.0/20 +46.41.192.0/18 +46.51.0.0/17 +46.62.128.0/17 +46.100.0.0/16 +46.102.120.0/21 +46.102.128.0/20 +46.102.184.0/22 +46.143.0.0/17 +46.143.204.0/22 +46.143.208.0/21 +46.143.244.0/22 +46.143.248.0/22 +46.148.32.0/20 +46.164.64.0/18 +46.167.128.0/19 +46.182.32.0/21 +46.209.0.0/16 +46.224.0.0/15 +46.235.76.0/23 +46.245.0.0/17 +46.248.32.0/19 +46.249.96.0/24 +46.249.120.0/21 +46.251.224.0/25 +46.251.224.128/28 +46.251.224.144/29 +46.251.226.0/24 +46.251.237.0/24 +46.255.216.0/21 +62.3.14.0/24 +62.3.41.0/24 +62.3.42.0/24 +62.32.49.128/26 +62.32.49.192/27 +62.32.49.224/29 +62.32.49.240/28 +62.32.50.0/24 +62.32.53.64/26 +62.32.53.168/29 +62.32.53.224/28 +62.32.61.96/27 +62.32.61.224/27 +62.32.63.128/26 +62.60.128.0/22 +62.60.136.0/21 +62.60.144.0/22 +62.60.152.0/21 +62.60.160.0/22 +62.60.196.0/22 +62.60.208.0/20 +62.102.128.0/20 +62.133.46.0/24 +62.193.0.0/19 +62.204.61.0/24 +62.220.96.0/19 +63.243.185.0/24 +64.214.116.16/32 +65.21.221.144/28 +66.79.96.0/19 +67.16.178.147/32 +67.16.178.148/31 +67.16.178.150/32 +69.194.64.0/18 +72.14.201.40/30 +77.36.128.0/17 +77.42.0.0/17 +77.77.64.0/18 +77.81.32.0/20 +77.81.76.0/24 +77.81.78.0/24 +77.81.82.0/23 +77.81.128.0/21 +77.81.144.0/20 +77.81.192.0/19 +77.90.139.180/30 +77.95.220.0/24 +77.104.64.0/18 +77.237.64.0/19 +77.237.160.0/19 +77.238.104.0/21 +77.238.112.0/20 +77.245.224.0/20 +78.31.232.0/22 +78.38.0.0/15 +78.109.192.0/20 +78.110.112.0/20 +78.111.0.0/20 +78.154.32.0/19 +78.157.32.0/19 +78.158.160.0/19 +79.127.0.0/17 +79.132.192.0/23 +79.132.200.0/21 +79.132.208.0/20 +79.143.84.0/23 +79.143.86.0/24 +79.174.160.0/21 +79.175.128.0/19 +79.175.160.0/22 +79.175.164.0/23 +79.175.166.0/24 +79.175.167.0/25 +79.175.167.128/30 +79.175.167.132/31 +79.175.167.144/28 +79.175.167.160/27 +79.175.167.192/26 +79.175.168.0/21 +79.175.176.0/20 +80.66.176.0/20 +80.71.112.0/20 +80.71.149.0/24 +80.75.0.0/20 +80.85.82.80/29 +80.91.208.0/24 +80.191.0.0/17 +80.191.128.0/18 +80.191.192.0/19 +80.191.224.0/20 +80.191.240.0/24 +80.191.241.128/25 +80.191.242.0/23 +80.191.244.0/22 +80.191.248.0/21 +80.210.0.0/18 +80.210.128.0/17 +80.241.70.250/31 +80.242.0.0/20 +80.249.112.0/22 +80.250.192.0/20 +80.253.128.0/19 +80.255.3.160/27 +81.12.0.0/17 +81.16.112.0/20 +81.28.32.0/19 +81.29.240.0/20 +81.31.160.0/19 +81.31.224.0/22 +81.31.228.0/23 +81.31.230.0/24 +81.31.233.0/24 +81.31.234.0/23 +81.31.236.0/22 +81.31.240.0/23 +81.31.248.0/22 +81.90.144.0/20 +81.91.128.0/19 +81.92.216.0/24 +81.163.0.0/21 +82.97.240.0/20 +82.99.192.0/18 +82.138.140.0/25 +82.180.192.0/18 +82.198.136.76/30 +83.120.0.0/14 +83.147.192.0/23 +83.147.194.0/24 +83.147.222.0/23 +83.147.240.0/22 +83.147.252.0/24 +83.147.254.0/24 +83.149.208.65/32 +83.150.192.0/22 +84.17.168.32/27 +84.47.192.0/18 +84.241.0.0/18 +85.9.64.0/18 +85.15.0.0/18 +85.133.128.0/21 +85.133.137.0/24 +85.133.138.0/23 +85.133.140.0/22 +85.133.144.0/23 +85.133.147.0/24 +85.133.148.0/22 +85.133.152.0/22 +85.133.157.0/24 +85.133.158.0/23 +85.133.160.0/22 +85.133.165.0/24 +85.133.166.0/23 +85.133.168.0/21 +85.133.176.0/20 +85.133.192.0/21 +85.133.200.0/23 +85.133.203.0/24 +85.133.204.0/22 +85.133.208.0/22 +85.133.212.0/23 +85.133.214.0/24 +85.133.216.0/23 +85.133.219.0/24 +85.133.220.0/23 +85.133.223.0/24 +85.133.224.0/24 +85.133.226.0/23 +85.133.228.0/22 +85.133.232.0/22 +85.133.237.0/24 +85.133.238.0/23 +85.133.240.0/20 +85.185.0.0/16 +85.198.0.0/19 +85.198.48.0/20 +85.204.30.0/23 +85.204.76.0/23 +85.204.80.0/20 +85.204.104.0/23 +85.204.128.0/22 +85.204.208.0/20 +85.208.252.0/22 +85.239.192.0/19 +86.55.0.0/16 +86.57.0.0/17 +86.104.32.0/20 +86.104.80.0/20 +86.104.96.0/20 +86.104.232.0/21 +86.104.240.0/21 +86.105.40.0/21 +86.105.128.0/20 +86.106.142.0/24 +86.106.192.0/21 +86.107.0.0/20 +86.107.80.0/20 +86.107.144.0/20 +86.107.172.0/22 +86.107.208.0/20 +86.109.32.0/19 +87.107.0.0/16 +87.128.22.75/32 +87.236.208.0/26 +87.236.209.0/24 +87.236.210.0/23 +87.236.213.0/24 +87.236.214.0/24 +87.247.168.0/21 +87.247.176.0/20 +87.248.128.0/24 +87.248.139.0/24 +87.248.140.0/23 +87.248.142.0/24 +87.248.147.0/24 +87.248.150.0/24 +87.248.152.0/22 +87.248.156.0/24 +87.248.159.0/24 +87.251.128.0/19 +87.252.206.24/29 +87.252.206.64/29 +88.131.240.122/31 +88.131.240.125/32 +88.135.32.0/20 +88.135.68.0/24 +89.32.0.0/19 +89.32.96.0/20 +89.32.196.0/23 +89.32.248.0/22 +89.33.18.0/23 +89.33.100.0/22 +89.33.128.0/23 +89.33.204.0/23 +89.33.234.0/23 +89.33.240.0/23 +89.34.20.0/23 +89.34.32.0/19 +89.34.88.0/23 +89.34.94.0/23 +89.34.128.0/19 +89.34.168.0/23 +89.34.176.0/23 +89.34.200.0/23 +89.34.248.0/21 +89.35.58.0/23 +89.35.68.0/22 +89.35.120.0/22 +89.35.132.0/23 +89.35.156.0/23 +89.35.176.0/23 +89.35.180.0/22 +89.35.194.0/23 +89.36.16.0/23 +89.36.48.0/20 +89.36.96.0/20 +89.36.176.0/20 +89.36.194.0/23 +89.36.226.0/23 +89.36.252.0/23 +89.37.0.0/20 +89.37.30.0/23 +89.37.42.0/23 +89.37.102.0/23 +89.37.144.0/21 +89.37.152.0/22 +89.37.168.0/22 +89.37.198.0/23 +89.37.208.0/22 +89.37.218.0/23 +89.37.240.0/20 +89.38.24.0/23 +89.38.80.0/20 +89.38.102.0/23 +89.38.184.0/21 +89.38.192.0/21 +89.38.212.0/22 +89.38.242.0/23 +89.38.244.0/22 +89.39.8.0/22 +89.39.186.0/23 +89.39.208.0/24 +89.40.78.0/23 +89.40.106.0/23 +89.40.110.0/23 +89.40.128.0/23 +89.40.152.0/21 +89.40.240.0/20 +89.41.8.0/21 +89.41.16.0/21 +89.41.32.0/23 +89.41.40.0/22 +89.41.58.0/23 +89.41.184.0/22 +89.41.192.0/19 +89.41.240.0/21 +89.42.32.0/23 +89.42.44.0/22 +89.42.56.0/23 +89.42.68.0/23 +89.42.96.0/21 +89.42.136.0/22 +89.42.150.0/23 +89.42.184.0/21 +89.42.196.0/22 +89.42.208.0/23 +89.42.210.0/25 +89.42.210.128/27 +89.42.210.160/28 +89.42.210.176/29 +89.42.210.184/30 +89.42.210.188/32 +89.42.210.190/31 +89.42.210.192/26 +89.42.211.0/24 +89.42.228.0/23 +89.43.0.0/20 +89.43.36.0/23 +89.43.70.0/23 +89.43.88.0/21 +89.43.96.0/21 +89.43.144.0/21 +89.43.182.0/23 +89.43.188.0/23 +89.43.204.0/23 +89.43.216.0/21 +89.43.224.0/21 +89.44.112.0/23 +89.44.118.0/23 +89.44.128.0/21 +89.44.146.0/23 +89.44.176.0/21 +89.44.190.0/23 +89.44.202.0/23 +89.44.240.0/22 +89.45.48.0/20 +89.45.68.0/23 +89.45.80.0/23 +89.45.89.0/24 +89.45.112.0/21 +89.45.126.0/23 +89.45.152.0/21 +89.45.230.0/23 +89.46.44.0/23 +89.46.60.0/23 +89.46.94.0/23 +89.46.184.0/21 +89.46.216.0/22 +89.47.64.0/20 +89.47.128.0/19 +89.47.196.0/22 +89.47.200.0/22 +89.144.128.0/18 +89.165.0.0/17 +89.196.0.0/16 +89.198.0.0/15 +89.219.64.0/18 +89.219.192.0/18 +89.221.80.0/20 +89.235.64.0/18 +91.92.104.0/24 +91.92.114.0/24 +91.92.121.0/24 +91.92.122.0/23 +91.92.124.0/22 +91.92.129.0/24 +91.92.130.0/23 +91.92.132.0/22 +91.92.145.0/24 +91.92.146.0/23 +91.92.148.0/22 +91.92.156.0/22 +91.92.164.0/22 +91.92.172.0/22 +91.92.180.0/22 +91.92.184.0/21 +91.92.192.0/23 +91.92.204.0/22 +91.92.208.0/21 +91.92.220.0/22 +91.92.228.0/23 +91.92.231.0/24 +91.92.236.0/22 +91.98.0.0/15 +91.106.64.0/19 +91.108.128.0/19 +91.109.104.0/21 +91.129.4.216/32 +91.129.18.175/32 +91.129.18.177/32 +91.133.128.0/17 +91.147.64.0/20 +91.184.64.0/19 +91.185.128.0/19 +91.186.192.0/23 +91.186.201.0/24 +91.186.216.0/23 +91.186.218.0/24 +91.190.88.0/21 +91.194.6.0/24 +91.199.9.0/24 +91.199.18.0/24 +91.199.27.0/24 +91.199.30.0/24 +91.207.138.0/23 +91.207.205.0/24 +91.208.165.0/24 +91.209.96.0/24 +91.209.179.0/24 +91.209.183.0/24 +91.209.184.0/24 +91.209.186.0/24 +91.209.242.0/24 +91.212.16.0/24 +91.212.252.0/24 +91.213.151.0/24 +91.213.157.0/24 +91.213.167.0/24 +91.213.172.0/24 +91.216.4.0/24 +91.217.64.0/23 +91.217.177.0/24 +91.220.79.0/24 +91.220.113.0/24 +91.220.243.0/24 +91.221.240.0/23 +91.222.196.0/22 +91.222.204.0/22 +91.224.20.0/23 +91.224.110.0/23 +91.224.176.0/23 +91.225.52.0/22 +91.226.224.0/23 +91.227.84.0/22 +91.227.246.0/23 +91.228.22.0/23 +91.228.132.0/23 +91.228.189.0/24 +91.229.46.0/23 +91.229.214.0/23 +91.230.32.0/24 +91.232.64.0/22 +91.232.68.0/23 +91.232.72.0/22 +91.233.56.0/22 +91.234.52.0/24 +91.236.168.0/23 +91.237.254.0/23 +91.238.0.0/24 +91.239.14.0/24 +91.239.108.0/22 +91.239.210.0/24 +91.239.214.0/24 +91.240.60.0/22 +91.240.116.0/24 +91.240.180.0/22 +91.241.20.0/23 +91.241.92.0/24 +91.242.44.0/23 +91.243.126.0/23 +91.243.160.0/20 +91.244.120.0/22 +91.245.228.0/22 +91.246.44.0/24 +91.247.66.0/23 +91.247.171.0/24 +91.247.174.0/24 +91.250.224.0/20 +91.251.0.0/16 +92.42.48.0/21 +92.43.160.0/22 +92.61.176.0/21 +92.61.184.0/24 +92.61.186.0/23 +92.61.188.0/22 +92.114.16.0/20 +92.114.48.0/22 +92.114.64.0/20 +92.119.57.0/24 +92.119.58.0/24 +92.119.68.0/22 +92.242.192.0/19 +92.246.144.0/22 +92.246.156.0/22 +92.249.56.0/22 +93.88.64.0/21 +93.88.72.0/23 +93.93.204.0/24 +93.110.0.0/16 +93.113.224.0/20 +93.114.16.0/20 +93.114.104.0/21 +93.115.120.0/21 +93.115.144.0/21 +93.115.216.0/21 +93.115.224.0/20 +93.117.0.0/19 +93.117.32.0/20 +93.117.96.0/19 +93.117.176.0/20 +93.118.96.0/19 +93.118.128.0/19 +93.118.160.0/20 +93.118.180.0/22 +93.118.184.0/22 +93.119.32.0/19 +93.119.64.0/19 +93.119.208.0/20 +93.126.0.0/18 +93.190.24.0/21 +94.24.0.0/20 +94.24.16.0/21 +94.24.80.0/20 +94.24.96.0/21 +94.74.128.0/23 +94.74.130.1/32 +94.74.130.2/31 +94.74.130.4/30 +94.74.130.8/29 +94.74.130.16/28 +94.74.130.32/27 +94.74.130.64/26 +94.74.130.128/25 +94.74.131.0/24 +94.74.142.0/23 +94.74.144.1/32 +94.74.144.2/31 +94.74.144.4/30 +94.74.144.8/29 +94.74.144.16/28 +94.74.144.32/27 +94.74.144.64/26 +94.74.144.128/25 +94.74.148.0/24 +94.74.150.0/23 +94.74.152.0/23 +94.74.155.0/24 +94.74.161.0/24 +94.74.162.0/24 +94.74.167.0/24 +94.74.178.0/23 +94.74.180.0/24 +94.74.182.0/24 +94.74.188.0/23 +94.74.190.0/24 +94.101.128.0/20 +94.101.176.0/20 +94.101.240.0/20 +94.139.160.0/19 +94.176.8.0/21 +94.176.32.0/21 +94.177.72.0/21 +94.182.0.0/15 +94.184.0.0/16 +94.199.136.0/22 +94.232.168.0/21 +94.241.164.0/22 +95.38.0.0/16 +95.64.0.0/17 +95.80.128.0/18 +95.81.64.0/18 +95.130.56.0/21 +95.130.225.0/24 +95.130.240.0/21 +95.142.224.0/20 +95.156.222.0/23 +95.156.233.0/24 +95.156.234.0/23 +95.156.236.0/23 +95.156.248.0/23 +95.156.252.0/22 +95.162.0.0/16 +95.215.59.0/24 +95.215.160.0/22 +95.215.173.0/24 +103.130.144.0/24 +103.130.146.0/24 +103.215.220.0/22 +103.216.60.0/22 +103.231.136.0/22 +104.28.11.28/31 +104.28.11.30/32 +104.28.37.237/32 +104.28.37.238/31 +104.28.37.240/31 +104.28.51.83/32 +104.28.51.84/30 +104.28.80.85/32 +104.28.80.86/31 +104.28.80.88/31 +104.28.106.57/32 +104.28.106.58/31 +104.28.106.60/31 +104.28.131.38/31 +104.28.131.40/32 +104.28.194.219/32 +104.28.194.220/30 +104.28.194.224/31 +104.28.214.161/32 +104.28.214.162/31 +104.28.214.164/30 +104.28.214.168/32 +104.28.226.219/32 +104.28.226.220/30 +104.28.226.224/31 +104.28.246.161/32 +104.28.246.162/31 +104.28.246.164/30 +104.28.246.168/32 +109.70.237.0/24 +109.72.192.0/20 +109.74.232.0/21 +109.94.164.0/22 +109.95.60.0/22 +109.95.64.0/21 +109.107.131.0/24 +109.108.160.0/19 +109.109.32.0/19 +109.110.160.0/19 +109.122.193.0/24 +109.122.199.0/24 +109.122.209.0/24 +109.122.217.0/24 +109.122.224.0/20 +109.122.240.0/21 +109.122.248.0/22 +109.122.252.0/23 +109.125.128.0/18 +109.162.128.0/17 +109.201.0.0/19 +109.203.128.0/19 +109.203.176.0/22 +109.206.252.0/22 +109.225.128.0/18 +109.230.64.0/19 +109.230.192.0/23 +109.230.200.0/24 +109.230.204.0/22 +109.230.221.0/24 +109.230.223.0/24 +109.230.242.0/24 +109.230.246.0/23 +109.230.251.0/24 +109.232.0.0/21 +109.238.176.0/20 +109.239.0.0/20 +113.203.0.0/17 +128.65.160.0/19 +130.185.72.0/21 +130.193.77.0/24 +130.244.41.211/32 +130.244.41.213/32 +130.244.71.67/32 +130.244.71.72/31 +130.244.71.74/32 +130.244.71.80/31 +130.244.85.151/32 +130.255.192.0/18 +134.255.196.0/23 +134.255.200.0/21 +134.255.245.0/24 +134.255.246.0/24 +134.255.248.0/23 +140.248.34.128/30 +140.248.36.146/31 +140.248.36.148/31 +141.11.42.0/24 +146.19.104.0/24 +146.19.217.0/24 +146.66.128.0/21 +146.75.132.146/31 +146.75.132.148/31 +146.75.169.128/30 +146.75.180.36/30 +151.232.0.0/14 +151.238.0.0/15 +151.240.0.0/13 +152.89.12.0/22 +152.89.44.0/22 +157.119.188.0/22 +158.58.0.0/17 +158.58.184.0/21 +158.255.74.0/24 +158.255.78.0/24 +159.20.96.0/20 +164.138.16.0/21 +164.138.128.0/18 +164.215.56.0/21 +164.215.128.0/17 +171.22.24.0/22 +172.80.128.0/17 +172.225.187.16/28 +172.225.191.160/27 +172.225.196.144/28 +172.225.196.184/29 +172.225.228.128/27 +172.225.229.96/28 +176.12.64.0/20 +176.56.144.0/20 +176.62.144.0/21 +176.65.160.0/19 +176.65.192.0/18 +176.67.64.0/20 +176.97.218.0/24 +176.97.220.0/24 +176.101.32.0/20 +176.101.48.0/21 +176.102.224.0/19 +176.105.245.0/24 +176.116.7.0/24 +176.122.210.0/23 +176.123.64.0/18 +176.124.64.0/22 +176.126.120.0/24 +176.221.64.0/21 +176.223.80.0/21 +178.21.40.0/21 +178.21.160.0/21 +178.22.72.0/21 +178.22.120.0/21 +178.131.0.0/16 +178.157.0.0/23 +178.169.0.0/19 +178.173.128.0/18 +178.173.192.0/19 +178.211.145.0/24 +178.215.0.0/18 +178.216.248.0/21 +178.219.224.0/20 +178.236.32.0/22 +178.236.96.0/20 +178.238.192.0/20 +178.239.144.0/20 +178.248.40.0/21 +178.251.208.0/21 +178.252.128.0/18 +178.253.16.0/24 +178.253.31.0/24 +178.253.32.0/24 +178.253.38.0/23 +185.1.77.0/24 +185.2.12.0/22 +185.3.124.0/22 +185.3.200.0/22 +185.3.212.0/22 +185.4.0.0/22 +185.4.16.0/22 +185.4.28.0/22 +185.4.104.0/22 +185.4.220.0/22 +185.5.156.0/22 +185.7.212.0/24 +185.8.172.0/22 +185.10.71.0/24 +185.10.72.0/22 +185.11.68.0/22 +185.11.88.0/22 +185.11.176.0/22 +185.12.60.0/22 +185.12.100.0/23 +185.12.102.0/24 +185.13.228.0/22 +185.14.80.0/22 +185.14.160.0/22 +185.16.232.0/22 +185.18.156.0/22 +185.18.212.0/22 +185.19.201.0/24 +185.20.160.0/22 +185.21.68.0/22 +185.21.76.0/22 +185.22.28.0/22 +185.23.128.0/22 +185.24.136.0/22 +185.24.148.0/22 +185.24.228.0/22 +185.24.252.0/22 +185.25.172.0/22 +185.26.32.0/22 +185.26.232.0/22 +185.29.220.0/22 +185.30.4.0/22 +185.30.76.0/22 +185.31.124.0/22 +185.32.128.0/22 +185.33.25.0/24 +185.34.160.0/22 +185.36.228.0/24 +185.36.231.0/24 +185.37.52.0/22 +185.39.180.0/22 +185.40.16.0/24 +185.40.240.0/22 +185.41.0.0/22 +185.41.220.0/22 +185.42.24.0/24 +185.42.212.0/22 +185.42.224.0/22 +185.44.36.0/22 +185.44.100.0/22 +185.44.112.0/22 +185.45.188.0/22 +185.46.0.0/22 +185.46.108.0/22 +185.46.216.0/22 +185.47.48.0/22 +185.49.84.0/22 +185.49.96.0/22 +185.49.104.0/22 +185.49.231.0/24 +185.50.36.0/22 +185.51.40.0/22 +185.51.200.0/22 +185.53.140.0/22 +185.55.224.0/22 +185.56.92.0/22 +185.56.96.0/22 +185.57.132.0/22 +185.57.164.0/22 +185.57.200.0/22 +185.58.240.0/22 +185.59.112.0/23 +185.60.32.0/22 +185.60.136.0/22 +185.62.232.0/22 +185.63.113.0/24 +185.63.114.0/24 +185.63.236.0/22 +185.64.176.0/22 +185.66.224.0/21 +185.67.12.0/22 +185.67.100.0/22 +185.67.156.0/22 +185.67.212.0/22 +185.69.108.0/22 +185.70.60.0/22 +185.71.152.0/22 +185.71.192.0/22 +185.72.24.0/22 +185.72.80.0/22 +185.73.0.0/22 +185.73.76.0/22 +185.73.112.0/24 +185.73.114.0/24 +185.73.226.0/24 +185.74.164.0/22 +185.74.221.0/24 +185.75.196.0/22 +185.75.204.0/22 +185.76.248.0/22 +185.78.20.0/22 +185.79.60.0/22 +185.79.96.0/22 +185.79.156.0/22 +185.80.100.0/22 +185.80.198.0/23 +185.81.40.0/22 +185.81.96.0/23 +185.81.99.0/24 +185.82.28.0/22 +185.82.64.0/22 +185.82.136.0/22 +185.82.164.0/22 +185.82.180.0/22 +185.83.28.0/22 +185.83.76.0/22 +185.83.80.0/22 +185.83.88.0/22 +185.83.112.0/24 +185.83.114.0/23 +185.83.180.0/22 +185.83.184.0/22 +185.83.196.0/22 +185.83.208.0/22 +185.84.220.0/22 +185.85.68.0/22 +185.85.136.0/22 +185.86.36.0/22 +185.86.180.0/22 +185.88.48.0/22 +185.88.152.0/22 +185.88.176.0/22 +185.88.252.0/22 +185.89.22.0/24 +185.89.112.0/22 +185.92.4.0/22 +185.92.8.0/22 +185.92.40.0/22 +185.94.96.0/23 +185.94.98.0/24 +185.94.99.0/25 +185.94.99.136/29 +185.94.99.144/28 +185.94.99.160/27 +185.94.99.192/26 +185.95.60.0/22 +185.95.152.0/22 +185.95.180.0/22 +185.96.240.0/22 +185.97.116.0/22 +185.98.112.0/22 +185.99.212.0/22 +185.100.44.0/22 +185.101.228.0/22 +185.103.84.0/22 +185.103.128.0/22 +185.103.244.0/22 +185.103.248.0/22 +185.104.192.0/24 +185.104.228.0/22 +185.104.232.0/22 +185.104.240.0/22 +185.105.100.0/22 +185.105.120.0/22 +185.105.184.0/22 +185.105.236.0/22 +185.106.136.0/22 +185.106.144.0/22 +185.106.200.0/22 +185.106.228.0/22 +185.107.28.0/22 +185.107.32.0/23 +185.107.244.0/22 +185.107.248.0/22 +185.108.96.0/22 +185.108.164.0/22 +185.109.60.0/22 +185.109.72.0/22 +185.109.80.0/22 +185.109.128.0/22 +185.109.244.0/22 +185.109.248.0/22 +185.110.28.0/22 +185.110.216.0/22 +185.110.228.0/22 +185.110.236.0/22 +185.110.244.0/22 +185.110.252.0/22 +185.111.8.0/21 +185.111.64.0/22 +185.111.80.0/22 +185.111.136.0/22 +185.112.32.0/21 +185.112.130.0/23 +185.112.148.0/22 +185.112.168.0/22 +185.113.56.0/22 +185.113.112.0/22 +185.114.188.0/22 +185.115.76.0/22 +185.115.148.0/22 +185.115.168.0/22 +185.116.20.0/22 +185.116.24.0/22 +185.116.44.0/22 +185.116.160.0/22 +185.117.48.0/22 +185.117.136.0/22 +185.117.204.0/23 +185.117.206.0/24 +185.118.12.0/22 +185.118.136.0/22 +185.118.152.0/22 +185.119.4.0/22 +185.119.164.0/22 +185.119.240.0/22 +185.120.120.0/22 +185.120.136.0/22 +185.120.160.0/22 +185.120.168.0/22 +185.120.192.0/21 +185.120.200.0/22 +185.120.208.0/20 +185.120.224.0/20 +185.120.240.0/21 +185.120.248.0/22 +185.121.56.0/22 +185.121.128.0/22 +185.122.80.0/22 +185.123.68.0/22 +185.123.208.0/22 +185.124.112.0/22 +185.124.156.0/22 +185.124.172.0/22 +185.125.20.0/22 +185.125.244.0/22 +185.125.248.0/21 +185.126.0.0/20 +185.126.16.0/22 +185.126.40.0/22 +185.126.132.0/23 +185.126.200.0/22 +185.127.232.0/22 +185.128.40.0/24 +185.128.48.0/22 +185.128.80.0/22 +185.128.136.0/22 +185.128.152.0/22 +185.128.164.0/22 +185.129.80.0/22 +185.129.168.0/22 +185.129.184.0/21 +185.129.196.0/22 +185.129.200.0/22 +185.129.212.0/22 +185.129.216.0/22 +185.129.228.0/22 +185.129.232.0/21 +185.129.240.0/22 +185.130.76.0/22 +185.131.28.0/22 +185.131.84.0/22 +185.131.88.0/21 +185.131.100.0/22 +185.131.108.0/22 +185.131.112.0/21 +185.131.124.0/22 +185.131.128.0/22 +185.131.136.0/21 +185.131.148.0/22 +185.131.152.0/21 +185.131.164.0/22 +185.131.168.0/22 +185.132.80.0/22 +185.132.212.0/22 +185.133.152.0/22 +185.133.164.0/22 +185.133.244.0/23 +185.133.246.0/24 +185.134.96.0/22 +185.135.28.0/22 +185.135.228.0/22 +185.136.100.0/22 +185.136.172.0/22 +185.136.180.0/22 +185.136.192.0/22 +185.136.220.0/22 +185.137.24.0/22 +185.137.60.0/22 +185.137.108.0/23 +185.137.110.0/24 +185.139.64.0/22 +185.140.4.0/22 +185.140.56.0/22 +185.140.232.0/22 +185.140.240.0/22 +185.141.36.0/22 +185.141.48.0/22 +185.141.104.0/22 +185.141.132.0/22 +185.141.168.0/22 +185.141.212.0/22 +185.141.244.0/22 +185.142.92.0/22 +185.142.124.0/22 +185.142.156.0/22 +185.142.232.0/22 +185.143.72.0/22 +185.143.204.0/22 +185.143.232.0/22 +185.144.64.0/22 +185.145.8.0/22 +185.145.184.0/22 +185.147.40.0/22 +185.147.84.0/22 +185.147.160.0/22 +185.147.176.0/22 +185.149.192.0/24 +185.150.108.0/22 +185.153.184.0/22 +185.153.208.0/22 +185.154.184.0/22 +185.155.8.0/21 +185.155.72.0/22 +185.155.236.0/22 +185.157.8.0/22 +185.158.172.0/22 +185.159.152.0/22 +185.159.176.0/22 +185.160.104.0/22 +185.160.176.0/22 +185.161.36.0/22 +185.161.112.0/22 +185.162.40.0/22 +185.162.216.0/22 +185.163.88.0/22 +185.164.73.0/24 +185.164.74.0/23 +185.164.252.0/22 +185.165.28.0/22 +185.165.40.0/22 +185.165.100.0/22 +185.165.116.0/22 +185.165.204.0/22 +185.166.60.0/22 +185.166.104.0/22 +185.166.112.0/22 +185.167.72.0/22 +185.167.100.0/22 +185.167.124.0/22 +185.168.28.0/22 +185.169.6.0/24 +185.169.20.0/22 +185.169.36.0/22 +185.170.8.0/24 +185.170.236.0/22 +185.171.52.0/22 +185.172.0.0/22 +185.172.68.0/22 +185.172.212.0/22 +185.173.104.0/22 +185.173.129.0/24 +185.173.130.0/24 +185.173.168.0/22 +185.174.132.0/24 +185.174.134.0/24 +185.174.200.0/22 +185.174.248.0/22 +185.175.76.0/22 +185.175.240.0/22 +185.176.32.0/22 +185.176.56.0/22 +185.177.156.0/22 +185.177.232.0/22 +185.178.104.0/22 +185.178.220.0/22 +185.179.90.0/24 +185.179.168.0/22 +185.179.220.0/22 +185.180.52.0/22 +185.180.128.0/22 +185.181.180.0/22 +185.182.220.0/22 +185.182.248.0/22 +185.184.32.0/22 +185.184.48.0/22 +185.185.16.0/22 +185.185.240.0/22 +185.186.48.0/22 +185.186.240.0/22 +185.187.48.0/22 +185.187.84.0/22 +185.188.104.0/22 +185.188.112.0/22 +185.189.120.0/22 +185.190.20.0/22 +185.190.25.128/25 +185.190.39.0/24 +185.191.76.0/22 +185.192.8.0/22 +185.192.112.0/22 +185.193.47.0/24 +185.193.208.0/22 +185.194.76.0/22 +185.194.244.0/22 +185.195.72.0/22 +185.196.148.0/22 +185.197.68.0/22 +185.197.112.0/22 +185.198.160.0/22 +185.199.64.0/22 +185.199.208.0/22 +185.201.48.0/22 +185.202.56.0/22 +185.203.160.0/22 +185.204.180.0/22 +185.204.197.0/24 +185.205.203.0/24 +185.205.220.0/22 +185.206.92.0/22 +185.206.229.0/24 +185.206.231.0/24 +185.206.236.0/22 +185.207.52.0/22 +185.207.72.0/22 +185.208.76.0/22 +185.208.148.0/22 +185.208.174.0/23 +185.208.180.0/22 +185.209.188.0/22 +185.210.200.0/22 +185.211.56.0/22 +185.211.84.0/22 +185.211.88.0/22 +185.212.48.0/22 +185.212.192.0/22 +185.213.8.0/22 +185.213.164.0/22 +185.213.195.0/24 +185.214.36.0/22 +185.215.124.0/22 +185.215.152.0/22 +185.215.228.0/22 +185.218.139.0/24 +185.219.112.0/22 +185.220.224.0/22 +185.221.112.0/22 +185.221.192.0/22 +185.221.239.0/24 +185.222.120.0/22 +185.222.180.0/22 +185.222.184.0/22 +185.222.210.0/24 +185.223.160.0/24 +185.224.176.0/22 +185.225.80.0/22 +185.225.180.0/22 +185.225.240.0/22 +185.226.97.0/24 +185.226.116.0/22 +185.226.132.0/22 +185.226.140.0/22 +185.227.64.0/22 +185.227.116.0/22 +185.228.236.0/22 +185.229.0.0/22 +185.229.28.0/22 +185.229.204.0/24 +185.231.65.0/24 +185.231.112.0/24 +185.231.114.0/23 +185.231.180.0/22 +185.232.152.0/22 +185.232.176.0/22 +185.233.12.0/22 +185.233.84.0/22 +185.233.131.0/24 +185.234.14.0/24 +185.234.192.0/22 +185.235.136.0/24 +185.235.138.0/23 +185.235.245.0/24 +185.236.36.0/22 +185.236.45.0/24 +185.236.88.0/22 +185.237.8.0/22 +185.237.84.0/22 +185.238.20.0/22 +185.238.44.0/22 +185.238.92.0/22 +185.238.140.0/24 +185.238.143.0/24 +185.239.0.0/22 +185.239.104.0/22 +185.240.56.0/22 +185.240.148.0/22 +185.243.48.0/22 +185.244.52.0/22 +185.246.4.0/22 +185.248.32.0/24 +185.251.76.0/22 +185.252.28.0/22 +185.252.200.0/24 +185.254.165.0/24 +185.254.166.0/24 +185.255.68.0/22 +185.255.88.0/22 +185.255.208.0/22 +188.0.240.0/20 +188.75.64.0/18 +188.94.188.0/24 +188.95.89.0/24 +188.118.64.0/18 +188.121.96.0/19 +188.121.128.0/19 +188.122.96.0/19 +188.136.128.0/18 +188.136.192.0/19 +188.158.0.0/15 +188.191.176.0/21 +188.208.56.0/21 +188.208.64.0/19 +188.208.144.0/20 +188.208.160.0/19 +188.208.200.0/22 +188.208.208.0/21 +188.208.224.0/19 +188.209.0.0/19 +188.209.32.0/20 +188.209.64.0/20 +188.209.116.0/22 +188.209.152.0/23 +188.209.192.0/20 +188.210.64.0/20 +188.210.80.0/21 +188.210.96.0/19 +188.210.128.0/18 +188.210.192.0/20 +188.210.232.0/22 +188.211.0.0/20 +188.211.32.0/19 +188.211.64.0/18 +188.211.128.0/19 +188.211.176.0/20 +188.211.192.0/19 +188.212.22.0/24 +188.212.48.0/20 +188.212.64.0/19 +188.212.96.0/22 +188.212.144.0/21 +188.212.160.0/19 +188.212.200.0/21 +188.212.208.0/20 +188.212.224.0/20 +188.212.240.0/21 +188.213.64.0/20 +188.213.96.0/19 +188.213.144.0/20 +188.213.176.0/20 +188.213.192.0/21 +188.213.208.0/22 +188.214.4.0/22 +188.214.84.0/22 +188.214.96.0/22 +188.214.120.0/23 +188.214.160.0/19 +188.214.216.0/21 +188.215.24.0/22 +188.215.88.0/22 +188.215.128.0/20 +188.215.160.0/19 +188.215.192.0/19 +188.215.240.0/22 +188.229.0.0/17 +188.240.196.0/24 +188.240.212.0/24 +188.240.248.0/21 +188.253.2.0/23 +188.253.32.0/21 +188.253.40.0/24 +188.253.42.0/23 +188.253.44.0/22 +188.253.48.0/20 +188.253.64.0/19 +192.15.0.0/16 +192.167.140.66/32 +193.0.156.0/24 +193.3.31.0/24 +193.3.182.0/24 +193.3.231.0/24 +193.3.255.0/24 +193.8.139.0/24 +193.19.144.0/23 +193.22.20.0/24 +193.28.181.0/24 +193.29.24.0/24 +193.29.26.0/24 +193.32.80.0/23 +193.34.244.0/22 +193.35.62.0/24 +193.38.247.0/24 +193.39.9.0/24 +193.56.59.0/24 +193.56.61.0/24 +193.56.107.0/24 +193.56.118.0/24 +193.104.22.0/24 +193.104.29.0/24 +193.104.212.0/24 +193.105.2.0/24 +193.105.6.0/24 +193.105.234.0/24 +193.106.190.0/24 +193.107.48.0/24 +193.108.242.0/23 +193.111.234.0/23 +193.134.100.0/23 +193.141.64.0/23 +193.141.126.0/23 +193.142.30.0/24 +193.142.232.0/23 +193.142.254.0/23 +193.148.64.0/22 +193.150.66.0/24 +193.151.128.0/19 +193.162.129.0/24 +193.176.240.0/22 +193.178.200.0/22 +193.186.4.40/30 +193.186.32.0/24 +193.189.122.0/23 +193.200.102.0/23 +193.200.148.0/24 +193.201.72.0/23 +193.201.192.0/22 +193.222.51.0/24 +193.228.90.0/23 +193.228.136.0/24 +193.240.187.76/30 +193.240.207.0/28 +193.242.194.0/23 +193.242.208.0/23 +193.246.160.0/23 +193.246.164.0/23 +193.246.174.0/23 +193.246.200.0/23 +194.5.40.0/22 +194.5.175.0/24 +194.5.176.0/22 +194.5.188.0/24 +194.5.195.0/24 +194.5.205.0/24 +194.9.56.0/23 +194.9.80.0/23 +194.26.2.0/23 +194.26.20.0/23 +194.26.117.0/24 +194.26.195.0/24 +194.31.108.0/24 +194.31.194.0/24 +194.33.104.0/22 +194.33.122.0/23 +194.33.124.0/22 +194.34.163.0/24 +194.36.0.0/24 +194.36.174.0/24 +194.39.36.0/22 +194.41.48.0/22 +194.50.204.0/24 +194.50.209.0/24 +194.50.216.0/24 +194.50.218.0/24 +194.53.118.0/23 +194.53.122.0/23 +194.56.148.0/24 +194.59.170.0/23 +194.59.214.0/23 +194.60.208.0/22 +194.60.228.0/22 +194.62.17.0/24 +194.62.43.0/24 +194.87.23.0/24 +194.143.140.0/23 +194.146.148.0/22 +194.146.239.0/24 +194.147.164.0/22 +194.147.212.0/24 +194.147.222.0/24 +194.150.68.0/22 +194.156.140.0/22 +194.180.224.0/24 +194.225.0.0/16 +195.2.234.0/24 +195.8.102.0/24 +195.8.110.0/24 +195.8.112.0/24 +195.8.114.0/24 +195.20.136.0/24 +195.27.14.0/29 +195.28.10.0/23 +195.28.168.0/23 +195.88.188.0/23 +195.96.128.0/24 +195.96.153.0/24 +195.110.38.0/23 +195.114.4.0/23 +195.114.8.0/23 +195.146.32.0/19 +195.181.0.0/17 +195.182.38.0/24 +195.190.130.0/24 +195.190.139.0/24 +195.190.144.0/24 +195.191.22.0/23 +195.191.44.0/23 +195.191.74.0/23 +195.211.44.0/22 +195.217.44.172/30 +195.219.71.0/24 +195.225.232.0/24 +195.226.223.0/24 +195.230.97.0/24 +195.230.105.0/24 +195.230.107.0/24 +195.230.124.0/24 +195.234.191.0/24 +195.238.231.0/24 +195.238.240.0/24 +195.238.247.0/24 +195.245.70.0/23 +196.3.91.0/24 +204.18.0.0/16 +204.245.22.24/30 +204.245.22.29/32 +204.245.22.30/31 +209.28.123.0/26 +210.5.196.64/26 +210.5.197.64/26 +210.5.198.32/29 +210.5.198.64/28 +210.5.198.96/27 +210.5.198.128/26 +210.5.198.192/27 +210.5.204.0/25 +210.5.205.0/26 +210.5.208.0/26 +210.5.208.128/25 +210.5.209.0/25 +210.5.214.192/26 +210.5.218.64/26 +210.5.218.128/25 +210.5.232.0/25 +210.5.233.0/25 +210.5.233.128/26 +212.1.192.0/21 +212.16.64.0/19 +212.18.108.0/24 +212.23.201.0/24 +212.23.214.0/24 +212.23.216.0/24 +212.33.192.0/19 +212.46.45.0/24 +212.80.0.0/19 +212.86.64.0/19 +212.120.146.128/29 +212.120.192.0/19 +212.151.56.189/32 +212.151.60.189/32 +212.151.182.155/32 +212.151.182.156/31 +212.151.186.154/31 +212.151.186.156/32 +213.108.240.0/23 +213.108.242.0/24 +213.109.199.0/24 +213.109.240.0/20 +213.168.224.216/30 +213.168.240.96/29 +213.176.0.0/20 +213.176.16.0/22 +213.176.28.0/22 +213.176.64.0/18 +213.195.0.0/20 +213.195.16.0/21 +213.195.32.0/19 +213.207.192.0/18 +213.217.32.0/19 +213.232.124.0/22 +213.233.160.0/19 +217.11.16.0/20 +217.24.144.0/20 +217.25.48.0/20 +217.60.0.0/16 +217.66.192.0/19 +217.77.112.0/20 +217.114.40.0/24 +217.144.104.0/22 +217.146.208.0/20 +217.161.16.0/24 +217.170.240.0/20 +217.171.145.0/24 +217.171.148.0/22 +217.171.191.220/30 +217.172.98.0/23 +217.172.102.0/23 +217.172.104.0/21 +217.172.112.0/22 +217.172.116.0/23 +217.172.118.0/24 +217.172.120.0/21 +217.174.16.0/20 +217.198.190.0/24 +217.218.0.0/16 +217.219.0.0/17 +217.219.128.0/18 +217.219.192.0/21 +217.219.200.0/22 +217.219.204.0/24 +217.219.205.64/26 +217.219.205.128/25 +217.219.206.0/23 +217.219.208.0/20 +217.219.224.0/19 \ No newline at end of file diff --git a/utils/IR_IP_LIST copy b/utils/IR_IP_LIST copy new file mode 100644 index 0000000..22d5552 --- /dev/null +++ b/utils/IR_IP_LIST copy @@ -0,0 +1 @@ +2.144.0.0/14 2.176.0.0/12 5.1.43.0/24 5.22.0.0/17 5.22.192.0/21 5.22.200.0/22 5.23.112.0/21 5.42.223.0/24 5.52.0.0/16 5.53.32.0/19 5.56.128.0/22 5.56.132.0/24 5.56.134.0/23 5.57.32.0/21 5.61.24.0/23 5.61.26.0/24 5.61.28.0/22 5.62.160.0/19 5.62.192.0/18 5.63.8.0/21 5.72.0.0/15 5.74.0.0/16 5.75.0.0/17 5.104.208.0/21 5.106.0.0/16 5.112.0.0/12 5.134.128.0/18 5.134.192.0/21 5.135.116.200/30 5.144.128.0/21 5.145.112.0/22 5.145.116.0/24 5.159.48.0/21 5.160.0.0/16 5.182.44.0/22 5.190.0.0/16 5.198.160.0/19 5.200.64.0/18 5.200.128.0/17 5.201.128.0/17 5.202.0.0/16 5.208.0.0/12 5.232.0.0/14 5.236.0.0/17 5.236.128.0/20 5.236.144.0/21 5.236.156.0/22 5.236.160.0/19 5.236.192.0/18 5.237.0.0/16 5.238.0.0/15 5.250.0.0/17 5.252.216.0/22 5.253.24.0/22 5.253.96.0/22 5.253.225.0/24 8.27.67.32/32 8.27.67.41/32 31.2.128.0/17 31.7.64.0/21 31.7.72.0/22 31.7.76.0/23 31.7.88.0/22 31.7.96.0/19 31.7.128.0/20 31.14.80.0/20 31.14.112.0/20 31.14.144.0/20 31.24.200.0/21 31.24.232.0/21 31.25.90.0/23 31.25.92.0/22 31.25.104.0/21 31.25.128.0/21 31.25.232.0/23 31.40.0.0/22 31.40.4.0/24 31.41.35.0/24 31.47.32.0/19 31.56.0.0/14 31.130.176.0/20 31.170.48.0/22 31.170.52.0/23 31.170.54.0/24 31.170.56.0/21 31.171.216.0/21 31.184.128.0/18 31.193.112.0/21 31.193.186.0/24 31.214.132.0/23 31.214.146.0/23 31.214.154.0/24 31.214.168.0/21 31.214.200.0/23 31.214.228.0/22 31.214.248.0/21 31.216.62.0/24 31.217.208.0/21 37.9.248.0/21 37.10.64.0/22 37.10.109.0/24 37.10.117.0/24 37.19.80.0/20 37.32.0.0/19 37.32.32.0/20 37.32.112.0/20 37.44.56.0/21 37.63.128.0/17 37.75.240.0/21 37.98.0.0/17 37.114.192.0/18 37.129.0.0/16 37.130.200.0/21 37.137.0.0/16 37.143.144.0/21 37.148.0.0/17 37.148.248.0/22 37.152.160.0/19 37.153.128.0/22 37.153.176.0/20 37.156.0.0/22 37.156.8.0/21 37.156.16.0/20 37.156.48.0/20 37.156.100.0/22 37.156.112.0/20 37.156.128.0/20 37.156.144.0/22 37.156.152.0/21 37.156.160.0/21 37.156.176.0/22 37.156.212.0/22 37.156.232.0/21 37.156.240.0/22 37.156.248.0/22 37.191.64.0/19 37.202.128.0/17 37.221.0.0/18 37.228.131.0/24 37.228.133.0/24 37.228.135.0/24 37.228.136.0/22 37.235.16.0/20 37.254.0.0/16 37.255.0.0/17 37.255.128.0/26 37.255.128.64/27 37.255.128.96/28 37.255.128.128/25 37.255.129.0/24 37.255.130.0/23 37.255.132.0/22 37.255.136.0/21 37.255.144.0/20 37.255.160.0/19 37.255.192.0/18 45.8.160.0/22 45.9.144.0/22 45.9.252.0/22 45.15.200.0/22 45.15.248.0/22 45.81.16.0/22 45.82.136.0/22 45.84.156.0/22 45.84.248.0/22 45.86.4.0/22 45.86.87.0/24 45.86.196.0/22 45.87.4.0/22 45.89.136.0/22 45.89.200.0/22 45.89.236.0/22 45.90.72.0/22 45.91.152.0/22 45.92.92.0/22 45.93.168.0/22 45.94.212.0/22 45.94.252.0/22 45.128.140.0/22 45.129.36.0/22 45.129.116.0/22 45.132.32.0/24 45.132.168.0/21 45.135.240.0/22 45.138.132.0/22 45.139.9.0/24 45.139.10.0/23 45.139.100.0/22 45.140.28.0/22 45.140.224.0/21 45.142.188.0/22 45.144.16.0/22 45.144.124.0/22 45.147.76.0/22 45.148.248.0/22 45.149.76.0/22 45.150.88.0/22 45.150.150.0/24 45.155.192.0/22 45.156.180.0/22 45.156.184.0/22 45.156.192.0/21 45.156.200.0/22 45.157.244.0/22 45.158.120.0/22 45.159.112.0/22 45.159.148.0/22 45.159.196.0/22 46.18.248.0/21 46.21.80.0/20 46.28.72.0/21 46.32.0.0/19 46.34.96.0/19 46.34.160.0/19 46.36.96.0/20 46.38.128.0/23 46.38.130.0/24 46.38.131.0/25 46.38.131.128/26 46.38.132.0/22 46.38.136.0/21 46.38.144.0/20 46.41.192.0/18 46.51.0.0/17 46.62.128.0/17 46.100.0.0/16 46.102.120.0/21 46.102.128.0/20 46.102.184.0/22 46.143.0.0/17 46.143.204.0/22 46.143.208.0/21 46.143.244.0/22 46.143.248.0/22 46.148.32.0/20 46.164.64.0/18 46.167.128.0/19 46.182.32.0/21 46.209.0.0/16 46.224.0.0/15 46.235.76.0/23 46.245.0.0/17 46.248.32.0/19 46.249.96.0/24 46.249.120.0/21 46.251.224.0/25 46.251.224.128/28 46.251.224.144/29 46.251.226.0/24 46.251.237.0/24 46.255.216.0/21 62.3.14.0/24 62.3.41.0/24 62.3.42.0/24 62.32.49.128/26 62.32.49.192/27 62.32.49.224/29 62.32.49.240/28 62.32.50.0/24 62.32.53.64/26 62.32.53.168/29 62.32.53.224/28 62.32.61.96/27 62.32.61.224/27 62.32.63.128/26 62.60.128.0/22 62.60.136.0/21 62.60.144.0/22 62.60.152.0/21 62.60.160.0/22 62.60.196.0/22 62.60.208.0/20 62.102.128.0/20 62.133.46.0/24 62.193.0.0/19 62.204.61.0/24 62.220.96.0/19 63.243.185.0/24 64.214.116.16/32 65.21.221.144/28 66.79.96.0/19 67.16.178.147/32 67.16.178.148/31 67.16.178.150/32 69.194.64.0/18 72.14.201.40/30 77.36.128.0/17 77.42.0.0/17 77.77.64.0/18 77.81.32.0/20 77.81.76.0/24 77.81.78.0/24 77.81.82.0/23 77.81.128.0/21 77.81.144.0/20 77.81.192.0/19 77.90.139.180/30 77.95.220.0/24 77.104.64.0/18 77.237.64.0/19 77.237.160.0/19 77.238.104.0/21 77.238.112.0/20 77.245.224.0/20 78.31.232.0/22 78.38.0.0/15 78.109.192.0/20 78.110.112.0/20 78.111.0.0/20 78.154.32.0/19 78.157.32.0/19 78.158.160.0/19 79.127.0.0/17 79.132.192.0/23 79.132.200.0/21 79.132.208.0/20 79.143.84.0/23 79.143.86.0/24 79.174.160.0/21 79.175.128.0/19 79.175.160.0/22 79.175.164.0/23 79.175.166.0/24 79.175.167.0/25 79.175.167.128/30 79.175.167.132/31 79.175.167.144/28 79.175.167.160/27 79.175.167.192/26 79.175.168.0/21 79.175.176.0/20 80.66.176.0/20 80.71.112.0/20 80.71.149.0/24 80.75.0.0/20 80.85.82.80/29 80.91.208.0/24 80.191.0.0/17 80.191.128.0/18 80.191.192.0/19 80.191.224.0/20 80.191.240.0/24 80.191.241.128/25 80.191.242.0/23 80.191.244.0/22 80.191.248.0/21 80.210.0.0/18 80.210.128.0/17 80.241.70.250/31 80.242.0.0/20 80.249.112.0/22 80.250.192.0/20 80.253.128.0/19 80.255.3.160/27 81.12.0.0/17 81.16.112.0/20 81.28.32.0/19 81.29.240.0/20 81.31.160.0/19 81.31.224.0/22 81.31.228.0/23 81.31.230.0/24 81.31.233.0/24 81.31.234.0/23 81.31.236.0/22 81.31.240.0/23 81.31.248.0/22 81.90.144.0/20 81.91.128.0/19 81.92.216.0/24 81.163.0.0/21 82.97.240.0/20 82.99.192.0/18 82.138.140.0/25 82.180.192.0/18 82.198.136.76/30 83.120.0.0/14 83.147.192.0/23 83.147.194.0/24 83.147.222.0/23 83.147.240.0/22 83.147.252.0/24 83.147.254.0/24 83.149.208.65/32 83.150.192.0/22 84.17.168.32/27 84.47.192.0/18 84.241.0.0/18 85.9.64.0/18 85.15.0.0/18 85.133.128.0/21 85.133.137.0/24 85.133.138.0/23 85.133.140.0/22 85.133.144.0/23 85.133.147.0/24 85.133.148.0/22 85.133.152.0/22 85.133.157.0/24 85.133.158.0/23 85.133.160.0/22 85.133.165.0/24 85.133.166.0/23 85.133.168.0/21 85.133.176.0/20 85.133.192.0/21 85.133.200.0/23 85.133.203.0/24 85.133.204.0/22 85.133.208.0/22 85.133.212.0/23 85.133.214.0/24 85.133.216.0/23 85.133.219.0/24 85.133.220.0/23 85.133.223.0/24 85.133.224.0/24 85.133.226.0/23 85.133.228.0/22 85.133.232.0/22 85.133.237.0/24 85.133.238.0/23 85.133.240.0/20 85.185.0.0/16 85.198.0.0/19 85.198.48.0/20 85.204.30.0/23 85.204.76.0/23 85.204.80.0/20 85.204.104.0/23 85.204.128.0/22 85.204.208.0/20 85.208.252.0/22 85.239.192.0/19 86.55.0.0/16 86.57.0.0/17 86.104.32.0/20 86.104.80.0/20 86.104.96.0/20 86.104.232.0/21 86.104.240.0/21 86.105.40.0/21 86.105.128.0/20 86.106.142.0/24 86.106.192.0/21 86.107.0.0/20 86.107.80.0/20 86.107.144.0/20 86.107.172.0/22 86.107.208.0/20 86.109.32.0/19 87.107.0.0/16 87.128.22.75/32 87.236.208.0/26 87.236.209.0/24 87.236.210.0/23 87.236.213.0/24 87.236.214.0/24 87.247.168.0/21 87.247.176.0/20 87.248.128.0/24 87.248.139.0/24 87.248.140.0/23 87.248.142.0/24 87.248.147.0/24 87.248.150.0/24 87.248.152.0/22 87.248.156.0/24 87.248.159.0/24 87.251.128.0/19 87.252.206.24/29 87.252.206.64/29 88.131.240.122/31 88.131.240.125/32 88.135.32.0/20 88.135.68.0/24 89.32.0.0/19 89.32.96.0/20 89.32.196.0/23 89.32.248.0/22 89.33.18.0/23 89.33.100.0/22 89.33.128.0/23 89.33.204.0/23 89.33.234.0/23 89.33.240.0/23 89.34.20.0/23 89.34.32.0/19 89.34.88.0/23 89.34.94.0/23 89.34.128.0/19 89.34.168.0/23 89.34.176.0/23 89.34.200.0/23 89.34.248.0/21 89.35.58.0/23 89.35.68.0/22 89.35.120.0/22 89.35.132.0/23 89.35.156.0/23 89.35.176.0/23 89.35.180.0/22 89.35.194.0/23 89.36.16.0/23 89.36.48.0/20 89.36.96.0/20 89.36.176.0/20 89.36.194.0/23 89.36.226.0/23 89.36.252.0/23 89.37.0.0/20 89.37.30.0/23 89.37.42.0/23 89.37.102.0/23 89.37.144.0/21 89.37.152.0/22 89.37.168.0/22 89.37.198.0/23 89.37.208.0/22 89.37.218.0/23 89.37.240.0/20 89.38.24.0/23 89.38.80.0/20 89.38.102.0/23 89.38.184.0/21 89.38.192.0/21 89.38.212.0/22 89.38.242.0/23 89.38.244.0/22 89.39.8.0/22 89.39.186.0/23 89.39.208.0/24 89.40.78.0/23 89.40.106.0/23 89.40.110.0/23 89.40.128.0/23 89.40.152.0/21 89.40.240.0/20 89.41.8.0/21 89.41.16.0/21 89.41.32.0/23 89.41.40.0/22 89.41.58.0/23 89.41.184.0/22 89.41.192.0/19 89.41.240.0/21 89.42.32.0/23 89.42.44.0/22 89.42.56.0/23 89.42.68.0/23 89.42.96.0/21 89.42.136.0/22 89.42.150.0/23 89.42.184.0/21 89.42.196.0/22 89.42.208.0/23 89.42.210.0/25 89.42.210.128/27 89.42.210.160/28 89.42.210.176/29 89.42.210.184/30 89.42.210.188/32 89.42.210.190/31 89.42.210.192/26 89.42.211.0/24 89.42.228.0/23 89.43.0.0/20 89.43.36.0/23 89.43.70.0/23 89.43.88.0/21 89.43.96.0/21 89.43.144.0/21 89.43.182.0/23 89.43.188.0/23 89.43.204.0/23 89.43.216.0/21 89.43.224.0/21 89.44.112.0/23 89.44.118.0/23 89.44.128.0/21 89.44.146.0/23 89.44.176.0/21 89.44.190.0/23 89.44.202.0/23 89.44.240.0/22 89.45.48.0/20 89.45.68.0/23 89.45.80.0/23 89.45.89.0/24 89.45.112.0/21 89.45.126.0/23 89.45.152.0/21 89.45.230.0/23 89.46.44.0/23 89.46.60.0/23 89.46.94.0/23 89.46.184.0/21 89.46.216.0/22 89.47.64.0/20 89.47.128.0/19 89.47.196.0/22 89.47.200.0/22 89.144.128.0/18 89.165.0.0/17 89.196.0.0/16 89.198.0.0/15 89.219.64.0/18 89.219.192.0/18 89.221.80.0/20 89.235.64.0/18 91.92.104.0/24 91.92.114.0/24 91.92.121.0/24 91.92.122.0/23 91.92.124.0/22 91.92.129.0/24 91.92.130.0/23 91.92.132.0/22 91.92.145.0/24 91.92.146.0/23 91.92.148.0/22 91.92.156.0/22 91.92.164.0/22 91.92.172.0/22 91.92.180.0/22 91.92.184.0/21 91.92.192.0/23 91.92.204.0/22 91.92.208.0/21 91.92.220.0/22 91.92.228.0/23 91.92.231.0/24 91.92.236.0/22 91.98.0.0/15 91.106.64.0/19 91.108.128.0/19 91.109.104.0/21 91.129.4.216/32 91.129.18.175/32 91.129.18.177/32 91.133.128.0/17 91.147.64.0/20 91.184.64.0/19 91.185.128.0/19 91.186.192.0/23 91.186.201.0/24 91.186.216.0/23 91.186.218.0/24 91.190.88.0/21 91.194.6.0/24 91.199.9.0/24 91.199.18.0/24 91.199.27.0/24 91.199.30.0/24 91.207.138.0/23 91.207.205.0/24 91.208.165.0/24 91.209.96.0/24 91.209.179.0/24 91.209.183.0/24 91.209.184.0/24 91.209.186.0/24 91.209.242.0/24 91.212.16.0/24 91.212.252.0/24 91.213.151.0/24 91.213.157.0/24 91.213.167.0/24 91.213.172.0/24 91.216.4.0/24 91.217.64.0/23 91.217.177.0/24 91.220.79.0/24 91.220.113.0/24 91.220.243.0/24 91.221.240.0/23 91.222.196.0/22 91.222.204.0/22 91.224.20.0/23 91.224.110.0/23 91.224.176.0/23 91.225.52.0/22 91.226.224.0/23 91.227.84.0/22 91.227.246.0/23 91.228.22.0/23 91.228.132.0/23 91.228.189.0/24 91.229.46.0/23 91.229.214.0/23 91.230.32.0/24 91.232.64.0/22 91.232.68.0/23 91.232.72.0/22 91.233.56.0/22 91.234.52.0/24 91.236.168.0/23 91.237.254.0/23 91.238.0.0/24 91.239.14.0/24 91.239.108.0/22 91.239.210.0/24 91.239.214.0/24 91.240.60.0/22 91.240.116.0/24 91.240.180.0/22 91.241.20.0/23 91.241.92.0/24 91.242.44.0/23 91.243.126.0/23 91.243.160.0/20 91.244.120.0/22 91.245.228.0/22 91.246.44.0/24 91.247.66.0/23 91.247.171.0/24 91.247.174.0/24 91.250.224.0/20 91.251.0.0/16 92.42.48.0/21 92.43.160.0/22 92.61.176.0/21 92.61.184.0/24 92.61.186.0/23 92.61.188.0/22 92.114.16.0/20 92.114.48.0/22 92.114.64.0/20 92.119.57.0/24 92.119.58.0/24 92.119.68.0/22 92.242.192.0/19 92.246.144.0/22 92.246.156.0/22 92.249.56.0/22 93.88.64.0/21 93.88.72.0/23 93.93.204.0/24 93.110.0.0/16 93.113.224.0/20 93.114.16.0/20 93.114.104.0/21 93.115.120.0/21 93.115.144.0/21 93.115.216.0/21 93.115.224.0/20 93.117.0.0/19 93.117.32.0/20 93.117.96.0/19 93.117.176.0/20 93.118.96.0/19 93.118.128.0/19 93.118.160.0/20 93.118.180.0/22 93.118.184.0/22 93.119.32.0/19 93.119.64.0/19 93.119.208.0/20 93.126.0.0/18 93.190.24.0/21 94.24.0.0/20 94.24.16.0/21 94.24.80.0/20 94.24.96.0/21 94.74.128.0/23 94.74.130.1/32 94.74.130.2/31 94.74.130.4/30 94.74.130.8/29 94.74.130.16/28 94.74.130.32/27 94.74.130.64/26 94.74.130.128/25 94.74.131.0/24 94.74.142.0/23 94.74.144.1/32 94.74.144.2/31 94.74.144.4/30 94.74.144.8/29 94.74.144.16/28 94.74.144.32/27 94.74.144.64/26 94.74.144.128/25 94.74.148.0/24 94.74.150.0/23 94.74.152.0/23 94.74.155.0/24 94.74.161.0/24 94.74.162.0/24 94.74.167.0/24 94.74.178.0/23 94.74.180.0/24 94.74.182.0/24 94.74.188.0/23 94.74.190.0/24 94.101.128.0/20 94.101.176.0/20 94.101.240.0/20 94.139.160.0/19 94.176.8.0/21 94.176.32.0/21 94.177.72.0/21 94.182.0.0/15 94.184.0.0/16 94.199.136.0/22 94.232.168.0/21 94.241.164.0/22 95.38.0.0/16 95.64.0.0/17 95.80.128.0/18 95.81.64.0/18 95.130.56.0/21 95.130.225.0/24 95.130.240.0/21 95.142.224.0/20 95.156.222.0/23 95.156.233.0/24 95.156.234.0/23 95.156.236.0/23 95.156.248.0/23 95.156.252.0/22 95.162.0.0/16 95.215.59.0/24 95.215.160.0/22 95.215.173.0/24 103.130.144.0/24 103.130.146.0/24 103.215.220.0/22 103.216.60.0/22 103.231.136.0/22 104.28.11.28/31 104.28.11.30/32 104.28.37.237/32 104.28.37.238/31 104.28.37.240/31 104.28.51.83/32 104.28.51.84/30 104.28.80.85/32 104.28.80.86/31 104.28.80.88/31 104.28.106.57/32 104.28.106.58/31 104.28.106.60/31 104.28.131.38/31 104.28.131.40/32 104.28.194.219/32 104.28.194.220/30 104.28.194.224/31 104.28.214.161/32 104.28.214.162/31 104.28.214.164/30 104.28.214.168/32 104.28.226.219/32 104.28.226.220/30 104.28.226.224/31 104.28.246.161/32 104.28.246.162/31 104.28.246.164/30 104.28.246.168/32 109.70.237.0/24 109.72.192.0/20 109.74.232.0/21 109.94.164.0/22 109.95.60.0/22 109.95.64.0/21 109.107.131.0/24 109.108.160.0/19 109.109.32.0/19 109.110.160.0/19 109.122.193.0/24 109.122.199.0/24 109.122.209.0/24 109.122.217.0/24 109.122.224.0/20 109.122.240.0/21 109.122.248.0/22 109.122.252.0/23 109.125.128.0/18 109.162.128.0/17 109.201.0.0/19 109.203.128.0/19 109.203.176.0/22 109.206.252.0/22 109.225.128.0/18 109.230.64.0/19 109.230.192.0/23 109.230.200.0/24 109.230.204.0/22 109.230.221.0/24 109.230.223.0/24 109.230.242.0/24 109.230.246.0/23 109.230.251.0/24 109.232.0.0/21 109.238.176.0/20 109.239.0.0/20 113.203.0.0/17 128.65.160.0/19 130.185.72.0/21 130.193.77.0/24 130.244.41.211/32 130.244.41.213/32 130.244.71.67/32 130.244.71.72/31 130.244.71.74/32 130.244.71.80/31 130.244.85.151/32 130.255.192.0/18 134.255.196.0/23 134.255.200.0/21 134.255.245.0/24 134.255.246.0/24 134.255.248.0/23 140.248.34.128/30 140.248.36.146/31 140.248.36.148/31 141.11.42.0/24 146.19.104.0/24 146.19.217.0/24 146.66.128.0/21 146.75.132.146/31 146.75.132.148/31 146.75.169.128/30 146.75.180.36/30 151.232.0.0/14 151.238.0.0/15 151.240.0.0/13 152.89.12.0/22 152.89.44.0/22 157.119.188.0/22 158.58.0.0/17 158.58.184.0/21 158.255.74.0/24 158.255.78.0/24 159.20.96.0/20 164.138.16.0/21 164.138.128.0/18 164.215.56.0/21 164.215.128.0/17 171.22.24.0/22 172.80.128.0/17 172.225.187.16/28 172.225.191.160/27 172.225.196.144/28 172.225.196.184/29 172.225.228.128/27 172.225.229.96/28 176.12.64.0/20 176.56.144.0/20 176.62.144.0/21 176.65.160.0/19 176.65.192.0/18 176.67.64.0/20 176.97.218.0/24 176.97.220.0/24 176.101.32.0/20 176.101.48.0/21 176.102.224.0/19 176.105.245.0/24 176.116.7.0/24 176.122.210.0/23 176.123.64.0/18 176.124.64.0/22 176.126.120.0/24 176.221.64.0/21 176.223.80.0/21 178.21.40.0/21 178.21.160.0/21 178.22.72.0/21 178.22.120.0/21 178.131.0.0/16 178.157.0.0/23 178.169.0.0/19 178.173.128.0/18 178.173.192.0/19 178.211.145.0/24 178.215.0.0/18 178.216.248.0/21 178.219.224.0/20 178.236.32.0/22 178.236.96.0/20 178.238.192.0/20 178.239.144.0/20 178.248.40.0/21 178.251.208.0/21 178.252.128.0/18 178.253.16.0/24 178.253.31.0/24 178.253.32.0/24 178.253.38.0/23 185.1.77.0/24 185.2.12.0/22 185.3.124.0/22 185.3.200.0/22 185.3.212.0/22 185.4.0.0/22 185.4.16.0/22 185.4.28.0/22 185.4.104.0/22 185.4.220.0/22 185.5.156.0/22 185.7.212.0/24 185.8.172.0/22 185.10.71.0/24 185.10.72.0/22 185.11.68.0/22 185.11.88.0/22 185.11.176.0/22 185.12.60.0/22 185.12.100.0/23 185.12.102.0/24 185.13.228.0/22 185.14.80.0/22 185.14.160.0/22 185.16.232.0/22 185.18.156.0/22 185.18.212.0/22 185.19.201.0/24 185.20.160.0/22 185.21.68.0/22 185.21.76.0/22 185.22.28.0/22 185.23.128.0/22 185.24.136.0/22 185.24.148.0/22 185.24.228.0/22 185.24.252.0/22 185.25.172.0/22 185.26.32.0/22 185.26.232.0/22 185.29.220.0/22 185.30.4.0/22 185.30.76.0/22 185.31.124.0/22 185.32.128.0/22 185.33.25.0/24 185.34.160.0/22 185.36.228.0/24 185.36.231.0/24 185.37.52.0/22 185.39.180.0/22 185.40.16.0/24 185.40.240.0/22 185.41.0.0/22 185.41.220.0/22 185.42.24.0/24 185.42.212.0/22 185.42.224.0/22 185.44.36.0/22 185.44.100.0/22 185.44.112.0/22 185.45.188.0/22 185.46.0.0/22 185.46.108.0/22 185.46.216.0/22 185.47.48.0/22 185.49.84.0/22 185.49.96.0/22 185.49.104.0/22 185.49.231.0/24 185.50.36.0/22 185.51.40.0/22 185.51.200.0/22 185.53.140.0/22 185.55.224.0/22 185.56.92.0/22 185.56.96.0/22 185.57.132.0/22 185.57.164.0/22 185.57.200.0/22 185.58.240.0/22 185.59.112.0/23 185.60.32.0/22 185.60.136.0/22 185.62.232.0/22 185.63.113.0/24 185.63.114.0/24 185.63.236.0/22 185.64.176.0/22 185.66.224.0/21 185.67.12.0/22 185.67.100.0/22 185.67.156.0/22 185.67.212.0/22 185.69.108.0/22 185.70.60.0/22 185.71.152.0/22 185.71.192.0/22 185.72.24.0/22 185.72.80.0/22 185.73.0.0/22 185.73.76.0/22 185.73.112.0/24 185.73.114.0/24 185.73.226.0/24 185.74.164.0/22 185.74.221.0/24 185.75.196.0/22 185.75.204.0/22 185.76.248.0/22 185.78.20.0/22 185.79.60.0/22 185.79.96.0/22 185.79.156.0/22 185.80.100.0/22 185.80.198.0/23 185.81.40.0/22 185.81.96.0/23 185.81.99.0/24 185.82.28.0/22 185.82.64.0/22 185.82.136.0/22 185.82.164.0/22 185.82.180.0/22 185.83.28.0/22 185.83.76.0/22 185.83.80.0/22 185.83.88.0/22 185.83.112.0/24 185.83.114.0/23 185.83.180.0/22 185.83.184.0/22 185.83.196.0/22 185.83.208.0/22 185.84.220.0/22 185.85.68.0/22 185.85.136.0/22 185.86.36.0/22 185.86.180.0/22 185.88.48.0/22 185.88.152.0/22 185.88.176.0/22 185.88.252.0/22 185.89.22.0/24 185.89.112.0/22 185.92.4.0/22 185.92.8.0/22 185.92.40.0/22 185.94.96.0/23 185.94.98.0/24 185.94.99.0/25 185.94.99.136/29 185.94.99.144/28 185.94.99.160/27 185.94.99.192/26 185.95.60.0/22 185.95.152.0/22 185.95.180.0/22 185.96.240.0/22 185.97.116.0/22 185.98.112.0/22 185.99.212.0/22 185.100.44.0/22 185.101.228.0/22 185.103.84.0/22 185.103.128.0/22 185.103.244.0/22 185.103.248.0/22 185.104.192.0/24 185.104.228.0/22 185.104.232.0/22 185.104.240.0/22 185.105.100.0/22 185.105.120.0/22 185.105.184.0/22 185.105.236.0/22 185.106.136.0/22 185.106.144.0/22 185.106.200.0/22 185.106.228.0/22 185.107.28.0/22 185.107.32.0/23 185.107.244.0/22 185.107.248.0/22 185.108.96.0/22 185.108.164.0/22 185.109.60.0/22 185.109.72.0/22 185.109.80.0/22 185.109.128.0/22 185.109.244.0/22 185.109.248.0/22 185.110.28.0/22 185.110.216.0/22 185.110.228.0/22 185.110.236.0/22 185.110.244.0/22 185.110.252.0/22 185.111.8.0/21 185.111.64.0/22 185.111.80.0/22 185.111.136.0/22 185.112.32.0/21 185.112.130.0/23 185.112.148.0/22 185.112.168.0/22 185.113.56.0/22 185.113.112.0/22 185.114.188.0/22 185.115.76.0/22 185.115.148.0/22 185.115.168.0/22 185.116.20.0/22 185.116.24.0/22 185.116.44.0/22 185.116.160.0/22 185.117.48.0/22 185.117.136.0/22 185.117.204.0/23 185.117.206.0/24 185.118.12.0/22 185.118.136.0/22 185.118.152.0/22 185.119.4.0/22 185.119.164.0/22 185.119.240.0/22 185.120.120.0/22 185.120.136.0/22 185.120.160.0/22 185.120.168.0/22 185.120.192.0/21 185.120.200.0/22 185.120.208.0/20 185.120.224.0/20 185.120.240.0/21 185.120.248.0/22 185.121.56.0/22 185.121.128.0/22 185.122.80.0/22 185.123.68.0/22 185.123.208.0/22 185.124.112.0/22 185.124.156.0/22 185.124.172.0/22 185.125.20.0/22 185.125.244.0/22 185.125.248.0/21 185.126.0.0/20 185.126.16.0/22 185.126.40.0/22 185.126.132.0/23 185.126.200.0/22 185.127.232.0/22 185.128.40.0/24 185.128.48.0/22 185.128.80.0/22 185.128.136.0/22 185.128.152.0/22 185.128.164.0/22 185.129.80.0/22 185.129.168.0/22 185.129.184.0/21 185.129.196.0/22 185.129.200.0/22 185.129.212.0/22 185.129.216.0/22 185.129.228.0/22 185.129.232.0/21 185.129.240.0/22 185.130.76.0/22 185.131.28.0/22 185.131.84.0/22 185.131.88.0/21 185.131.100.0/22 185.131.108.0/22 185.131.112.0/21 185.131.124.0/22 185.131.128.0/22 185.131.136.0/21 185.131.148.0/22 185.131.152.0/21 185.131.164.0/22 185.131.168.0/22 185.132.80.0/22 185.132.212.0/22 185.133.152.0/22 185.133.164.0/22 185.133.244.0/23 185.133.246.0/24 185.134.96.0/22 185.135.28.0/22 185.135.228.0/22 185.136.100.0/22 185.136.172.0/22 185.136.180.0/22 185.136.192.0/22 185.136.220.0/22 185.137.24.0/22 185.137.60.0/22 185.137.108.0/23 185.137.110.0/24 185.139.64.0/22 185.140.4.0/22 185.140.56.0/22 185.140.232.0/22 185.140.240.0/22 185.141.36.0/22 185.141.48.0/22 185.141.104.0/22 185.141.132.0/22 185.141.168.0/22 185.141.212.0/22 185.141.244.0/22 185.142.92.0/22 185.142.124.0/22 185.142.156.0/22 185.142.232.0/22 185.143.72.0/22 185.143.204.0/22 185.143.232.0/22 185.144.64.0/22 185.145.8.0/22 185.145.184.0/22 185.147.40.0/22 185.147.84.0/22 185.147.160.0/22 185.147.176.0/22 185.149.192.0/24 185.150.108.0/22 185.153.184.0/22 185.153.208.0/22 185.154.184.0/22 185.155.8.0/21 185.155.72.0/22 185.155.236.0/22 185.157.8.0/22 185.158.172.0/22 185.159.152.0/22 185.159.176.0/22 185.160.104.0/22 185.160.176.0/22 185.161.36.0/22 185.161.112.0/22 185.162.40.0/22 185.162.216.0/22 185.163.88.0/22 185.164.73.0/24 185.164.74.0/23 185.164.252.0/22 185.165.28.0/22 185.165.40.0/22 185.165.100.0/22 185.165.116.0/22 185.165.204.0/22 185.166.60.0/22 185.166.104.0/22 185.166.112.0/22 185.167.72.0/22 185.167.100.0/22 185.167.124.0/22 185.168.28.0/22 185.169.6.0/24 185.169.20.0/22 185.169.36.0/22 185.170.8.0/24 185.170.236.0/22 185.171.52.0/22 185.172.0.0/22 185.172.68.0/22 185.172.212.0/22 185.173.104.0/22 185.173.129.0/24 185.173.130.0/24 185.173.168.0/22 185.174.132.0/24 185.174.134.0/24 185.174.200.0/22 185.174.248.0/22 185.175.76.0/22 185.175.240.0/22 185.176.32.0/22 185.176.56.0/22 185.177.156.0/22 185.177.232.0/22 185.178.104.0/22 185.178.220.0/22 185.179.90.0/24 185.179.168.0/22 185.179.220.0/22 185.180.52.0/22 185.180.128.0/22 185.181.180.0/22 185.182.220.0/22 185.182.248.0/22 185.184.32.0/22 185.184.48.0/22 185.185.16.0/22 185.185.240.0/22 185.186.48.0/22 185.186.240.0/22 185.187.48.0/22 185.187.84.0/22 185.188.104.0/22 185.188.112.0/22 185.189.120.0/22 185.190.20.0/22 185.190.25.128/25 185.190.39.0/24 185.191.76.0/22 185.192.8.0/22 185.192.112.0/22 185.193.47.0/24 185.193.208.0/22 185.194.76.0/22 185.194.244.0/22 185.195.72.0/22 185.196.148.0/22 185.197.68.0/22 185.197.112.0/22 185.198.160.0/22 185.199.64.0/22 185.199.208.0/22 185.201.48.0/22 185.202.56.0/22 185.203.160.0/22 185.204.180.0/22 185.204.197.0/24 185.205.203.0/24 185.205.220.0/22 185.206.92.0/22 185.206.229.0/24 185.206.231.0/24 185.206.236.0/22 185.207.52.0/22 185.207.72.0/22 185.208.76.0/22 185.208.148.0/22 185.208.174.0/23 185.208.180.0/22 185.209.188.0/22 185.210.200.0/22 185.211.56.0/22 185.211.84.0/22 185.211.88.0/22 185.212.48.0/22 185.212.192.0/22 185.213.8.0/22 185.213.164.0/22 185.213.195.0/24 185.214.36.0/22 185.215.124.0/22 185.215.152.0/22 185.215.228.0/22 185.218.139.0/24 185.219.112.0/22 185.220.224.0/22 185.221.112.0/22 185.221.192.0/22 185.221.239.0/24 185.222.120.0/22 185.222.180.0/22 185.222.184.0/22 185.222.210.0/24 185.223.160.0/24 185.224.176.0/22 185.225.80.0/22 185.225.180.0/22 185.225.240.0/22 185.226.97.0/24 185.226.116.0/22 185.226.132.0/22 185.226.140.0/22 185.227.64.0/22 185.227.116.0/22 185.228.236.0/22 185.229.0.0/22 185.229.28.0/22 185.229.204.0/24 185.231.65.0/24 185.231.112.0/24 185.231.114.0/23 185.231.180.0/22 185.232.152.0/22 185.232.176.0/22 185.233.12.0/22 185.233.84.0/22 185.233.131.0/24 185.234.14.0/24 185.234.192.0/22 185.235.136.0/24 185.235.138.0/23 185.235.245.0/24 185.236.36.0/22 185.236.45.0/24 185.236.88.0/22 185.237.8.0/22 185.237.84.0/22 185.238.20.0/22 185.238.44.0/22 185.238.92.0/22 185.238.140.0/24 185.238.143.0/24 185.239.0.0/22 185.239.104.0/22 185.240.56.0/22 185.240.148.0/22 185.243.48.0/22 185.244.52.0/22 185.246.4.0/22 185.248.32.0/24 185.251.76.0/22 185.252.28.0/22 185.252.200.0/24 185.254.165.0/24 185.254.166.0/24 185.255.68.0/22 185.255.88.0/22 185.255.208.0/22 188.0.240.0/20 188.75.64.0/18 188.94.188.0/24 188.95.89.0/24 188.118.64.0/18 188.121.96.0/19 188.121.128.0/19 188.122.96.0/19 188.136.128.0/18 188.136.192.0/19 188.158.0.0/15 188.191.176.0/21 188.208.56.0/21 188.208.64.0/19 188.208.144.0/20 188.208.160.0/19 188.208.200.0/22 188.208.208.0/21 188.208.224.0/19 188.209.0.0/19 188.209.32.0/20 188.209.64.0/20 188.209.116.0/22 188.209.152.0/23 188.209.192.0/20 188.210.64.0/20 188.210.80.0/21 188.210.96.0/19 188.210.128.0/18 188.210.192.0/20 188.210.232.0/22 188.211.0.0/20 188.211.32.0/19 188.211.64.0/18 188.211.128.0/19 188.211.176.0/20 188.211.192.0/19 188.212.22.0/24 188.212.48.0/20 188.212.64.0/19 188.212.96.0/22 188.212.144.0/21 188.212.160.0/19 188.212.200.0/21 188.212.208.0/20 188.212.224.0/20 188.212.240.0/21 188.213.64.0/20 188.213.96.0/19 188.213.144.0/20 188.213.176.0/20 188.213.192.0/21 188.213.208.0/22 188.214.4.0/22 188.214.84.0/22 188.214.96.0/22 188.214.120.0/23 188.214.160.0/19 188.214.216.0/21 188.215.24.0/22 188.215.88.0/22 188.215.128.0/20 188.215.160.0/19 188.215.192.0/19 188.215.240.0/22 188.229.0.0/17 188.240.196.0/24 188.240.212.0/24 188.240.248.0/21 188.253.2.0/23 188.253.32.0/21 188.253.40.0/24 188.253.42.0/23 188.253.44.0/22 188.253.48.0/20 188.253.64.0/19 192.15.0.0/16 192.167.140.66/32 193.0.156.0/24 193.3.31.0/24 193.3.182.0/24 193.3.231.0/24 193.3.255.0/24 193.8.139.0/24 193.19.144.0/23 193.22.20.0/24 193.28.181.0/24 193.29.24.0/24 193.29.26.0/24 193.32.80.0/23 193.34.244.0/22 193.35.62.0/24 193.38.247.0/24 193.39.9.0/24 193.56.59.0/24 193.56.61.0/24 193.56.107.0/24 193.56.118.0/24 193.104.22.0/24 193.104.29.0/24 193.104.212.0/24 193.105.2.0/24 193.105.6.0/24 193.105.234.0/24 193.106.190.0/24 193.107.48.0/24 193.108.242.0/23 193.111.234.0/23 193.134.100.0/23 193.141.64.0/23 193.141.126.0/23 193.142.30.0/24 193.142.232.0/23 193.142.254.0/23 193.148.64.0/22 193.150.66.0/24 193.151.128.0/19 193.162.129.0/24 193.176.240.0/22 193.178.200.0/22 193.186.4.40/30 193.186.32.0/24 193.189.122.0/23 193.200.102.0/23 193.200.148.0/24 193.201.72.0/23 193.201.192.0/22 193.222.51.0/24 193.228.90.0/23 193.228.136.0/24 193.240.187.76/30 193.240.207.0/28 193.242.194.0/23 193.242.208.0/23 193.246.160.0/23 193.246.164.0/23 193.246.174.0/23 193.246.200.0/23 194.5.40.0/22 194.5.175.0/24 194.5.176.0/22 194.5.188.0/24 194.5.195.0/24 194.5.205.0/24 194.9.56.0/23 194.9.80.0/23 194.26.2.0/23 194.26.20.0/23 194.26.117.0/24 194.26.195.0/24 194.31.108.0/24 194.31.194.0/24 194.33.104.0/22 194.33.122.0/23 194.33.124.0/22 194.34.163.0/24 194.36.0.0/24 194.36.174.0/24 194.39.36.0/22 194.41.48.0/22 194.50.204.0/24 194.50.209.0/24 194.50.216.0/24 194.50.218.0/24 194.53.118.0/23 194.53.122.0/23 194.56.148.0/24 194.59.170.0/23 194.59.214.0/23 194.60.208.0/22 194.60.228.0/22 194.62.17.0/24 194.62.43.0/24 194.87.23.0/24 194.143.140.0/23 194.146.148.0/22 194.146.239.0/24 194.147.164.0/22 194.147.212.0/24 194.147.222.0/24 194.150.68.0/22 194.156.140.0/22 194.180.224.0/24 194.225.0.0/16 195.2.234.0/24 195.8.102.0/24 195.8.110.0/24 195.8.112.0/24 195.8.114.0/24 195.20.136.0/24 195.27.14.0/29 195.28.10.0/23 195.28.168.0/23 195.88.188.0/23 195.96.128.0/24 195.96.153.0/24 195.110.38.0/23 195.114.4.0/23 195.114.8.0/23 195.146.32.0/19 195.181.0.0/17 195.182.38.0/24 195.190.130.0/24 195.190.139.0/24 195.190.144.0/24 195.191.22.0/23 195.191.44.0/23 195.191.74.0/23 195.211.44.0/22 195.217.44.172/30 195.219.71.0/24 195.225.232.0/24 195.226.223.0/24 195.230.97.0/24 195.230.105.0/24 195.230.107.0/24 195.230.124.0/24 195.234.191.0/24 195.238.231.0/24 195.238.240.0/24 195.238.247.0/24 195.245.70.0/23 196.3.91.0/24 204.18.0.0/16 204.245.22.24/30 204.245.22.29/32 204.245.22.30/31 209.28.123.0/26 210.5.196.64/26 210.5.197.64/26 210.5.198.32/29 210.5.198.64/28 210.5.198.96/27 210.5.198.128/26 210.5.198.192/27 210.5.204.0/25 210.5.205.0/26 210.5.208.0/26 210.5.208.128/25 210.5.209.0/25 210.5.214.192/26 210.5.218.64/26 210.5.218.128/25 210.5.232.0/25 210.5.233.0/25 210.5.233.128/26 212.1.192.0/21 212.16.64.0/19 212.18.108.0/24 212.23.201.0/24 212.23.214.0/24 212.23.216.0/24 212.33.192.0/19 212.46.45.0/24 212.80.0.0/19 212.86.64.0/19 212.120.146.128/29 212.120.192.0/19 212.151.56.189/32 212.151.60.189/32 212.151.182.155/32 212.151.182.156/31 212.151.186.154/31 212.151.186.156/32 213.108.240.0/23 213.108.242.0/24 213.109.199.0/24 213.109.240.0/20 213.168.224.216/30 213.168.240.96/29 213.176.0.0/20 213.176.16.0/22 213.176.28.0/22 213.176.64.0/18 213.195.0.0/20 213.195.16.0/21 213.195.32.0/19 213.207.192.0/18 213.217.32.0/19 213.232.124.0/22 213.233.160.0/19 217.11.16.0/20 217.24.144.0/20 217.25.48.0/20 217.60.0.0/16 217.66.192.0/19 217.77.112.0/20 217.114.40.0/24 217.144.104.0/22 217.146.208.0/20 217.161.16.0/24 217.170.240.0/20 217.171.145.0/24 217.171.148.0/22 217.171.191.220/30 217.172.98.0/23 217.172.102.0/23 217.172.104.0/21 217.172.112.0/22 217.172.116.0/23 217.172.118.0/24 217.172.120.0/21 217.174.16.0/20 217.198.190.0/24 217.218.0.0/16 217.219.0.0/17 217.219.128.0/18 217.219.192.0/21 217.219.200.0/22 217.219.204.0/24 217.219.205.64/26 217.219.205.128/25 217.219.206.0/23 217.219.208.0/20 217.219.224.0/19 \ No newline at end of file diff --git a/utils/ip_script.bash b/utils/ip_script.bash new file mode 100644 index 0000000..c1199ae --- /dev/null +++ b/utils/ip_script.bash @@ -0,0 +1,56 @@ +#!/bin/bash + +# Check if the input file is provided +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +input_file="$1" +output_file="output.csv" + +# Initialize variables +counter=0 +line_buffer="" +index=0 + +# Process the input file +while IFS= read -r line +do + # Add the line to the buffer + if [ $counter -eq 0 ]; then + line_buffer="$line" + else + line_buffer="$line_buffer,$line" + fi + + # Increment the counter + counter=$((counter + 1)) + + # If 100 lines are read, write to output file + if [ $counter -eq 60 ]; then + + index=$((index + 1)) + echo "config rule 'ir_ip$index'" >> "$output_file" + echo " option dest_ip '$line_buffer'" >> "$output_file" + echo " option use_policy 'wan_only'" >> "$output_file" + echo " option family 'ipv4'" >> "$output_file" + echo "" >> "$output_file" + # Reset counter and buffer + counter=0 + line_buffer="" + + fi +done < "$input_file" + +# Write any remaining lines in the buffer to the output file +if [ $counter -ne 0 ]; then + index=$((index + 1)) + echo "config rule 'ir_ip$index'" >> "$output_file" + echo " option dest_ip '$line_buffer'" >> "$output_file" + echo " option use_policy 'wan_only'" >> "$output_file" + echo " option family 'ipv4'" >> "$output_file" + echo "" >> "$output_file" +fi + +echo "Processing complete. Output written to $output_file."